Доказать это неравенство можно при помощи следующего рассуждения: если мы ослабим условия задачи и разрешим фишкам взбираться друг на друга, то каждая фишка сможет добраться до своего целевого положения по траектории, длина которой в точности равна манхеттеновскому расстоянию между ее начальным и целевым положениями. Таким образом, длина оптимального решения упрощенной задачи будет в точности равна сумрасст. Однако в исходном варианте задачи фишки взаимодействуют друг с другом и мешают друг другу, так что им уже трудно идти по своим кратчайшим траекториям. В результате длина оптимального решения окажется больше либо равной сумрасст.
Упражнение
12. 2. Введите в программу поиска с предпочтением, приведенную на рис. 12.3, подсчет числа вершин, порожденных в процессе поиска. Один из простых способов это сделать - хранить текущее число вершин в виде факта, устанавливаемого при помощи assert. Всегда, когда порождаются новые вершины, уточнять это значение при помощи retract и assert. Проведите эксперименты с различными эвристическими функциями задачи "игра в восемь" с целью оценить их эвристическую силу. Используйте для этого вычисленное количество порожденных вершин.
Назад | Содержание | Вперёд
Назад | Содержание | Вперёд
12. 3. Применение поиска с предпочтением к планированию выполнения задач
Рассмотрим следующую задачу планирования. Дана
совокупность
На рис. 12.8 показан пример задачи планирования, а
также приведено два корректных плана, один из
которых оптимален. Из примера видно, что
оптимальный план обладает одним интересным
свойством, а именно в нем может
предусматриваться "время простоя"
процессоров. В оптимальном плане рис. 12.8
процессор 1, выполнив задачу
Один из способов построить план можно грубо сформулировать так. Начинаем с пустого плана (с незаполненными временными промежутками для каждого процессора) и постепенно включаем в него задачи
Рис. 12. 8. Планирование
прохождения задач в многопроцессорной системе
для 7 задач и 3 процессоров. Вверху показано
предшествование задач и величины
продолжительности их решения. Например, задача
Coffman/ Denning,
одну за другой, пока все задачи не будут исчерпаны. Как правило, на каждом шагу мы будем иметь несколько различных возможностей, поскольку окажется, что одновременно несколько задач-кандидатов ждут своего выполнения. Таким образом, для составления плана потребуется перебор. Мы можем сформулировать задачу планирования в терминах пространства состояний следующим образом:
состояния - это частично составленные планы;
преемник частичного плана получается включением в план еще одной задачи; другая возможность - оставить процессор, только что закончивший свою задачу, в состоянии простоя;
стартовая вершина - пустой план;
любой план, содержащий все задачи, - целевое состояние;
стоимость решения (подлежащая минимизации) -время окончания целевого плана;
стоимость перехода от одного частичного плана к
другому равна