Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОСОБИЕ ПО САПР-2012.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
2.04 Mб
Скачать

4.6. Генетический метод комбинирования эвристик

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

Кластеризация. Вместо ограничения типа неравенства вводится ограничения типа равенства на число элементов в кластере.

n= ent(n/m) – или ent(n/m)+1,

где ent(n/m) – целая часть деления числа элементов на число кластеров.

Например, в одной микросхеме 4 элемента «И-НЕ». Если ставим один элемент, то цена его установки увеличивает общую цену. Добавление 2-го, 3-го и 4-го элементов бесплатное, добавление 5-го элемента снова увеличивает цену. Следует учесть, что существуют и другие соображения, кроме количества элементов. В частности, возрастание связей может оказаться дороже, чем добавление элемента. Следовательно, нужны синтетические критерии, учитывающие одновременно и количество элементов и количество связей, т.е. необходимо приводить эти платежи к единой шкале.

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

5. ДинамическОе программирование

5.1. Принцип динамического программирования

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

При графическом решении таких задач строится поле оптимальных направлений для каждой точки.

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

На рис.1. показан пример решения лабиринта на этом принципе. Движение разрешено только по клеточкам (включая движение вдоль стены, если ее граница совпадает с линией клеточки). Решение осуществляется по следующему алгоритму: каждому углу клеток, начиная с ближайших к финишу точки, приписывается цена, соответствующая оставшемуся расстоянию до финиша. При различных способах движения от данного угла до финиша фиксируется кратчайший путь и углу в качестве характеристики присваивается минимальное расстояние. Таким образом, в соответствии с одним вариантом движения граница старта получает цену 50, по другому пути – 36, а по третьему – 32.

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

Обязательный принцип состоит в том, что на каждом этапе критерий оптимальности должен быть тот же самый, изменения критерия недопустимо. Изменение метода поиска оптимальной траектории может иметь место, при условии, что сам критерий не меняется.

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

Рис.1. Поиск кратчайшего расстояния методом динамического программирования.

Другой пример: на одном этапе вызваться перетаскивать грузы, дабы получить освобождение от бесплатного образования, а на втором этапе, допустим, заплатить за образование, чтобы снизить свои усилия по получению знаний и лучше подготовиться к экзаменам, то в целом получается, что обучающийся заплатил за то, чтобы работать грузчиком (хотя на самом деле за это должны платить зарплату). Кажущийся выигрыш в одном и кажущийся выигрыш в другом на разных этапах на деле обращается в чистый проигрыш.

Пример того, что методику поиска оптимума можно на разных этапах менять, лишь бы критерий не менялся: скажем, начальные настройки регулятора могут быть получены градиентным способом, а окончательные – простым дроблением шага и анализом результата (подобно тому, как осуществляется поразрядное уравновешивание в АЦП). Градиентный способ на начальном этапе позволяет правильно указать направление и даже величину шагов по направлению к оптимуму, поэтому он более эффективен. На последних этапах градиент мал, вычисления градиента по сложности не уменьшаются, поиск может затянуться, процедура оптимизации – зациклиться. Тогда как простое дробление шага может привести к нужному результату за фиксированное количество шагов при фиксированной требуемой точности.

Примеры из социологии.

Разрезание «государственного» пирога по Беллману. При условии, что пирог требуется разделить на N частей, и каждый имеет право отрезать и выбрать себе кусок, получится, что первые будут отрезать и выбирать большие куски. Если сформулировать правило, в соответствии с которым первый отрезающий будет последним выбирающим, то каждый будет заинтересован в отрезании долей, равных 1/N. При этом первый берущий вообще не должен ничего резать. В политике это означает, что делить бюджет должны не те, кто возглавляет ведомства, которые будут этот бюджет тратить. Например, конгресс делит бюджет по статьям или по министерствам, а министерства уже получают эти доли, но сами конгрессмены не заинтересованы в увеличении чьей-то доли, дабы не вносить субъективности (т.е., естественно, необъективности, неправильности).

Деление зарплат по голосованию большинства. Если председательствующий будет ставить на голосование предложение обездолить одного (за какую-то реальную или надуманную вину) и раздать его долю остальным, он будет всегда получать поддержку большинства. За M постановок на голосование можно наказать порциями по 1/K членов (или групп) общества общим числом в M/K. Требование поддержки простым большинством выполняется при K>2, а квалифицированным большинством – при K>3. Таким образом, за требуемое количество итераций он может обездолить не меньшинство, а большинство. Чтобы обездолить все 100% (кроме себя любимого), достаточно в самом примитивном случае трех голосований. Для более завуалированных действий потребуется больше голосований, но суть останется той же: манипулируя мнением большинства, можно подавить не только меньшинство, а также и большинство членов общества, имеющих право голоса. Это достигается именно потому, что критерии между разными голосованиями меняются. Фиксация и преемственность критериев (законов), таким образом, служит основой полезности демократии. Именно поэтому для изменения законов обычно требуется не простое большинство, а квалифицированное большинство (т.е. более 2/3 присутствующих) при условии явки квалифицированного кворума (т.е. более 2/3 списочного состава).

Критерий maximin (максимум из минимума) или minimax (минимум из максимума). Часто применятся в теории игр для минимизации риска или максимизации прибыли для самого плохого случая. В оценке общества тоже защищенность самого бесправного члена общества – показатель его гуманности (но не имеет ничего общего с принципом демократии). Суд Линча – тоже демократический аппарат. Приговор Сократа в Афинах также был осуществлен по всем правилам «демократического» голосования.