[pyar] Un problema interesante

Carlos Matías cmdelatorre en gmail.com
Mie Sep 19 19:08:12 -03 2018


A ver si me ayudan a resolver esto (no es "ejercicio de la facu", es un
problema de la vida real que tengo que resolver):

 * Tengo 12 opciones: x0;...;x11
 * Tengo 8 personas: p0;...;p7
 * Cada persona emite sus preferencias de opciones (entre 1 y 12):
      - pref_p0 = [x_0_0,...,x_0_n0]
      - pref_p1 = [x_1_0,...,x_1_n1]
      - pref_p2 = [x_2_0,...,x_2_n2]
      - etc
Como resultado, tengo que hacer dos cosas:
 * elegir 4 opciones ganadoras: xA, xB, xC, xD
 * Asignar equipos (disjuntos) de 2 personas, a cada opción ganadora,
idealmente logrando que ambas personas del equipo tengan a la opción
ganadora entre sus preferencias.

O sea, por ejemplo, si la opción ganadora xA fue asignada al equipo (pI,
pJ) entonces tanto pI como pJ tenían a xA entre sus preferencias.

Cualquier corner case o cosas rara (por ejemplo si hay casos que no tienen
solución), no importa. Que explote.

Python-code, pseudo-código y texto se aceptan ;-)

También me sirve saber si existe un algoritmo "con nombre y apellido" que
resuelve el problema (respuestas del tipo: "clásico problema de matching",
"eso es coloreo de grafos", "búsqueda binaria en árboles balanceados",
"Aplicá Kruscal en un grafo acíclico dirigido multinivel sin ciclos" pero
sin trollear porfa) Pero en ese caso también voy a necesitar que me lo
expliquen ;-)


Carlos Matías
@py_litox <https://twitter.com/py_litox>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180919/2267f24b/attachment-0001.html>


Más información sobre la lista de distribución pyar