Программирование на языке Пролог для искусственного интеллекта




Проект


Вообще говоря, задачи планирования характеризуются значительной комбинаторной сложностью. Наша простая эвристическая функция не обеспечивает высокой эффективности управления поиском. Предложите другие эвристические функции и проведите с ними эксперименты.

line();

/* Отношения для задачи планирования.

Вершины пространства состояний - частичные планы,

записываемые как

[ Задача1/Т1, Задача2/Т2, ...]*

        [ Задача1/К1, Задача2/К2, ...]* ВремяОкончания

В первом списке указываются ждущие задачи и продолжительности их выполнения; во втором - текущие решаемые задачи и их времена окончания, упорядоченные так, чтобы выполнялись неравенства K1<=K2, K2<=K3, ... . Время окончания плана - самое последнее по времени время окончания задачи.

*/

        после( Задачи1*[ _ /К | Акт1]*Кон1, Задачи2*Акт2*Кон2,Ст):-

                удалить( Задача/Т, Задачи1, Задачи2),

                                                            % Взять ждущую задачу

                not( принадлежит( Здч1/_, Задачи2),

                        раньше( ЗДЧ, Задача) ),

                                                           % Проверить предшествование



Содержание  Назад  Вперед