[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