Diseño y análisis de algoritmos

Slides:



Advertisements
Presentaciones similares
INGENIERIA INFORMATICA Y BUSQUEDAS CON ADVERSARIOS
Advertisements

ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
Representación del conocimiento
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
SOLUCIÓN DE PROBLEMAS Problema Solución A B S T R C I Ó N C O N R E I
Búsqueda con retroceso
GRAFOS: ALGORITMOS FUNDAMENTALES
TÉCNICA DE DISEÑO BACKTRACKING
MATEMÁTICAS DISCRETAS.
PROGRAMACION DE ESTRUCTURAS DE DATOS
RafaC - Matemática Discreta - UCM 07/08
Solución de problemas por búsqueda inteligente

Inteligencia Artificial Resolver problemas mediante búsqueda
Tema Nº4.
Inteligencia Artificial Resolver problemas mediante búsqueda
Teoría de Grafos.
ESTRUCTURAS DE CONTROL
Complejidad Problemas NP-Completos
 La resolución de problemas algorítmicos no solamente implica que los informáticos sepan programar sino necesitan de otras habilidades como tener una.
Cecilia Laborde González
GRAFOS HUGO ARAYA CARRASCO.
Programación de Computadores
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Grafos. Un Grafo G es un par de conjuntos (V, E), donde V es un conjunto no vacío de elementos llamados vértices o nodos y E es un conjunto formado por.
Teoria de grafos.-clase 4
Universidad de los Andes-CODENSA
Definiciones: conjuntos, grafos, y árboles
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Ordenamiento, Heapsort y Colas de prioridad
PILAS, COLAS, RECURSIVIDAD.
I n s t i t u t o T e c n o l ó g i c o d e T e c n o l ó g i c o d e V i l l a h e r m o s a ING. EN SISTEMAS CATEDRATICO: I.I. Zinath Javier Gerónimo.
Solución de problemas por Búsqueda
Problemas de Decisión y Optimización
Matemáticas Discretas
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Parte I. Estructuras de Datos.
Diseño y análisis de algoritmos
Parte II. Algorítmica. 3. Algoritmos voraces.
Tema 5: Grafos Rafa Caballero - Matemática Discreta - UCM 06.
Ramificación y acotación (Branch and Bound)
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Algoritmos de Búsqueda “Backtracking y Branch and Bound”
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Matemáticas Discretas
Parte I. Estructuras de Datos.
ALGORITMOS La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió.
Sesión 3: Teoría de Grafos
PROBLEMAS DE SATISFACCIÓN DE RESTRICCIONES
Tema 12. Backtracking. 1. Método general.
Parte I. Estructuras de Datos.
Definiciones: conjuntos, grafos, y árboles
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Estructura de Datos 4 Grafos Dirigidos
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
ARBOLES GENERALIZADOS
Presente un cuestionario con los aspectos mas importantes sobre los
BUSQUEDA EN ANCHURA Y PROFUNDIDAD
Matemáticas Discretas MISTI
EXAMENES PAU JULIO Fase general
Aspectos generales de la investigación educativa en el SNIT
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
La clase P juega un papel importante en la teoría de la complejidad computacional debido a que: 1. P es invariante para todos los modelos de cómputo que.
Coloreado de Mapas con Backtracking
Transcripción de la presentación:

Diseño y análisis de algoritmos Técnica de diseño Backtracking II

Temario Técnica de diseño Backtracking Aplicaciones Problema de las 8 reinas

Técnica de diseño Backtracking El problema de suma de subconjuntos Problema Dado un conjunto de n números positivos y otro número positivo M, se trata de encontrar todos los subconjuntos de W cuya suma es M. Ejemplo: si W={11,13,24,7} y M=31, entonces la solución es {11,13,7} y {24,7} Primera representación de la solución: La solución puede representarse como un cubconjunto de los índices de los elementos de W. Para el ejemplo: s(1,2,4) y s(3,4) En general las soluciones son k-tuplas ,1<=k<=n Restricciones sobre las soluciones, primera representación Explícitas: Implícitas: (Para evitar generar varias instancias de la misma tupla)

Técnica de diseño Backtracking El problema de suma de subconjuntos Segunda representación de la solución: La solución puede representarse como una n-tupla tal que de forma que si no se elige si se elige En el ejemplo anterior: (1,1,0,1), (0,0,1,1). Conclusión: Pueden existir varias maneras de formular un problema, con distintas representaciones de las soluciones. Aunque siempre verificando las soluciones un conjunto de restricciones explícitas e implícitas). En el presente problema , ambas representaciones, llevan a un espacio de etados que consta de

Técnica de diseño Backtracking El problema de suma de subconjuntos Arbol del espacio de soluciones (n=4) para la primera representación con tuplas de largo variable Un arco de nivel i al nivel i+1 representa un valor para El espacio de soluciones está definido por todos los caminos desde la raíz hasta cualquier nodo del árbol. Los nodos se han numerado según un recorrido en anchura (utilizando para ello una cola)

Técnica de diseño Backtracking El problema de suma de subconjuntos Arbol del espacio de soluciones (n=4) para la segunda representación con tuplas de tamaño fijo Un arco de nivel i al nivel i+1 toman valores para 0 o 1 El espacio de soluciones está definido por todos los caminos desde la raíz a una hoja del árbol. Hojas, representan las 16-posibles 4-tuplas Los nodos se han numerado según un recorrido en profundidad (se explora primero el último de los nodos añadido a la lista de nodos por explorar, utilizando para ello una stack)

Técnica de diseño Backtracking El problema de suma de subconjuntos Se estudiará una solución, con backtracking, para la segunda representación de la solución(tuplas de tamaño fijo): El elemento x[i] del arreglo solución, toma el valor 1 o 0 dependiendo si el número w[i] se incluye o no en la solución Generación de los hijos de un nodo: Para un nodo de nivel i, el hijo izquierdo corresponde a x[i]=1 y el derecho a x[i]=0 Función acotadora : la tupla (x[1],...,x[k]) sólo puede conducir a una solución si : Si además se sabe que los w[i] están ordenados de forma creciente, la tupla (x[1],...,x[k]), no puede conducir a una solución si : Es decir una función acotadora es (x[1],...,x[k]) verdadera si y ólo si

Técnica de diseño Backtracking El problema de suma de subconjuntos Solución recursiva Procedimiento sumasub(ent s,k,r:entero) {arreglo s globales x,w, de 1 a n. Los valores x[k] 1 a k-1 ya han sido calculados } {s corresponde a la suma de w[i]*x[i] hasta k-1 y r la suma de k hasta n de w[i]} Variable i:entero Inicio x[k]:=1 {generación del hijo izquierdo} Si s+w[k] = M entonces {se ha encontrado un subconjunto} escribir (x[1..k]) {el resto 0} sino Si s+w[k]+ w[k+1]<=M entonces sumasub(s+w[k],k+1,r-w[k]) Fin-si {generación de hijo derecho} Si (s+r-w[k]=>M) and (s+w[k]+ w[k+1]<=M) entonces x[k]:=0 FIN. Llamada inicial ... sumasub(0,1,”suma de todos los w[i]”)

Técnica de diseño Backtracking El problema de suma de subconjuntos Ejemplo n=6, M=30, W=(5,10,12,13,15,18), cada nodo rectángulo representa s,k,r, en cada llamada. Soluciones A=(1,1,0,0,1,0),B=(1,0,1,1,0,0), B=(0,0,1,0,0,1). Se construyen 23 nodos de un total de 127.

Técnica de diseño Backtracking Coloreado de grafos Problema de decision Dados un grafo G y un número entero positivo m , es G ¿m-coloreable? Es decir, ¿se pueden pintar con colores los nodos de G de modo que no haya dos vértices adyacentes con el mismo color y se usen sólo m colores?. Problema de optimización Ya visto en enfoque greedy, el problema es, dado un grafo G, determinar el menor número m de colores con los que se puede colorear G. Una aplicación muy conocida Dado un mapa , puede pintarsesus regiones adyacentes (paises,provincias, etc) de tal forma que no haya dos regiones adyacentes de igual color y no se empleen más de m colores. Cada región se modela como un nodo y si dos regiones son adyacentes sus correspondientes se conectan con un arco.

Técnica de diseño Backtracking Coloreado de grafos Problema a considerar es el decisión Dado un grafo G cualquiera, determinar todas las formas posibles en las que puede pintarse utilizando no más de m de colores . Representación: matriz de adyacencia Tipo grafo = arreglo[1..n,1..n] de booleano Sólo se requiere saber si arco existe o no para verificar restriccion. Representación de los colores: enteros entre 1 y m Tipo color = 0 .. m Representación de la solución Tipo sol = arreglo[1..n] de color

Técnica de diseño Backtracking Coloreado de grafos Espacio de estados, por ejemplo n=3 y m=3 Grado del árbol m y altura n Cada nodo de nivel i tiene m hijos que corresponden a las m posibles asignaciones a x[i], 1<=i<=n

Técnica de diseño Backtracking Coloreado de grafos Solución recursiva Procedimiento m_coloreado(ent k:entero;entsal x:sol) {se usa na variable g de tipo grafo. En x se tiene la parte de la solución ya calculada (es decir,hasta x[k-1]) y k es el índice del siguiente vértice al que se va asignar el color} Inicio repetir {generación de todos los colores ‘legales’ para x[k]} siguienteValor(x,k); {asigna a x[k]:=un color legal} si x[k]<>0 entonces {se ha encontrado un color legal} si k=n entonces escribir (x[1..n) sino m_coloreado(k+1,x) Fin-si hasta que x[k]=0 FIN.

Técnica de diseño Backtracking Coloreado de grafos Solución recursiva Procedimiento siguienteValor(entsal x:sol; ent k:entero) {x[1]..x[k-1] tienen colores asociados, todos los nodos adyacentes tienen distinto color. X[k] tiene el anterior color para el que se ha probado (0 si no se ha probado con ninguno), Se calcula el siguiente color para x[k] diferente de todos los vertices adyacentes a k (0 si no hay ninguno)} Variables encontrado:booleano; j:entero Inicio repetir x[k]:=(x[k]+1) mod (m+1) {siguiente color} si x[k]<>0 entonces encontrado:= verdad; j:=1 mientras j<=n and encontrado haga si g[k,j] and (x[k]=x[j]) entonces encontado:=falso sino j:=j+1 Fin-si Fin-mientras hasta que x[k]=0 or encontrado FIN. Llamada.. m_coloredo(1,x)

Técnica de diseño Backtracking Coloreado de grafos Cota superior de complejidad temporal Número de nodos internos del arbol del espacio de estados: La complejidad del ‘siguientevalor’ para cada nodo interno Cota del tiempo total: