Está en la página 1de 40

+

Diseño y Análisis de
Algoritmos
Centro de Investigación en Computación
+ 2

Rolando Quintero Téllez

 Laboratorio de Procesamiento Inteligente de la Información Geoespacial

 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

 Materiales del curso


 Estas presentaciones
 Libros y otros recursos
 https://www.dropbox.com/sh/ibdumbrkcph731q/AABid0wTxdoEvYImUR
D4bYbOa?dl=0
+ 4

Modo de evaluación

 50% examen departamental


 Único para todos los grupos
 Entre el 11 y el 15 de enero del 2016

 50% evaluación contínua


 20% participación en clase
 exámenes rápidos
 exposición
 15% tareas
 se envían por correo electrónico
 15% proyectos
+ 5

Tarea 0

 Enviar un correo electrónico desde su cuenta de correo


oficial para el curso
 Nombre completo
 Número telefónico de contacto

 En el asunto del correo deben poner:


 B15 – ADA – Tarea 0 – Datos de contacto

 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

 Algoritmo es un conjunto prescrito de instrucciones o


reglas bien definidas, ordenadas y finitas que permite
realizar una actividad mediante pasos sucesivos que no
generen dudas a quien deba realizar dicha actividad.
Dados un estado inicial y una entrada, siguiendo los
pasos sucesivos se llega a un estado final y se obtiene
una solución.
+ 10

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

 se define como el proceso previo de configuración


mental, "pre-figuración", en la búsqueda de una
solución en cualquier campo.

 Etimológicamente deriva del término italiano disegno


(dibujo), designio, signare, signado "lo por venir", el
porvenir visión representada gráficamente del futuro,
lo hecho es la obra, lo por hacer es el proyecto, el acto
de diseñar como prefiguración es el proceso previo en
la búsqueda de una solución o conjunto de las mismas.
+ 12

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

 Análisis (del griego ἀνάλυσις) puede referirse a


estudio minucioso de un asunto, noticia, suceso,
revistas, etc.

 Analizar, es el proceso de extraer las cosas mas


importantes para poder quedarte con lo esencial de
esa cosa, lo cual hay muchas formas de poder llamarlo
análisis.
+ 14

Diseño y Análisis de Algoritmos

 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

Formulación del problema

 Dados un conjunto de hombres y un conjunto de


mujeres, ambos del mismo tamaño, encontrar pareja a
todos los hombres y todas las mujeres
 Monogámamente, cada persona pertenece a una sola
pareja
 Cada persona hace una lista de preferencias, en orden
descendente, que incluye a todas las personas del sexo
opuesto
+ 18

Emparejamiento estable

 Un emparejamiento se da cuando todas las personas


están a lo más en una pareja

 Un emparejamiento perfecto se da cuando todas las


personas están en exactamente en una pareja

 Un emparejamiento es estable si es un emparejamiento


perfecto y no hay parejas inestables
 Una pareja es inestable si se prefieren uno al otro sobre la
pareja que tienen
+ 19

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

 Consideremos que todas las personas están libres en


un principio

 Cada hombre le propone emparejarse a la primera


mujer en su lista
 Ella lo acepta si está libre
 Ella lo acepta si lo prefiere sobre el que ya tiene
 Ella lo rechaza y el hombre la borra de su lista y comienza
de nuevo
+ 22

Preguntas

 ¿Se obtiene un emparejamiento perfecto?

 ¿Se obtiene un emparejamiento estable?

 ¿Se obtiene siempre el mismo emparejamiento?


+
Sesión 2

23
+ 24

Algoritmo propuesta-rechazo

 Gale-Shapley, 1962

 Método intuitivo que garantiza encontrar un emparejamiento estable


+ 25

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

 El algoritmo termina en a lo más n2 iteraciones

 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

 Todos los hombres y todas las mujeres quedan con pareja

 Demostración (por contradicción)


 Supongamos que Chucho termina sin pareja
 Entonces, alguna mujer quedó sin pareja, por ejemplo María
 De acuerdo al algoritmo, una vez que una mujer obtiene
pareja, esta ya no es posible que vuelva a quedar libre
 Entonces, a María nadie le propuso emparejarse
 Pero, Chucho le propuso a todas las mujeres!
+ 28

Estabilidad

 No hay parejas inestables

 Demostración (por contradicción)


 Supongamos que Lupe-Toño es una pareja inestable, es
decir que se prefieren uno al otro por sobre la pareja se les
fue asignada. O sea que no están juntos
 Caso 1: Toño nunca le propuso a Lupe
 Esto pasa porque Toño prefiere a su pareja asignada
sobre Lupe!
 Caso 2: Toño le propuso a Lupe
 Lupe rechazó o cambió a Toño
 Lupe prefiere a su pareja asignada sobre Toño!
+ 29

Análisis de la solución

 ¿Para una instancia del problema pueden existir varios


emparejamientos estables?

 ¿El algoritmo propuesto siempre nos lleva a la misma


solución?
 ¿cuál?
 ¿de qué depende?

 En el ejemplo que hemos manejado:


 Lupe-Pepe, Juana-Toño y María-Chucho
 Lupe-Toño, Juana-Pepe y María-Chucho
+ 30

Asignación óptima para los


hombres
 Cada hombre obtiene a su mejor pareja válida
 Un hombre es una pareja válida de una mujer si existe un
emparejamiento estable en el cual son pareja

 Todas las ejecuciones del algoritmo PR nos llevan a una


asignación óptima para los hombres, la cual es un
emparejamiento estable

 ¿Demostración?
+ 31

Asignación óptima para los


hombres
 Demostración
 Supongamos que un hombre está emparejado con una
mujer que no es su mejor pareja
 Los hombres proponen en orden descendente de
preferencia, por tanto, algún hombre es rechazado por una
pareja válida
 Sea Y el primero de esos hombres, y sea B la mejor pareja
válida de Y y A una pareja válida de Y, que no es la mejor
 Sea S un emparejamiento estable en donde A y Y son
pareja
+ 32

Asignación óptima para los


hombres
 Demostración (cont.)
 Y es rechazado por B
 B está con X
 X fue rechazado por A
 A esta con Y!
 B está sola!
 Y no es rechazado por B!
+ 33

En resumen

 El problema de emparejamiento estable


 Dadas las listas de preferencias de n hombres y n mujeres
encontrar un emparejamiento estable, donde no hay una pareja
que prefiera estar junta sobre las parejas que les fueron asignadas

 Algoritmo Gale-Shapley
 Encuentra un emparejamiento estable en un tiempo del orden de
n2

 Solución óptima para los hombres


 En el algoritmo, donde los hombres proponen, cada uno obtiene a
la mejor pareja válida
 m es una pareja válida de h si existe un emparejamiento estable
donde m y h son pareja
+
Problemas representativos

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

Planificación de tareas con


pesos
 Weighted Interval Scheduling
 Entrada: conjunto de tareas con pesos y tiempos de inicio y
final
 Salida: el conjunto de tareas compatibles con el máximo
peso
+ 37

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

 Weighted interval scheduling


 n log n algoritmo de programación dinámica

 Bipartite matching
 nk algoritmo basado en el máximo flujo

 Independent set
 NP-completo

 Competitive facility location


 PSPACE-completo

También podría gustarte