Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Talleres 4
Talleres 4
Código:
Complementario:
Taller 4: Algoritmos
La fecha lı́mite de entrega del taller es el 10 de Mayo hasta la 12:30 p.m en el casillero de los monitores
(W711B). No se admitirán tareas enviadas al correo, en el casillero incorrecto, ni tareas
sin nombre, código o el nombre del complementario correspondiente.
Para este taller vamos a leer las reglas de amigo secreto robado ( o amigo secreto chino) entendido como
un algoritmo de asignación de regalos. En la primera parte vamos a describir el algoritmo combinando
notación matemática con español. Luego, habrá unas preguntas sobre las reglas necesarias del juego
para que de hecho sea un algoritmo. Finalmente se hará un ejemplo en donde tendrán que implementar
el algoritmo.
El algoritmo
Considere un conjunto de jugadores N = {1, 2, ..., n} y el conjunto de regalos Regalos = {r1 , r2 , ..., rn }.
Para cada jugador i ∈ N definimos una relación de preferencias 4i de tal forma que ∀x, y ∈ R decimos
el jugador i prefiere x sobre y si y 4i x. Para simplificar la notación ∀i ∈ N definimos ui : R −→ R una
función de utilidad del agente i que representa sus preferencias. Es decir ∀x, y ∈ R si x 4i y entonces
ui (x) ≤ ui (y).
1. Supuesto 1: ∀x, y ∈ R y ∀i ∈ N si x 6= y entonces ui (x) 6= ui (y). La traducción a español más
acertada del supuesto 1 entre las siguientes opciones es:
a) Todos los jugadores tienen preferencias diferentes sobre los objetos.
b) Ningún jugador es indiferente a elegir entre dos objetos diferentes.
c) Para todos los jugadores, las preferencias entre dos objetos son las mismas.
Antes de comenzar el juego se necesita un orden para jugar. Sea Σ = [σ1 , σ2 , ..., σn ]. Sea α : N −→ R
la función de asignación de regalos.
Paso 1
Defina
α(σ1 ) = arg max uσ1 (x)
Regalos
Recuerden que como vimos en la complementaria arg maxA f (x) es la función que encuentra el ele-
mento del conjunto A que maximiza la función f .
Paso 2
Defina
α(σ2 ) = arg max uσ2 (x)
Regalos
Si α(σ2 ) = α(σ1 ) entonces defina el conjunto R2 = {r ∈ R|@j ∈ {1} t.q α(σj ) = r} y ahora
donde j ∈ {1, 2, ..., k − 1} tal que α(σj ) = α(σk ). De lo contrario continúe al siguiente paso.
r1 r2 r3 r4 r5
1 5 3 2 4 1
2 3 4 1 2 5
3 4 1 5 2 3
4 2 5 4 1 3
5 5 2 4 3 1
agentes. Con base en este ejemplo y dado Σ = [2, 3, 5, 1, 4] responda a las siguientes preguntas:
5. Cacule el conjunto R3 y escribalo de forma extensiva: .
6. Cacule el conjunto α(σ1 ) y escribalo de forma extensiva: .
7. Cacule el conjunto α(σ3 ) y escribalo de forma extensiva: .
8. Cacule el conjunto R5 y escribalo de forma extensiva: .
9. Cacule el conjunto α(σ5 ) y escribalo de forma extensiva: .
Página 2 de 2