Asignación de eventos en Python

Alexis Roda alexis.roda.villalonga en gmail.com
Mar Jul 8 12:40:37 CEST 2008


En/na Joan Pallarès ha escrit:
> Hola,
> 
> Estoy desarrollando una aplicación en Python para asignar árbitros a
> partidos de fútbol dependiendo de un filtros (no puede repetir partido, etc)
> 
> Ahora solo calculo la primera opción válida. Me gustaría calcular todas las
> posibles opciones, (o ser capaz de calcularlas si el usuario lo quisiera).
> 
> Por ejemplo: el usuario obtiene un resultado que pasa todos los filtros pero
> no le gusta y quiere ver la siguiente posibilidad
> 
> Estoy buscando algoritmos que me permitan calcular todas las opciones pero
> no encuentro.

No es muy eficiente, pero échale un vistazo al backtracking, este 
algoritmo te permite realizar exploraciones de todo el espacio de 
soluciones de un problema. En la wikipedia en castellano encontrarás un 
articulo:

http://es.wikipedia.org/wiki/Backtracking

Si buscas por "problemas de asignación" tal vez encuentres algoritmos 
más específicos y eficientes. Estos algoritmos se aplican generalmente a 
problemas de optimización.

Un algoritmo de este tipo bastante sencillo es el método húngaro:

http://es.wikipedia.org/wiki/Algoritmo_H%C3%BAngaro
http://www.clapper.org/software/python/munkres/

Aunque parece que no es tu caso, puedes aplicar igualmente estos 
algoritmos de optimización asignando inicialmente el mismo coste a todas 
las asignaciones (partido, árbitro) y buscando las soluciones de coste 
mínimo. Si por algún motivo una asignación (partido, árbitro) no es 
satisfactoria puedes incrementar su coste, con lo que el algoritmo 
intentará buscar una solución alternativa de menor coste.




Saludos
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es