Pull to refresh

Comments 16

>Явных результатов и категоричных выводов не представлено
Почему тогда топик называется «Практическое использование генетических алгоритмов»???
Мне было интересно прочитать практические примеры от первого лица, а вы так просто вводите людей в заблуждение
Предполагается продолжение. Ваш довод резонный. Сменю название, чтоб стало сразу ясно. Спасибо.
UFO just landed and posted this here
Представьте, если корень или полюс одной системы автоматического правления (САУ) будет побитово «пересечен» с соответствующим параметром другой САУ. В результате почти наверняка получится неустойчивая САУ, т.к. для ее устойчивости

правильно понимаю, что в топике нет ответа на вопрос как проводить кроссинговер для ваших задач?
Знал примерно как должна выглядеть АЧХ, оставалось подобрать в MatLAb'е параметры, которые мне эту АЧХ «нарисуют». Но САУ — это бортовой вычислитель, малопотребляющий и не очень-то производительный компьютер, а то и вообще просто совокупность частотных фильтров на операционных усилителях.

Наверное все-таки надо научиться применять ГА для данной задачи на Matlab чтобы получать хоть какое-то решение.
В явном виде нет, если говорить о конкретных шагах. Но идея несложная. Если стоит задача синтеза оптимального регулятора, то в генах я закодирую конечное число корней и полюсов передаточной функции. В ходе эволюций и скрещиваний будут проводиться манипуляции именно с этими параметрами. Также можно играться с перереглированием и другими параметрами. По сути это будут числа внутри генов. При мутациях эти числа генерируются случайно. При скрещивании новая особь получит аллельные гены от обоих родителей с разными значениями фитнесс функции. Можно предположить, что взвесив по этим значениям значение корня или полюса, или другого параметра, я получу некий гибрид. Контролировать такой процесс легче, чем побитовый кроссинговер.
Нужно будет вопросу кроссинговера уделить побольше внимания.
Фишка в том, что в реальной ДНК между генами очень много «неиспользуемого» места, поэтому при кроссовере вероятность того что ген разорвётся мала, чаще рвётся это межгенное пространство. Причём такое строение ДНК возникло благодаря всё тем же генетическим алгоритмам, т.к. только такое строение ДНК обеспечивает надёжную передачу информации потомкам.

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

Мне все-таки кажется, что «точка слипания» ищется по заведомо длинной последовательности нуклеотидов. Вероятность разрыва генов сведена к нулю должна быть. Все таки ген кодирует белок. В случае разрыва одного гена и присоединения хвоста от другого получится совсем другой белок. Был сигнальный белок, а станет костная ткань (или нечто подоюное).
Но в любом случае для практики использования в искусственных (виртуальных) мирах, игродельстве и т.д. нет необходимости точно следовать примеру природы. Она нам подсказывает, а мы подхватываем и синтезируем нечто похожее.
Что-то подобное обещали реализовать в DarkSpore?
ЭХХХХ Опередили… :) Не нашел там пока деталей реализации… Спасибо за ссылку.
ИМХО

Вам нужно в рассуждениях спуститься еще на одну ступень ниже.
Чем гены занимаются в ДНК? Грубо? Кодируют белки и время их включения/выключения. Почему у человека две ноги и две руки? При формировании плода в определенный период времени считывается определенная последовательность молекул, которые посредством РНК превращаются в белок, который запускает рост ног. Ноги выросли — начинает вырабатывается белок, который останавливает синтез того, предыдущего ну и т.д.
Об этом я тоже дамал и думаю… Но тут механизм похитрее. Нужно есть слона по кусочкам. Такой механизм формирования организма очень интересен…
превращаются в белок, который запускает рост ног. Ноги выросли — начинает вырабатывается белок, который останавливает синтез того, предыдущего ну и т.д.

в продолжение последовательности…
«Сформировались первичные половые признаки — запускается процесс формирования вторичных (например, кошелек или машина у мужчин)»
Интересно было прочитать данную статью, всегда интересовало применение более современных алгоритмов в области ТАУ.
В статье упоминается градиентный метод в сравнении с генетическим, хочу не много добавить, что градиентный метод сильно зависит от начальных условий в отличие от генетических алгоритмов. Поэтому с помощью градиентного метода не всегда можно сразу найти все решения.
Я к тому и описал Градиентную оптимизацию как дополнение к ГА. Сам сталкивался с этим недостатком. Часто попадаешь в локальные минимумы. Но в ТАУ объекты часто не на столько нелинейны. Исключение — управление тепловыми процессами и т.п., где система уравнений нелинейная (используется матрица Якоби). К тому же проблему выбора НУ как раз и решают ГА.
Спасибо, давно ждал подобную статью
Меня интуресует вопрос кодирования алгоритмов в генах. Имеет ли это смысл и как кодировать алгоритмы различной длинны. То есть можно попытаться делать днк различной длинны или же делать иерархию генов в виде общий алгоритм-частный случай алгоритма… Вобщем все правильные вопросы вы подняли, осталось найти ответы…
Sign up to leave a comment.

Articles