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

       

Проект


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

line();

/* Отношения для задачи планирования.
Вершины пространства состояний - частичные планы,
записываемые как

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

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

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

                                                            % Взять ждущую задачу
                not( принадлежит( Здч1/_, Задачи2),
                        раньше( ЗДЧ, Задача) ),

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

Содержание раздела