Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diseño y Análisis de
Algoritmos
Centro de Investigación en Computación
+ 2
Estudios
Doctor en Ciencias de la Computación
Geoinformática
Maestro en Ciencias de la Computación
Tecnología de software
Ingeniero en Sistemas Computacionales
Realidad Virtual
Investigación actual
Semántica espacial (IA-Geo)
Representación y manejo del conocimiento
Sistemas autónomos
Contacto
quintero@cic.ipn.mx
Ext. 57577
+ 3
Apectos generales
Horario
Martes y jueves de 12 a 14 horas
Asistencias
Respeto
Disciplina
Temario
12 unidades
Solo se verán las 10 primeras
Modo de evaluación
Tarea 0
Plazo
de inmediato
+ 6
Finalmente
¿Preguntas?, ¿Dudas?
Presentación
+
Preámbulo
Algunas definiciones
7
+ 8
Algoritmo
algoritmo.
(Quizá del lat. tardío *algobarismus, y este abrev. del ár.
clás. ḥisābu lḡubār 'cálculo mediante cifras arábigas').
1. m. Conjunto ordenado y finito de operaciones que
permite hallar la solución de un problema.
2. m. Método y notación en las distintas formas del cálculo.
+ 9
Algoritmo
Diseño
diseño.
(Del it. disegno).
1. m. Traza o delineación de un edificio o de una figura.
2. m. Proyecto, plan. Diseño urbanístico
3. m. Concepción original de un objeto u obra destinados a
la producción en serie. Diseño gráfico, de modas, industrial
4. m. Forma de cada uno de estos objetos. El diseño de
esta silla es de inspiración modernista
5. m. Descripción o bosquejo verbal de algo.
6. m. Disposición de manchas, colores o dibujos que
caracterizan exteriormente a diversos animales y plantas.
+ 11
Diseño
Análisis
análisis.
(Del gr. ἀνάλυσις).
1. m. Distinción y separación de las partes de un todo hasta llegar a
conocer sus principios o elementos.
2. m. Examen que se hace de una obra, de un escrito o de cualquier
realidad susceptible de estudio intelectual.
3. m. Tratamiento psicoanalítico.
4. m. Gram. Examen de los componentes del discurso y de sus
respectivas propiedades y funciones.
5. m. Inform. Estudio, mediante técnicas informáticas, de los límites,
características y posibles soluciones de un problema al que se aplica
un tratamiento por ordenador.
6. m. Mat. Parte de las matemáticas basada en los conceptos de
límite, convergencia y continuidad, que dan origen a diversas ramas:
cálculo diferencial e integral, teoría de funciones, etc.
+ 13
Análisis
Objetivo
El estudiante desarrollará las habilidades matemáticas
necesarias para analizar algoritmos formalmente. El
estudiante será capaz de probar la corrección de un
algoritmo y caracterizar su complejidad en tiempo y
espacio. El estudiante se familiarizará con un conjunto de
técnicas de diseño de algoritmos tales como dividir y
vencer, algoritmos voraces, programación dinámica, redes
de flujo, algoritmos de aproximación, búsqueda local y
algoritmos aleatorios.
+
Unidad 1
Introducción: algunos problemas representativos
15
+1.1. Emparejamiento
estable
Stable matching
16
+ 17
Emparejamiento estable
Ejemplo
Pregunta
¿La asignación de parejas: Pepe-María, Toño-Juana y
Chucho-Lupe, es un emparejamiento estable?
1 2 3
Pepe Lupe Juana María
Toño Juana Lupe María
Chucho Lupe Juana María
1 2 3
Lupe Toño Pepe Chucho
Juana Pepe Toño Chucho
María Pepe Toño Chucho
+ 20
Ejemplo
Pregunta:
¿La asignación de parejas: Pepe-María, Toño-Juana y Chucho-Lupe,
es un emparejamiento estable?
Respuesta: No
1 2 3
Pepe Lupe Juana María
Toño Juana Lupe María
Chucho Lupe Juana María
1 2 3
Lupe Toño Pepe Chucho
Juana Pepe Toño Chucho
María Pepe Toño Chucho
+ 21
Emparejamiento
Preguntas
23
+ 24
Algoritmo propuesta-rechazo
Gale-Shapley, 1962
Corrección (Correctness)
Terminación
El algoritmo termina en un tiempo estimado
En este caso, el algoritmo termina en a lo más n2
iteraciones
Perfección
El algoritmo obtiene un emparejamiento perfecto
Es decir que todos los hombres y todas las mujeres quedan
con pareja
Estabilidad
No hay parejas inestables
+ 26
Terminación
Demostración
En cada iteración en el ciclo while, un hombre le propone a
una mujer distinta
Tenemos n mujeres distintas, por tanto, cada hombre hace
a lo más n propuestas
Tenemos n hombres, por lo que solo puede haber a lo más
n2 propuestas
+ 27
Perfección
Estabilidad
Análisis de la solución
¿Demostración?
+ 31
En resumen
Algoritmo Gale-Shapley
Encuentra un emparejamiento estable en un tiempo del orden de
n2
34
+ 35
Planificación de tareas
Interval Scheduling
Entrada: conjunto de tareas con tiempos de inicio y final
Salida: el conjunto más grande de tareas compatibles
+ 36
Emparejamiento bipartita
Bipartite Matching
Entrada: un grafo bipartita
Salida: el emparejamiento de máxima cardinalidad
+ 38
Conjunto independiente
Independent Set
Entrada: un grafo
Salida: el conjunto más grande de nodos que no están
unidos por una arista
+ 39
Ubicación competitiva de
instalaciones
Competitive Facility Location
Entrada: un grafo con pesos en cada nodo
Dos competidores alternan en seleccionar nodos
Un nodo no puede ser seleccionado si alguno de sus
vecinos ya ha sido seleccionado
Salida: conjuntos de nodos con máximo peso
+ 40
Problemas representativos
Interval scheduling
n log n algoritmo voraz
Bipartite matching
nk algoritmo basado en el máximo flujo
Independent set
NP-completo