3
Universidad Mariano Gálvez Ingeniería en Sistemas Semestre II Algoritmos Sección “C” Sede Villa Nueva Ing. Alexis Juarez Algoritmos Miguel Ernesto García Bolaños 5190-11-8951 16/07/2011

Algoritmos

Embed Size (px)

Citation preview

Page 1: Algoritmos

Universidad Mariano Gálvez

Ingeniería en Sistemas

Semestre II

Algoritmos

Sección “C”

Sede Villa Nueva

Ing. Alexis Juarez

Algoritmos

Miguel Ernesto García Bolaños

5190-11-8951

16/07/2011

Page 2: Algoritmos

Algoritmos

Los Algoritmos permiten resolver problemas computacionales mediante lenguajes de

programación. Como Ejemplo podemos poner dos de los más usuales:

Divide y Vencerás: Consiste en descomponer un problema en subproblemas, resolver cada

subproblema y combinar las soluciones. El resultado, es la solución del problema original.

Si los subproblemas son todavía demasiado grandes, se utiliza la misma táctica con ellos,

esto es, dividirlos a ellos también, utilizando un algoritmo recursivo que vaya dividiendo

más el sub-problema hasta que su solución sea trivial

Backtracking: El Backtracking o esquema de vuelta atrás, es un esquema que de forma

sistemática y organizada, genera y recorre un espacio que contiene todas las posibles

secuencias de decisiones. Este espacio se denomina el espacio de búsqueda del problema, y

se representa como un árbol sobre el que el algoritmo hace un recorrido en profundidad

partiendo de la raíz. Se conoce de antemano el orden en que se van a generar y recorrer sus

nodos, y se continúa recorriendo el árbol mientras se cumplan las restricciones. Éste

método tiene tres posibles esquemas: encontrar una solución factible, encontrar todas las

soluciones factibles, encontrar la mejor solución factible.

Tipos de Algoritmos

Existen distintos tipos de algoritmos de razonamiento:

Cualitativos:

Son aquellos en los que se describen los pasos utilizando palabras.

Cuantitativos:

Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.

Algoritmos estáticos:

Algoritmos que funcionan siempre igual, independientemente del tipo de problema tratado.

Por ejemplo, los sistemas basados en el método de resolución.

Algoritmos probabilísticos:

Algoritmos que no utilizan valores de verdad booleanos sino continuos. Por ejemplo, los

sistemas basados en lógica difusa.

Algoritmos adaptativos:

Algoritmos con cierta capacidad de aprendizaje. Por ejemplo, los sistemas basados en redes

neuronales.

Un algoritmo puede además ser:

Deterministico:

Page 3: Algoritmos

Sí en cada paso del algoritmo, es posible predecir la salida para una entrada dada.

No determinísticos:

Sí existe uno ó más pasos en el algoritmo, para el cual es posible predecir cual será la

salida.

Por esa razón se tienen los siguiente tipos de problemas:

1. Polinomial:

Existe al menos un algoritmo polinomial determinístico que lo resuelve.

2. No –Polinomiales:

Solo existen algoritmos polinomiales del tipo no deterministico que los resuelven.

Como determinar la complejidad de un algoritmo

El tiempo de ejecución de cada sentencia simple puede tomarse como complejidad de T(1).

Para sentencias de bifurcación (IF, CASE) el resultante de la complejidad será T(1).

La complejidad para los bucles (FOR, REPEAT, WHILE) independientes será T(n).

La complejidad para los bucles anidados será T(n^m) donde m nos representa el numero de

bucles anidados.

Ciencias en la que se apoya la algoritmia para producir

soluciones ingeniosas

Computación

Matemáticas

Ciencias Sociales

Ciencias Políticas