[pyar] Ordenar horarios - Ejercicio Python

Juan Pedro Fisanotti fisadev en gmail.com
Mie Jul 7 12:22:00 ART 2010


2010/7/7 Juan Rodríguez Monti <juanrodriguezmonti en gmail.com>:
> El otro día - hace un tiempo - revisando los mails que no habia leido de la
> lista ví uno en donde un listero contaba un ejercicio que tomaban en un
> trabajo en las entrevistas. Me pareció interesante. En especial alguna de
> las respuestas de algunos listeros. Algunos códigos eran geniales.
>
> Ahora yo voy a hacer lo mismo. Un amigo me contó que toma el siguiente
> ejercicio para desarrollar en Python ( no me pareció tan simple ) cuando
> recluta programadores.
>
> Es bastante sencillo, pero para alguien que recién empieza puede ser medio
> bravo. Lo planteo para ver cómo lo armarian ustedes, y para que compartan su
> sapiencia con Python.
>
> El ejercicio: Se debe escribir una aplicación en python que permita ingresar
> por teclado los horarios de cursada disponibles para un alumno ( Esto
> significa que la Universidad ofrece n horarios posibles; por ejemplo: hay 3
> horarios de matemática disponibles con sus día y hora respectivos, 2 de
> algebra, 5 de programación, etc ), y que dicho programa procese la entrada
> de datos e imprima en la pantalla todas las posibles combinaciones de
> horarios de cursada en base a esa entrada.
>
> Ejemplo de horario:
>
> Matemática I - Lunes de 15 a 17 - Miércoles de 20 a 21 - Viernes de 16 a 18.
> Algebra II - Martes de 15 a 19
> Algoritmos III - Martes de 14 a 18 - Miércoles de 16 a 19
>
> En base a toda la entrada de datos, en donde habrá horarios que se
> superponen por coincidir parcial o totalmente en hora o día, el sistema
> deberá construir e imprimir opciones de horarios para que el alumno elija
> cúal es la ideal para el. Es decir, en base a las n opciones de cursada que
> se ingresan, el sistema deberá mostrar por pantalla opciones para que el
> alumno utilice. em donde ninguna materia se superponga con otra, y
> contemplando que sea posible cursar la mayor cantidad de materias posibles.
>
> Dato aclaratorio: Se ingresará nombre de materia, cantidad de días que se
> cursa ( generalmente 2, pero pueden ser más ), y horarios. Ayuda: Puede ser
> de ayuda pedirle al usuario que ingrese por cada día que se cursa hora de
> inicio y fin de la cursada.
>
> Plus: Si se diseña un algoritmo que optimice las opciones. Es decir, si se
> determina un criterio a través del cual es mejor cursar 4 hs lunes y 4 hs
> martes, en lugar de cursar 8 horas un único día. O aquí se puede implementar
> la optimización que se deseé.
>
> Si les interesa posteen su código que siempre es un placer leerlos.
>
> Un saludo,
> Juan
>
>

Es un lindo problema para resolver con los métodos de búsqueda de
inteligencia artificial :)
Recomiendo ver en AIMA (Artificial Inteligence, a Modern Approach) la
parte de técnicas para resolver problemas de búsqueda. En especial
porque todo el código de AIMA está implementado en python (
http://code.google.com/p/aima-python/ ), por el mismo Norvig, jeje.


-- 
fisa  -  Juan Pedro Fisanotti



More information about the pyar mailing list