[pyar] Ordenar horarios - Ejercicio Python

Juan Pedro Fisanotti fisadev en gmail.com
Mie Jul 7 14:04:39 ART 2010


2010/7/7 Claudio Freire <klaussfreire en gmail.com>:
>
>
> 2010/7/7 Sebastian Bassi <sbassi en clubdelarazon.org>
>>
>> 2010/7/7 Claudio Freire <klaussfreire en gmail.com>:
>> > Y python es suficientemente rápido como para procesar 9765625
>> > combinaciones
>> > en un santiamén.
>>
>> Seguro, pero es "fuerza bruta", no te sirve para demostrar muchos
>> conocimientos (pensando que el problema no es solo para ser resuelto,
>> sino para evaluar la manera de resolverlo).
>
> Backtracking con poda y orden heurístico no es fuerza bruta.
>
> Furza bruta es:
>
>
> def cartesian(collections):
>     if len(collections) == 0:
>         raise StopIteration
>     elif len(collections) == 1:
>         for item in collections[0]:
>             yield (item,)
>     else:
>         for item in collections[0]:
>             for stuple in cartesian(*collections[1:]):
>                 yield (item,) + stuple
>
> def superponen(horarios):
>    ...
>
> for horarios in cartesian([ horarios[m] for m in materias ]):
>     if not superponen(horarios):
>         print horarios
>
>
>
> Backtracking con poda es... fuerza informada?
>
> ;-)
>

Pero precisamente backtracking es uno de los algoritmos que está en
AIMA, o sea, de los que yo proponía...
No necesariamente había que irse a los no informados.


-- 
fisa  -  Juan Pedro Fisanotti



More information about the pyar mailing list