WikiDer > Локальный поиск (удовлетворение ограничений)
В удовлетворение ограничений, местный поиск неполный метод нахождения решения проблема. Он основан на итеративном улучшении присвоения переменных до тех пор, пока не будут выполнены все ограничения. В частности, алгоритмы локального поиска обычно изменяют значение переменной в назначении на каждом этапе. Новое назначение близко к предыдущему в пространстве назначения, отсюда и название местный поиск.
Все алгоритмы локального поиска используют функцию, которая оценивает качество назначения, например количество ограничений, нарушенных назначением. Эта сумма называется Стоимость задания. Цель локального поиска - найти задание с минимальной стоимостью, которое является решением, если оно существует.
Существует два класса алгоритмов локального поиска. Первый - это жадный или нерандомизированные алгоритмы. Эти алгоритмы изменяют текущее назначение, всегда пытаясь уменьшить (или, по крайней мере, не увеличивать) его стоимость. Основная проблема этих алгоритмов - возможное наличие платоs, которые являются областями пространства назначений, где никакое локальное перемещение не снижает стоимость. Для решения этой проблемы был изобретен второй класс алгоритмов локального поиска. Они выходят из этих плато, выполняя случайные ходы, и называются алгоритмами случайного локального поиска.
Жадные алгоритмы
скалолазание
Самая простая форма локального поиска основана на выборе изменения, которое максимально снижает стоимость решения. Этот метод называется скалолазание, происходит следующим образом: сначала выбирается случайное присвоение; затем значение изменяется, чтобы максимально улучшить качество полученного назначения. Если после заданного количества изменений решение не было найдено, выбирается новое случайное назначение. Алгоритмы подъема на холм могут выйти из плато только путем внесения изменений, не влияющих на качество задания. В результате они могут застрять на плато, где качество назначения имеет локальные максимумы.
GSAT (жадный сат) был первым локальным алгоритмом поиска выполнимости и представляет собой форму восхождения на холм.
Взвешивание ограничений или метод разрыва
Метод выхода из локального минимума - это использование взвешенной суммы нарушенных ограничений в качестве меры стоимости и изменение некоторых весов, когда нет возможности улучшить ход. Точнее, если никакие изменения не уменьшают стоимость назначения, алгоритм увеличивает вес ограничений, нарушенных текущим назначением.
Таким образом, каждый ход, который иначе не изменил бы стоимость решения, снижает ее. Более того, вес ограничений, которые остаются нарушенными при большом количестве ходов, продолжает расти. Следовательно, во время ряда ходов, не удовлетворяющих ограничению, стоимость переходов к назначениям, удовлетворяющим этому ограничению, продолжает расти.
Табу поиск
Недостатком подъема на холм с движениями, не снижающими стоимость, является то, что он может циклически повторять задания с той же стоимостью. Табу поиск[1][2][3] решает эту проблему, поддерживая список "запрещенных" назначений, называемых список табу. В частности, список табу обычно содержит только самые последние изменения. Точнее, он содержит последнюю пару «переменная-значение», так что переменной было недавно присвоено значение.
Этот список обновляется каждый раз при изменении назначения. Если переменной присваивается значение, пара переменная-значение добавляется в список, а самая старая пара удаляется из него. Таким образом, список содержит только самые последние присвоения переменной. Если пара переменная-значение находится в списке табу, то изменение текущего присвоения путем установки переменной в значение запрещено. Алгоритм может выбрать только лучший ход среди не запрещенных. Таким образом, он не может повторять одно и то же решение, если количество ходов в этом цикле не превышает длину списка запретов.
Случайная прогулка
А случайная прогулка алгоритм иногда работает как жадный алгоритм, но иногда перемещается случайным образом. Это зависит от параметра , которое является действительным числом от 0 до 1. На каждом ходу с вероятностью алгоритм работает как жадный алгоритм, пытаясь максимально снизить стоимость задания. С вероятностью однако решение изменяется иным образом, что предполагает некоторую степень случайности.
WalkSAT
Случайное перемещение WalkSAT изменяет значение случайной величины случайного нарушенного ограничения. За пропозициональная выполнимость из конъюнктивная нормальная форма формулы, которые являются исходными настройками этого алгоритма, каждый такой ход изменяет значение переменной с истинного на ложное или наоборот, и обеспечивает выполнимость нарушенного ограничения. Что касается всех стратегий случайного блуждания, случайное движение выполняется только с заданной вероятностью, а движение, максимально уменьшающее стоимость, выполняется в противном случае.
Имитация отжига
Техника имитации отжига основана на изменении вероятности случайного перемещения по сравнению с тем, которое максимально снижает стоимость. В частности, название происходит от стратегии уменьшения вероятности выполнения случайных ходов во время выполнения алгоритма, таким образом фактически «замораживая» пространство поиска.
В частности, если улучшение стоимости хода отрицательный (ход увеличивает стоимость), этот ход выполняется с вероятностью , куда это действительное число. Поскольку вероятность сделать этот ход увеличивается с увеличением , этот параметр называется температура. Имитация отжига со временем снижает эту температуру, позволяя делать больше случайных движений вначале и меньше - через некоторое время.
Локальный поиск по набору циклов
Локальный поиск обычно работает со всеми переменными, улучшая полное присвоение им. Однако локальный поиск также может выполняться по подмножеству переменных, используя какой-либо другой механизм для других переменных. Предлагаемый алгоритм работает на цикл сокращений, который представляет собой набор переменных, которые, если их исключить из задачи, делают ее ациклической.
Для любого назначения переменных сечения оставшаяся задача имеет лес как прямой граф. В результате ее можно решить эффективно. Для управления локальным поиском вместо алгоритма выполнимости в части задачи для леса используется алгоритм, определяющий минимальное количество ограничений, которые могут быть нарушены.
Это минимальное количество определяется путем определения стоимости каждого присвоения переменной. Эта стоимость представляет собой минимальное количество ограничений, которые нарушаются назначением переменных в поддереве с корнем для переменной, когда переменная принимает заданное значение. Эту стоимость можно рассчитать следующим образом. Если обозначает стоимость задания и дети , справедлива следующая формула. В этой формуле 0 или 1 в зависимости от того, нарушает ограничение между и .
Стоимость переменных в разрезе равна нулю, и предполагается, что этим переменным разрешено принимать только свое заданное значение. С этими допущениями приведенная выше формула позволяет вычислить стоимость всех оценок переменных путем итеративного движения снизу вверх от листьев к корню (корням) леса.
Стоимость переменных оценок может использоваться локальным поиском для вычисления стоимости решения. Стоимость значений корней леса действительно является минимальным числом нарушенных ограничений в лесу для этих данных значений. Таким образом, эти затраты можно использовать для оценки стоимости присвоения переменных сечения и для оценки стоимости аналогичных назначений по переменным сечения.
внешняя ссылка
Рекомендации
- ^ Гловер, Фред (январь 1986). «Будущее целочисленного программирования и ссылки на искусственный интеллект». Компьютеры и исследования операций. 13 (5): 533–549. Дои:10.1016/0305-0548(86)90048-1.
- ^ Гловер, Фред (август 1989). "Поиск табу - Часть I". Журнал ORSA по вычислительной технике. 1 (3): 190–206. Дои:10.1287 / ijoc.1.3.190. ISSN 0899-1499.
- ^ Гловер, Фред (февраль 1990). "Поиск табу - Часть II". Журнал ORSA по вычислительной технике. 2 (1): 4–32. Дои:10.1287 / ijoc.2.1.4. ISSN 0899-1499.
- Дехтер, Рина (2003). Обработка ограничений. Морган Кауфманн. ISBN 978-1-55860-890-0.