Перейти к публикации

Генетические Алгоритмы Оптимизации


Рекомендованные сообщения

Всем привет !

Может быть кто-нибудь может в двух словах объяснить суть генетических алгоритмов оптимизации? Как они примерно работают и какие классы задач позволяют решать ?

Ссылка на сообщение
Поделиться на других сайтах


может, сначала имеет смысл расшифоровать термин "генетические алгоритмы оптимизации"? Генетика - это целая наука, считавшая одно время "продажной девкой империализма". Таким образом этот термин можно расшифровать как "продажные алгоритмы оптимизации". Но опять же остаётся неясным оптимизации ЧЕГО конкретно? Или не важно чего - доходов, материала, электроэнергии, маршрута транспорта?

Ссылка на сообщение
Поделиться на других сайтах

может, сначала имеет смысл расшифоровать термин "генетические алгоритмы оптимизации"?

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

Впервые подобный алгоритм был предложен в 1975 году Джоном Холландом (John Holland) в Мичиганском университете. Он получил название «репродуктивный план Холланда» и лег в основу практически всех вариантов генетических алгоритмов. Однако, перед тем как мы его рассмотрим подробнее, необходимо остановится на том, каким образом объекты реального мира могут быть закодированы для использования в генетических алгоритмах.

...

<noindex>http://articles.mql4.com/ru/133</noindex>

Или не важно чего - доходов, материала, электроэнергии, маршрута транспорта?

ИМХО, это второстепенно... главное уловить смысл (суть) алгоритма. А дальше уже можно примеряться к реальным объектам, например оптимизировать геометрию какой-нибудь деталюхи по каким-нить заявленым параметрам... причем получая экономию как по времени, так и по компьютерным ресурсам... (Хотя с другой стороны понятно желание коллег сделать разговор более предметным, обозначив интересующую область применения алгоритма...)
Ссылка на сообщение
Поделиться на других сайтах

Спасибо. После обеда почитаю :) Мне так представляется, что это катастрофически полезная штука.

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах

Судя по вашему профилю у вас должен быть опыт в Pro/E.

Там есть модуль BMX: <noindex>http://www.pts-russia.com/products/wildfire_bmx.htm</noindex>

Вам приходилось разбирать его возможности? Очень полезный модуль.

Вот тут есть простенькие примеры по решению задач с помощью BMX (правда по старой версии Pro/E): <noindex>http://sual.narod.ru/ProE/BehavModel/BehavModel.htm</noindex>

Ссылка на сообщение
Поделиться на других сайтах

Генетические алгоритмы предназначены для решения задач оптимизации.

Кстати, по словам Янга - одного из монстров в ГА, ГА по своей природе не предназначены для решения задач оптимизации. Но, естественно, применяются, потому как очень удобно. Прежде всего для дискретных задач.

Но есть сложность: большое число расчетов целевой функции.

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

Основные же принципы простые:

- ф-я должна быть однокритериальной

- не должно быть ограничений

- лишние критерии желательно превратить в ограничения

- ограничения желательно сверныть в ф-ю за счет штрафных ф-й

- чем меньше параметров, тем лучше

- если область поиска будет выпуклой, это хорошо

- если ф-я имеет только один экстремум - это хорошо

Ссылка на сообщение
Поделиться на других сайтах

Как я уже писал, ГА лучше работают для решения дискретных задач. Для непрерывных задач используем дискретизацию.

Основные особенности базового метода:

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

- возможен глобальный поиск, но не гарантируют, что он будет

- вообще не гарантируют сходимости к оптимому (даже теоретически сходимость доказана только для одного вида ГА)

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

- число расчетов целевой ф-и может быть порядка 10000-100000, хотя, конечно, можно ограничивать решение, останавливать раньше, но и гарантии ниже, что решение то, что надо. Здесь уже сильно зависит от класса задач, формы ф-и, числа параметров.

- вообще, когда параметров становиться много ГА становиться безразличным к их числу. Т.е. 100 пар-в или 200 уже имеет малое значение для сходимости, не как в классических методах, когда сложность растет линейно или хуже.

- целевая ф-я записывается как ф-я максимизации (ищем максимум), хотя преобразованиями можно переделать, но изначально так

- решение представляется в виде флагов 1 или 0 (есть свойство или нет) или кодируется этими 1 и 0 в более сложный код. Например при параметрическом поиске число может разбиваться на 16 вариантов, т.е. по 4 бита на число.

- область поиска может быть сколь угодно сложной, это легко учесть в целевой ф-и

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

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.



  • Сообщения

    • davidovka
      в уравнении Гибкой области ячейки наименование первую строку исправьте на  r=ptstrim(1,asm_mbr_НАИМЕНОВАНИЕ,22,0)  
    • M_u_x_a
      @fenics555, согласен с Вами полностью. Риски, о которых Вы говорите - имеют место наравне с прочими. Выкладываю шаблон и форматку, сохранено в Creo 11. Если сравнить мануалы, реализовано по-разному. Но правка результатов не принесла.  
    • RokiSIA
      Вот и попались, пусть теперь они уже отбрехиваются
    • davidovka
      Выкладывайте свои, посмотри что не работает.
    • Anat2015
      А что, бывает по другому, программисты и операторы сразу сознаются?
    • fenics555
      так пока кто-то пользуется кнопкой "сделайкрасиво" он набивает номенклатуру, библиотеку изделий, с уже неправильно указанными параметрами. И вдальнейшем другим конструкторам пользоваться штатными средствами никак не получится, кроме как открыть КАЖДЫЙ файл, добавить нужные парметры (тут можно импортом из шаблона)  и лапками подправить. КАЖДЫЙ! И сборки. Все. Еще с булками разобраться. Иначе без этой DLLки выводиться будет ерунда. ДАЖЕ СРАНЫЙ ЧЕРТЕЖ ОБЫЧНОЙ ДЕТАЛИ! И никто другой даже не додумается, в чем же дело. Ну вот возьмет он (Конструктор с кнопочкой умной) и уволится от неразделенной любви, или по дороге на работу разобьется. Ну фактор человеческий. Бывает. Он работал, получал ЗП за то, что делал "вроде правильно", но любой другой придет- и не сможет сразбегу "в красоту"! И Бос такой, затягивая сигару: "Эх, салага, вот Стас был- да! ..." Ну там, слеза скупая, всё такое. И не объяснить, что он х8йню делал. Поэтому я стараюсь работу работать так, чтоб после меня "Фен -просто красавчик" сказал тот, кто будет после.
    • M_u_x_a
      Уважаемые Господа @fenics555 и @-stas- ! Каждый из вас по-своему прав. Пользоваться или нет дополнительными приложениями при возможности реализации штатными средствами - это выбор каждого инженера. Тут влияет ещё и специфика работы, взаимодействие с другими инженерами и тд. Лично я, пожалуй, вижу в конкретно этом инструменте скорее положительное, нежели бесполезное. В списке дополнительных приложений запущено и работает. Дело в том, что тот релиз, на который я жаловался, был под Creo 1. С этим мне помог уважаемый @davidovka , за что мой ему поклон. Однако, желаемого результата достичь не удалось, несмотря на правку графы таблицы согласно инструкции-мануалу. Теперь там просто пусто, не заполняет. Прошу кинуть в мою сторону шаблон детали и форматку с которыми оно точно работает. Успехов всем в делах и делишках.
    • Сергей Кочев
      При разборе полётов, все утверждали, что программа отлажена и её ни кто не менял и сделали по ней две детали. Ну вот зашёл в свойства файла программы и увидел, что программу редактировали именно в день аварии. Сздана 11.10 Изменена 30.10. Был в отпуске хотел посмотреть Action Log к сожалению уже данные перезаписались.
    • Даниил_91
      спасибо, просто по поиску не нашел конкретной темы кстати надо попробовать, об этом даже не подумал, спасибо
    • Onizuka
      Удалите параметр DRAWN_BY и создайте снова. Список должен обновиться после этого
×
×
  • Создать...