Неизвестно - Prolog

Здесь есть возможность читать онлайн «Неизвестно - Prolog» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Старинная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Prolog: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Prolog»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Prolog — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Prolog», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

где m - число процессоров. Пусть время окончания текущего частичного плана равно

Кон = maх (K j).

j

Тогда эвристическая оценка Н (дополнительное время для включения в частичный план ждущих задач) определяется следующим выражением:

if ОбщКон>Кон then Н = ОбщКон-Кон else H= 0

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

Проект

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

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

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

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

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

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

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

*/

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

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

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

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

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

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

not( принадлежит( Здч1/К1, Акт1), К1<���К2,

раньше( К1, Задача) ), % Активные задачи

Время is К + Т,

% Время окончания работающей задачи

встав( ЗадачаВремя, Акт1, Акт2, Кон1, Кон2),

Ст is Кон2 - Кон1.

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

вставпростой( К, Акт1, Акт2).

% Оставить процессор бездействующим

раньше( Задача1, Задача2) :-

% В соответствии с предшествованием

предш( Задача1, Задача2).

% Задача1 раньше, чем Задача2

раньше( Здч1, Здч2) :-

предш( Здч, Здч2),

раньше( Здч1, Здч).

встав( Здч/А, [Здч1/В | Спис], [Здч/А, Здч1/В | Спис], К, К):-

% Список задач упорядочен

А =< В, !.

встав( Здч/А, [Здч1/В | Спнс], [Здч1/В | Спис1], К1, К2) :-

встав( Здч/А, Спис, Спис1, Kl, К2).

встав( Здч/А, [ ], [Здч/А], _, А).

вставпростой( А, [Здч/В | Спис], [простой/В, Здч/В | Спис]):-

% Оставить процессор бездействующим

А < В, ! % До ближайшего времени окончания

вставпростой( А, [Здч/В | Спис], [Здч/В | Спис1]) :-

вставпростой( А, Спис, Спис1 ).

удалить( А, [А | Спис], Спис ).

% Удалить элемент из списка

удалить( А, [В | Спис], [В | Спис1] ):-

удалить( А, Спис, Спис1 ).

цель( [ ] *_*_ ). % Целевое состояние: нет ждущих задач

% Эвристическая оценка частичного плана основана на

% оптимистической оценке последнего времени окончания

% этого частичного плана,

% дополненного всеми остальными ждущими задачами.

h( Задачи * Процессоры * Кон, Н) :-

сумвремя( Задачи, СумВремя),

% Суммарная продолжительность

% ждущих задач

всепроц( Процессоры, КонВремя, N),

% КонВремя - сумма времен окончания

% для процессоров, N - их количество

ОбщКон is ( СумВремя + КонВремя)/N,

( ОбщКон > Кон, !, H is ОбщКон - Кон; Н = 0).

сумвремя( [ ], 0).

сумвремя( [ _ /Т | Задачи], Вр) :-

сумвремя( Задачи, Вр1),

Вр is Bp1 + Т.

всепроц( [ ], 0, 0).

всепроц( [ _ /T | СписПроц], КонВр, N) :-

всепроц( СписПроц, КонВр1, N1),

N is N1 + 1,

КонВр is КонВр1 + Т.

% Граф предшествования задач

предш( t1, t4). предш( t1, t5). предш( t2, t4).

предш( t2, t5). предш( t3, t5). предш( t3, t6).

предш( t3, t7).

% Стартовая вершина

старт( [t1/4, t2/2, t3/2, t4/20, t5/20, t6/11, t7/11] *

[простой/0, простой/0, простой/0] * 0 ).

Рис. 12. 9. Отношения для задачи планирования. Даны также

определения отношений для конкретной задачи планирования с

рис. 12.8: граф предшествования и исходный (пустой) план в

качестве стартовой вершины.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Prolog»

Представляем Вашему вниманию похожие книги на «Prolog» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Prolog»

Обсуждение, отзывы о книге «Prolog» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x