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