2009-03-29 4 views
8

Я нашел это very cool C++ sample, буквально «Hello World!» генетических алгоритмов.Что такое «Hello World!» генетических алгоритмов?

Я так решил перекодировать все это на C# и this - результат.

Теперь я спрашиваю себя: есть ли какое-либо практическое применение вдоль линий генерации целевой строки, начиная с совокупности случайных строк?

EDIT: мой приятель на твиттере просто написал, что «полезен для типа транскрипции таких вещей, как перевод не должен быть обезьяна.». Хотел бы я знать.

+1

sheesh, я должен использовать GIT, чтобы проверить ваш проект? Что мы делаем с низкими подчиненными пользователями? –

+2

не может сделать всех счастливыми (GIT довольно круто BTW) :) – JohnIdol

ответ

13

Есть ли практическое применение вдоль линий генерации целевой строки, начиная с совокупности случайных строк?

Несомненно. Представьте себе, любой сценарий, в котором вы знаете, как оценить пригодность конкретной строки, и в котором выбор дискретен и ограничены каким-либо образом:

  • Picking произносимых имен («Xhjkxc» имеет низкую приспособленность; «Artekzo» имеет высокую пригодность)
  • Тестируем серию шахматных ходов
  • Гадание комбинацию к сейфу, предполагая, что вы можете сказать, насколько близко вы к разгадке каждому Tumbler
  • Сбор телефонных номеров, которые оценивают на слова (например, «843 -2378 "имеет высокую пригодность, потому что он произносит заклинания" THE-BEST ")
+0

Я не уверен, что получаю пример «произносимого» – JohnIdol

+0

Скажите, что вы хотите найти произносимое имя, начиная с некоторых случайных строк, и у вас есть способ оценить как произносится каждое имя. Вы видите, как случайная перестановка строк до тех пор, пока вы не достигнете чего-либо с высокой «выразительностью» (фитнесом), будет сделано с помощью GA? –

+0

Да, я понимаю, что все это сводится к пониманию правильной функции фитнеса. Таким образом, в случае проявляемости, это должно быть связано с согласным и вокальным парением или smt, как это. – JohnIdol

2

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

+2

Я не согласен с этим вообще; вам не нужно знать, что такое «ответ» для запуска GA. На самом деле, иногда нет ответа - как в моем примере «выбрать произносимое имя». Особое внимание в этой области играют ГА. –

+0

Вам нужно знать, насколько хорош конкретный ответ (для этого нужна функция фитнеса). Но кроме этого, это соус. –

+0

Да, вам не всегда нужно знать ответ для запуска GA. Однако вы выполняете эту конкретную реализацию. Его вопрос заключается не в GA вообще, речь идет об этой конкретной реализации. –

0

Я использовал GA в 2 проблемах реальной жизни.

Одна был проблема оптимизации мощности (максимизирует количество устройств включено, встречая доступную мощность ограничения и гарантийное обслуживание для каждого прибора)

Другими был для оптимизации радиосети, максимизируя зону покрытия с учетом бюджет стационарного оборудования

1

Вы можете написать эксперт, который пишет код на динамическом языке, таком как IronPython, с целью создания кода, который: a) выполняется без сбоев и б) анализирует фондовый рынок и разумно покупает и продает акции.

Это очень упрощенный подход к тому, что было бы необходимо, но это возможно. Вам понадобится хост, который предоставляет множество методов для кода IronPython (технические индикаторы и т. Д.) И базу данных тиков.

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

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

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

+0

спасибо за ваш вклад в это - определенно интересный и очень мощный как возможное приложение, также хороший анекдот :) - любые интересные связанные ресурсы? – JohnIdol

+0

Вот что-то интересное: http://stackoverflow.com/questions/131165/evolutionary-algorithms-optimal-repopulation-breakdowns –

+0

Это просто помощь EA. Большинство статей на EA's действительно претенциозны (читайте: академические), учитывая, насколько легко начать с них. –

0

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