Está en la página 1de 12

12/15/21

ANÁLISIS DE ALGORITMOS
CCPG1036
Unidad 5: Diseño de Algoritmos

Contenidos
5. Diseño de algoritmos
5.1. Exactitud de algoritmos
5.2. Estrategia de fuerza bruta
5.3. Estrategia de "backtracking"
5.4. Estrategia de dividir y conquistar
5.5. Estrategia voraz
5.6. Programación dinámica
5.7. Selección de la estrategia de diseño de algoritmo adecuada

1
12/15/21

Rigurosamente cierto o correcto.

5.1. Exactitud de algoritmos


Algoritmo para resolver el problema de emparejamiento estable.
Tarea: Analizar el algoritmo.

Propuesta de Gale and Shapley


Dado un conjunto de preferencias entre empleadores y
solicitantes, ¿podemos asignar solicitantes a empleadores de
modo que para cada empleador E, y cada solicitante A que no esté
programado para trabajar para E, al menos uno de las siguientes
es el caso?
(i) E prefiere a cada uno de sus solicitantes aceptados a A; o
(ii) A prefiere su situación actual a trabajar para el empleador E.

Si esto se mantiene, el resultado es estable: el interés personal individual evitará


que se haga un trato entre el solicitante y el empleador entre bastidores.

2
12/15/21

Fuente: Algorithm Design. Kleinberg, J., & Tardos, E. (2006) . Pearson Education Inc.
6

Comprobar si el algoritmo es correcto.


Consideraciones

3
12/15/21

Las perspectivas
1. Ella inicia soltera, luego se compromete. Permanece
comprometida hasta obtener una mejor propuesta.
2. El inicia soltero hasta que hace una propuesta al
tope de su ranking. Podría o no comprometerse. A lo
largo del tiempo podría alternar su estado.

• La secuencia de personas a las que él hace una propuesta


empeora con el tiempo.

¿Qué debemos demostrar?


• Si m está libre en algún momento de la ejecución del algoritmo,
entonces hay una mujer a la que aún no le ha propuesto matrimonio.
• El conjunto S que retorna el algoritmo es un emparejamiento estable.

10

4
12/15/21

Tiempo de ejecución
El algoritmo termina luego de n2 iteraciones del lazo.
Medida de avance Cota superior

Cada iteración consiste en un hombre haga una propuesta (por única


vez) a una mujer a la que nunca antes le había propuesto matrimonio.
Si dejamos que P (t) denote el conjunto de pares (m, w) tal que m ha
propuesto w al final de la iteración t, vemos que para todo t, el tamaño
de P(t + 1) es estrictamente mayor que el tamaño de P (t). Si solo hay n2
pares posibles en total, P (·) puede aumentar como máximo n2 veces
durante el transcurso del algoritmo. Por lo tanto, se deduce que puede
haber como máximo n2 iteraciones.

11

Objetivo: Conjunto de matrimonios estables.

• Una correspondencia S es estable si: (i) es perfecta y (ii) no hay


inestabilidad con respecto a S.

m prefiere w a w' m prefiere w a w'


m' prefiere w a w' m' prefiere w' a w
w prefiere m a m' w prefiere m' a m
w' prefiere m a m' w' prefiere m a m'
*IMPORTANTE: Es posible tener más de una correspondencia estable.

12

5
12/15/21

Camino a la
infelicidad
• Las mujeres son infelices si los
hombres proponen;
• los hombres son infelices si las
mujeres proponen.

13

¿Todas las ejecuciones del algoritmo


producen la misma coincidencia?
Considere un algoritmo que se ejecuta de forma asincrónica, con diferentes
componentes independientes que realizan acciones que pueden ser
intercaladas de forma compleja, y se desea saber cuánta variabilidad provoca
esta asincronía en el resultado final.

14

6
12/15/21

En una ciudad hay n hombres y n mujeres que buscan


casarse entre sí… Primeras k entradas son buenas personas del
género opuesto en algún orden.
• Cada persona tiene una lista de preferencias.
• El conjunto de las 2n personas se divide en dos categorías: buenas y malas.
• Supongamos que para algún número k, 1 ≤ k ≤ n - 1, hay k buenos hombres
y k buenas mujeres; así que hay n - k hombres malos y n - k mujeres malas.
• Todo el mundo preferiría casarse con una buena persona que con una
mala.
• Formalmente, cada lista de preferencias tiene la propiedad de que clasifica
a cada buena persona del género opuesto por encima de cada mala
persona del género opuesto.

Fuente:2/11/21
Algorithm Design. Kleinberg, J., & Tardos, E. (2006) . Pearson Education Inc.

15

¿Cómo demostramos que, en


cada emparejamiento estable,
todo buen hombre está casado
con una buena mujer?

16

7
12/15/21

En una ciudad hay n hombres y n mujeres que buscan


casarse entre sí… Primeras k entradas son buenas personas del
género opuesto en algún orden.
• Cada persona tiene una lista de preferencias.
• El conjunto de las 2n personas se divide en dos categorías: buenas y malas.
• Supongamos que para algún número k, 1 ≤ k ≤ n - 1, hay k buenos hombres
y k buenas mujeres; así que hay n - k hombres malos y n - k mujeres malas.
• Todo el mundo preferiría casarse con una buena persona que con una
mala.
• Formalmente, cada lista de preferencias tiene la propiedad de que clasifica
a cada buena persona del género opuesto por encima de cada mala
persona del género opuesto.

Fuente:2/11/21
Algorithm Design. Kleinberg, J., & Tardos, E. (2006) . Pearson Education Inc.

17

Método indirecto
(contradicción)
Existiría una coincidencia estable M en la que un buen
hombre m estuviera casado con una mala mujer w.

18

8
12/15/21

Método indirecto
• Un buen hombre m estuviera casado con una mala mujer w.
• Hay k buenos hombres y k buenas mujeres.
¿Podría ser el caso de que toda buena mujer esté casada con
un buen hombre en estos emparejamientos?

• k-1 buenos hombres


• Una buena mujer w’ casada con un mal hombre
• Pareja (m, wʹ) es inestable.

19

Otros problemas
relacionados.

20

9
12/15/21

Problema:
Asignación de vacunas.

This Photo by Unknown Author is licensed under CC BY-SA

21

5.2. Estrategia de fuerza bruta

23

10
12/15/21

Clave de un candado
•Coincidencia de cada dígito
•Lazos anidados
•Tiempos de ejecución

24

Problema de la mochila
• Una persona se encuentra en una bóveda repleta de objetos valiosos.
Sin embargo, solo tiene una mochila de capacidad S libras (la mochila
se romperá si intenta llevar más de S libras).
• La bóveda tiene n artículos, donde el artículo i pesa si libras y se
puede vender por vi dólares. Los pesos, si, son números enteros.
• Se debe elegir qué artículos llevar en la mochila para ganar la mayor
cantidad de dinero posible después de venderlos.

25

11
12/15/21

Capacidad: 6
Objeto Peso (Lb) Valor ($) libras
1 3 25
2 2 20
3 1 15
4 4 40
5 5 50

This Photo by Unknown Author is licensed under CC


BY-NC

26

Objetos Peso Valor Validez


Objeto Peso (Lb) Valor ($)
{} 0 0 Sí
{1} 3 25 Sí 1 3 25
{2} 2 20 Sí 2 2 20
3 1 15
4 4 40
5 5 50

{1,2,3,4,5} 15 150 No

28

12

También podría gustarte