А можно ли конкретнее описать проблему? Какие данные ввода, параметры и т.д.?
Мы писали в рамках учебного проекта в универе, но перед нами стояла задача, чтобы сделать планировщик на основе имеющихся данных о лекциях профессора и т.д. Другими словами, ты задаешь, какие лекции хочешь посещать, наша прога брала нужные данные с сервера, спрашивала о твоих приоритетах (по возможности все пары вместе, позже, раньше т. д.). Это был промежуточный этап, далее все данные отдавались алгоритму и он, на основе преферируемых параматров высчитывал наилучший результат. Писалось на Java 1.4 и отлично работало(ет).
http://im-coma.de/vv/stundenplan.php?sem=hws06
Вот оно. Правда на немецком, но разобраться можно: внизу neues fach auswählen это выбрать предмет (и далле подкатегории), вверху HWS06 это семестр (оссенне-зимний) и т.д.
Поэкспериментируй.