Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
8.8. Эффективность системы и общие замечанияВыше уже говорилось, что ALICE является эффективной системой и ее производительность может оказаться выше, чем у хороших специальных программ. Мы попытаемся объяснить этот удивительный факт на примерах. В основе успешной работы системы лежат два важных обстоятельства. Первое заключается в более эффективной формальной обработке выражений по сравнению с обычно применяемыми в решении задач численными расчетами. Распространение ограничений позволяет задержать выбор на максимально долгое время. Второе обстоятельство связано с качеством выбора, когда без него нельзя обойтись. Набор возможных критериев является очень сложным, так как охватывает все семейства задач. Когда встречается непредвиденный случай и начинает работать специальный алгоритм, использующий схему перебора, то его характеристики оказываются значительно хуже. В отличие от этого ALICE тщательно изучает контекст задачи и ищет подходящие критерии не только для задачи целиком, но и для каждого выбора в пределах данной задачи. В наихудших случаях ее поведение соответствует поведению специальной программы. Большую часть, времени ALICE будет рассматривать, по крайней мере для некоторых выборов, неожиданный критерий, применение которого предполагалось для совсем другого семейства задач, а в действительности вполне подходящего для данной ситуации. Для некоторых задач, решаемых с помощью карандаша и бумаги, можно показать, что подход ALICE приводит к меньшему размеру дерева Поиска, чем при решении “от руки”. 8.8.1. Пример 1Задачи криптарифметики являются классическими, не требуют обширных познаний в математике и поэтому представляют собой хороший пример для сравнения. Суть задач сводится к тому, что берется простая операция, например сложение двух чисел. Затем цифры заменяются буквами, причем каждой букве соответствует одна цифра (по основанию 10) и двум разным буквам соответствуют две разные цифры. Требуется восстановить замененные буквами цифры, которые определяют правильное выполнение операции. Для решения задач такого рода можно составить численные программы, работающие с помощью перебора по классической схеме (гл. 5). Для простоты числовые значения буквам можно присваивать справа налево, последовательно определяя пригодность текущих значений. Общая схема алгоритма имеет вид (см. скан) Используем эту программу как начальную точку отсчета. Ньюэлл и Саймон (1978) в течение долгого времени изучали действия человека при решении такого типа задач. В частности, они изучили множество протоколов на эту тему и с помощью продукционной системы пытались построить модель процесса решения. Один из рассматривавшихся примеров имел следующий вид:
Буквы слева Поясним на этом примере основной недостаток алгоритмов, действующих по методу слепого перебора. При каждом выборе используется только небольшая часть информации и в неудачном порядке. Подходящий порядок в действительности зависит от каждой операции и может быть найден только с использованием точных результатов символьной обработки ограничений. Число предпринимаемых попыток зависит от числа независимых букв-операндов, которых в данном случае шесть: Обозначим через
Буквы должны соответствовать (биекция) целым числам в интервале [0,9]. Первые выводы (в порядке, определяемом системой): Из ограничения (1) следует, что Т является четным. Из ограничения (5) следует, что
Из ограничения (2) следует, что Из ограничения (3) следует, что 1 Кроме того, все переносы не превышают 1, так как сумма двух букв не может превышать 17. Из этих условий больше нельзя получить никаких других сведений, поэтому должен быть сделан первый выбор. Только что полученное ограничение ИЛИ может оказать в этом существенную помощь. Тогда Выбор При этом изменился вид трех ограничений, а ограничение (5) становится тривиальным.
Следствия. Из ограничения связано с Е. Тогда граф дает, что Из ограничения
так как минимальный набор из трех различных значений в пространстве изображений дает сумму, равную 6. Из неравенства
Затем снова анализируются ограничения (1), (2) и Все ограничения уже проанализированы и необходимо сделать следующий выбор. Существует несколько кандидатов (В и переносы), имеющих только по два возможных значения, и остановиться на одном из них можно с помощью критерия трудности. Наибольшей значимостью обладает переменная Выбор Перепишем систему ограничений:
Выводы. Кроме этого, граф «знает», что Анализ новых ограничений
В завершение выполняется полный перебор значений наиболее простого ограничения Из равенства И снова больше не остается свободных значений для
Таким образом, последний выбор оказывается под угрозой. Остается только одна возможность: Выбор
Значение 5 уже закреплено за А, поэтому Окончательно имеем Выбор
Первым анализируется ограничение
При
а также Выбор
Но
требует, чтобы Выбор
Из ограничения 1. Если
следовательно, Решение задачи выглядит следующим Образом:
следовательно, Таким образом, найденное решение является единственным, дерево поиска приведено на рис. 8.12. Дерево имеет шесть Листьев, полное время его обработки составляет 9 с, что меньше времени, которое требуется программе, работающей по принципу перебора, типа приведенной в гл. 5 (1 мин и 10 с на ЭВМ IBM 4331).
Рис. 8.12. Дерево поиска системы ALICE для решения задачи 8.8.2. Пример 2 Рассмотрим более сложную задачу — проблему перестановок, которая была предложена Марселем Шутценбергером. Найти все Вектор монотонности
Вектор опережения если
Таким образом, вектор Рассмотрим простой числовой пример. Возьмем в качестве данных
Отсюда следовательно,
Теперь из ограничения (а) получаем
и только элемент
С другой стороны,
Из ограничений Из ограничения
что приводит к удовлетворению всех ограничений. Таким образом, определяется единственная перестановка, удовлетворяющая условию задачи:
Выводы ALICE в точности совпадают с ходом наших рассуждений при решении этой задачи в уме. Если же мы хотим составить программу, специально предназначенную для решения этой задачи, то тут же появляется принцип перебора, который, как обычно, можно представить в виде следующей схемы: А: Присвоить значения всем элементам. В: Проверить частичное решение и продвинуться дальше в случае успеха. С: В случае неудачи, но если надежда на получение решения еще не потеряна, вернуться назад. Этап А соответствует нахождению следующего элемента. Для естественного порядка на интервале
начиная с нулевых начальных значений. Этап В является более тонким, так как порядок, в котором выполняются различные тесты, определяет эффективность нашей программы. Должны быть предусмотрены три теста:
Во избежание бесполезной работы эти тесты должны быть проведены как можно раньше. Тест Тест Процедура PERM: Определить все перестановки (см. скан) (см. скан) Программу можно улучшить, если в нее включить несколько специальных случаев. Однако необходимо сделать одно замечание. Эта программа является жесткой, она составлена без учета числовых данных... Все перестановки определяются в одном и том же порядке, какими бы ни были векторы ант. Это может привести к неприятным последствиям, так как определенные значения к такому ограничению числа перестановок, что время решения будет возрастать в соответствии с полиномиальной зависимостью. 8.8.3. Решение задачи системой ALICE Система ALICE при решении задачи учитывает все сказанное выше. Приступая к работе, она начинает вовсе не с построения алгоритма, а с анализа данных. Предположим, например, что
При
или
Но
Отсюда следует
Дуги
Ограничения типа
Рис. 8.13. Граф ограничений по монотонности. Первым проверяемым ограничением является Теперь некоторые проанализированные ограничения с неравенством исчезают, так как становятся тривиальными. Это относится, например, к На этом этапе новая информация не может быть выведена, но Сначала выполняется выбор Таким образом, только Точка 7 теперь имеет только двух предшественников. Допуская, что Положив Приняв
Для того чтобы найти 42 решения задач, надо вернуться только на шесть двоичных выборов, т. е. на 64 возможности вместо Для специальных программ существуют худшие случаи. Предположим на мгновение, что в качестве данных используются
Процедура PERM будет работать всегда одинаковым образом. Она последовательно находит векторы 1, 12, 123, 13, 132, 1324, 14, 142, 1423, 143, 1432, 14325 и т. д., хотя в действительности, как это сразу и определяет ALICE с помощью анализа ограничений, содержащих неравенства типа с необходимостью следует Кроме того, при этом тривиально удовлетворяются все ограничения, связанные с вектором опережения, так как для Конечно, подобный тип данных может быть специально предусмотрен в программе PERM. Но с другими типами данных будет гораздо сложнее. Даже модифицированная программа PERM будет всегда отставать для различных наборов данных, например, если в вектор а добавить несколько единиц (и задача не будет иметь решения) или заменить единицы на нули, и наоборот. Задача становится еще более трудной, если в нее ввести новые ограничения, слегка изменив ее условия, как это часто происходит на практике. Если, например, потребовать, чтобы выполнялось условие
|
1 |
Оглавление
|