ALGORITMOS

7
ALGORITMOS Objetivos: Algoritmo -> secuencia de pasos organizados para resolver un problema. Características: Un algoritmo debe ser finito -> termina en un tiempo determinado. Debe ser capaz de determinar la solución del problema planteado. CONCRETO -> dar solución exacta del problema a resolver. LEGIBLE -> entendible para otras personas. EFICIENTE -> NO AMBIGUO ->explícito, que pasó realizar en cada instrucción. PRECISO -> cumple con lo que vamos a realizar. DEFINIDO -> generar siempre el mismo resultado. TIPOS CUALITATIVOS Describen pasos utilizando palabras. CUANTITATIVOS Utilizan cálculos numéricos para definir los pasos del proceso. LENGUAJE ALGORÍTMICO Serie de símbolos y reglas utilizadas para escribir de manera explícita un proceso. Diversas formas de representación; diagramas de flujo y pseudocódigo. Partes: Entrada: cantidades dadas que representan el mundo real. Proceso: descripción de la operación que llevara a cabo con las entradas anteriores. Salida: Producto obtenido después del algoritmo (dato o producto final). Pasos para la solución del problema: Definición del problema.- enunciado del problema con el que se delimita. Análisis.- Requisitos o restricciones.

description

Resumen Algoritmos

Transcript of ALGORITMOS

  • ALGORITMOS

    Objetivos:

    Algoritmo -> secuencia de pasos organizados para resolver un problema.

    Caractersticas:

    Un algoritmo debe ser finito -> termina en un tiempo determinado.

    Debe ser capaz de determinar la solucin del problema planteado.

    CONCRETO -> dar solucin exacta del problema a resolver.

    LEGIBLE -> entendible para otras personas.

    EFICIENTE ->

    NO AMBIGUO ->explcito, que pas realizar en cada instruccin.

    PRECISO -> cumple con lo que vamos a realizar.

    DEFINIDO -> generar siempre el mismo resultado.

    TIPOS

    CUALITATIVOS

    Describen pasos utilizando palabras.

    CUANTITATIVOS

    Utilizan clculos numricos para definir los pasos del proceso.

    LENGUAJE ALGORTMICO

    Serie de smbolos y reglas utilizadas para escribir de manera explcita un proceso.

    Diversas formas de representacin; diagramas de flujo y pseudocdigo.

    Partes:

    Entrada: cantidades dadas que representan el mundo real.

    Proceso: descripcin de la operacin que llevara a cabo con las entradas anteriores.

    Salida: Producto obtenido despus del algoritmo (dato o producto final).

    Pasos para la solucin del problema:

    Definicin del problema.- enunciado del problema con el que se delimita.

    Anlisis.- Requisitos o restricciones.

  • Diseo algoritmo.- pasos a seguir para resolver el problema

    ANLISIS DE ALGORITMOS

    Mtodo necesario para poder comparar distintos algoritmos que resuelven el mismo

    problema.

    Es eficiente si administra correctamente los recursos.

    Eficiencia algortmica -> consumo de recursos por parte de los algoritmos en tiempo y

    espacio.

    Ordenamiento, Bsqueda, Procesamiento Datos, Grafos, Geomtrico.

    VENTAJAS EFECTO

    Predecir si es utilizable Ayudar a corregir

    Compararlo definir nuevas estructuras de datos

    Entenderlo mejor.

    CMO ANALIZAR?

    Medir la cantidad de tiempo y espacio -> Ejecucin algortmica.

    Es factible de ejecutar en un computador.

    Predecir el comportamiento antes de pasarlo al computador.

    * Determinar que operaciones se emplean y cul es su costo.

    MTODOS

    FUERZA BRUTA

    Solucin poco reflexiva que se basa en el mtodo de prueba y error.

    DIVIDE Y VENCERS

    Descomponer problema en sub problemas.

    VORAZ

    Emplea optimizacin y parte de la solucin puede mejorarse

    BACKTRACKING

    En caso de no encontrar la solucin se regresa a la tarea original.

    Programacin dinmica.- mediante secuencia de decisiones.

    GRAFOS

    Son EDD no lineales donde cada componente puede tener uno o ms predecesores o

    sucesores.

    Nodo Vrtice Arista Arcos

  • Consta de 2 conjuntos V(G) y A(G); G = (V,A)

    Grado del vrtice

    Lazo o bucle

    camino

    camino cerrado.- llega al mismo

    camino simple.- recorrido

    ciclo.- se regresa una y otra vez

    grafo conexo.- siempre es cerrado (no conexo.- no cerrado)

    grafo rbol.- forma un rbol

    grafo completo.- todos completos

    grafo etiquetado.- tiene valores en sus aristas.

    multgrafo; tienen dos enlaces entre nodos.

    GRAFO DIRIGIDO

    Direccin u orientacin entre nodos.

    Sus aristas tienen asociada una direccin. Es decir en pares ordenados.

    Vrtices representan informacin, las aristas representan direccin entre nodos.

    -> Cada arista tiene una direccin asignada -> arista asociada a un par ordenado

    de vrtices del grafo.

    REPRESENTACIN

    Requieren otras Estructuras de datos (EDD) Matrices y listas adyacentes.

    Matriz de adyacencia.- matriz booleana de orden n -> nmero de vrtices G.

    Cada elemento i, j de la matriz almacena un 1 y un 0.

    CUANDO NO EST BALANCEADO O(n) Cuando est balanceado Olog(n)

    A B C D

    A 0 1 0 1

    B 0 0 1 1

    C 0 0 0 0

    D 0 0 1 0

    A B C D E

    A 0 1 0 0 1

    B 1 0 0 0 1

    C 0 0 0 1 1

    D 0 0 1 0 0

    E 1 1 1 0 0

    A

    B

    E Null

    B A E Null

    C D E Null

    D C null

    E A B C D null

    A B

    C D

    D E

    A

    B

    C

  • ARBOLES

    Estructura jerrquica (de datos no lineal/ aplicada sobre una coleccin de elementos u

    objetos llamados nodos)

    Consta de nodos (conjunto finito de elementos)

    Conjunto finito de lneas simples -> ramas (conectan nodos)

    Nodos hijos, padres, raz, hojas, interiores, camino, rama.

    Grado por nodos; hijos de un nodo.

    Grado por rbol; mayor grado de todos los nodos.

    Nivel;

    Altura; nmero de niveles.

    LONGITUD CAMINO INTERNO

    LCI.- suma de longitudes de camino de todos los nodos del rbol. Sirve para conocer los

    caminos que tiene el rbol.

    Medida de longitud de camino interno nos permite saber cul es la mejor decisin que

    debemos tomar para llegar a un nodo determinado partiendo del nodo raz.

    LONGITU DE CAMINO EXTERNO

    Suma de las longitudes de camino de los especiales del rbol.

    ARBOLES BINARIOS

    Pueden tener mximo 2 hijos de grado 2.

    Distintos; diferentes estructuras de nodos y arcos

    Similares; idnticos solo en informacin que contiene sus nodos.

    Equivalentes; estructura similar y contienen la misma informacin.

    ABC

    Todos sus nodos excepto los ltimos tienen 2 hijos; subrbol izquierdo y derecho.

  • REPRESENTACIN EN MEMORIA DE ARBOLES BALANCEADOS.

    (null) apunta al nodo izquierdo Informacin (null) apunta al nodo derecho.

    Enalce= ^nodo

    Nodo=registro

    izquierdo: tipo enlace

    informacin: tipo de dato

    derecho: tipo de enlace.

    [Fin de la definicin]

    OPERACIONES

    Recorridos;

    Preorden; Visitar raz, recorrer subrbol izquierdo, recorrer subrbol derecho.

    Inorden; recorrer subrbol izquierdo, raz, subrbol derecho.

    Postorden; Subrbol izquierdo, subrbol derecho, raz.

    ARBOL BINARIO DE BUSQUEDA

    Subrbol Izquierdo = Menores

    Subrbol Derecho = Mayores

    BUSQUEDA PRIMERO EN ANCHURA

    Se expande el nodo raz se expanden los sucesores del nodo raz y despus sus

    sucesores, etc.

    Complejidad: O(bd) donde b es ramificacin y d es la altura.

    Cola.- mejor EDD que se adapta a este tipo de bsqueda

    BUSQUEDA PRIMERO EN PROFUNDIDAD

    Pila.- mejor EDD que se adapta a este tipo de bsqueda.

    BUSQUEDA PRIMERO EN PROFUNDIDAD ITERATIVA

    Combina las ventajas de la bsqueda en anchura y la bsqueda en profundidad.

    INSERCIN en Arboles Binarios de Bsqueda

    PRIMER CASO-> Si insertamos en un rbol ya creado.

    SEGUNDO CASO-> Si se realiza la insercin por primera vez.

  • ELIMINACION

    Eliminar nodo sin violar los principios del ABdB (rbol binario de bsqueda)

    1er caso: Eliminar un nodo hoja, sin hijos. Redefinir puntero del predecesor a null.

    2do caso: Eliminar nodo padre que tiene un hijo, el nodo descendiente ocupa del lugar

    del padre.

    3er caso: Eliminar nodo con 2 hijos.

    ARBOLES BALANCEADOS

    Mejorar rendimiento de rboles binario cuando tienen crecimiento descontrolado. Es

    ABdB. La altura del subrbol izquierdo y derecho no debe diferir en ms de una unidad.

    Si la altura es 0, el rbol est vaco.

    Si la altura es igual a 1 existe un nico nodo.

    Si la altura es mayor que 1 existe desequilibrio.

    Hay que distinguir:

    si la rama izquierda y derecha tienen la misma altura.

    si la rama izquierda y derecha tienen diferente altura -> si se inserta un elemento

    en la rama derecha se rompe el criterio de equilibrio.

    FACTOR DE EQUILIBRIO

    Determinar si existe o no equilibrio en AbdB.

    FE= HRD HRI; donde HRD es la altura del subrbol derecho y HRI es la altura del

    subrbol izquierdo.

    Si el factor de equilibrio es igual a 2 o -2 se debe reestructurar rbol. El FE de equilibrio

    puede tomar valores de -1, 0 y 1 antes de reestructurarse.

    Existe rotacin simple (izquierda y derecha) y rotacin compuesta (izq-derecha, der-izq)

    INSERTAR 64 49 22 69 81 67 38

    RBOL B

    Generacin de rboles balanceados.

    Cada nodo uede tner un mximo de M valores.

    Nodos -> Pginas

    * Cada nodo (pgina) de orden d tiene 2 claves como mximo y de claves como

    mnimo.

    Hojas no descendentes

    raz tiene una clave y 2 hijos.

    Hojas estn al mismo nivel.

  • Cada pgina de un rbol B de orden d tiene 2d+1 hijos como mximo y d+1

    como mnimo.

    BSQUEDA E INSERCIN

    Proceso sencillo con detalles poco complicados.

    Comportamiento diferente al resto de rboles.

    Forma extraa de crecer, de abajo hacia arriba.

    Todas las hojas tienen el mismo nivel -> cualquier camino desde la raz hasta cualquiera

    de las hojas tienen la misma longitud.

    m -> numero de elementos de los nodos de un rbol.

    Si es de orden 2; el mximo es 2d.

    ORDENACIN

    Reagrupar o reorganizar un conjunto de datos u objetos en una secuencia especfica

    Ordenacin de arreglos;

    Interna: se encuentran en la memoria principal.

    Externa: almacenadas en dispositivos de almacenamiento secundario.

    Ordenacin Interna;

    Existen 2 tipos

    Mtodos directos (n^2) ineficientes y fciles de implementar.

    1.- Intercambio (burbuja) -> se realizan n-1 pasadas colocando menores a la izquierda y

    mayores a la derecha.

    2.- Insercin

    3.- Seleccin

    Mtodos logartmicos (n*logn) son complejos y eficientes.

    CASO 1: No patrn a la izquierda y su siguiente (carcter fallo) es igual al primero del

    arreglo. Se coloca -1 (bajo el siguiente del fallo)

    CASO 2: No patrn a la izquierda y su siguiente (carcter fallo) es diferente al primero

    del arreglo. Se coloca 0 (bajo el caracter de fallo)

    CASO 3: Hay patrn a la izquierda y el siguiente carcter del patrn es diferente al

    carcter de fallo, se coloca el tamao del patrn.

    (Se desplaza el patrn m posiciones a la izquierda del caracter de fallo, m es tamao del

    patrn.)

    CASO 4: Hay patrn a la izquierda y el siguiente carcter del patrn es igual al carcter

    de fallo, se coloca la posicin del siguiente carcter del patrn.