[pyar] Ordenar horarios - Ejercicio Python

Claudio Freire klaussfreire en gmail.com
Mie Jul 7 13:31:09 ART 2010


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?

;-)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100707/d0d4cd2a/attachment.html>


More information about the pyar mailing list