Генетические Алгоритмы Введение - PullRequest
4 голосов
/ 29 декабря 2011

Начиная, позвольте мне уточнить, что я видел Этот вопрос о генетическом алгоритме , и он не отвечает на мой вопрос.

Я делаю проект в области биоинформатики.Я должен взять данные о спектре ЯМР клетки (E. Coli) и выяснить, какие различные молекулы (метаболиты) присутствуют в клетке.

Для этого я собираюсь использовать генетические алгоритмы.на языке R.У меня нет времени просматривать огромные книги по генетическим алгоритмам.Черт!У меня даже нет времени, чтобы пролистать маленькие книги. (Вот на что связанный вопрос не отвечает)

Так что мне нужно знать ресурсы, которые помогут мне быстро понять, что это такое.Генетические алгоритмы делают и как они это делают.Я прочитал статью в Википедии , эту веб-страницу , а также пару статей IEEE по этому вопросу.

Любой рабочий код на R (даже на C) или указателикакие модули R (если таковые имеются) будут использоваться.

Ответы [ 3 ]

10 голосов
/ 29 декабря 2011

Краткое (и самоуверенное) введение в генетические алгоритмы можно найти по адресу http://www.burns -stat.com / pages / Tutor / генетический.html

Доступен простой GA, написанный на Rна http://www.burns -stat.com / pages / Freecode / genopt.R «Документация» находится в «S Poetry» http://www.burns -stat.com / pages / Spoetry / Spoetry.pdf и код.

4 голосов
/ 29 декабря 2011

Я предполагаю, что из вашего вопроса у вас есть какая-то функция F(metabolites), которая возвращает spectrum, но у вас нет обратной функции F'(spectrum) для возврата metabolites.Пространство поиска metabolites велико, поэтому вместо грубой силы вы хотите попробовать приблизительный метод (например, генетический алгоритм), который сделает более эффективный случайный поиск.

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

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

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

Существуют и другие приблизительные методы, если у вас есть F и ваша функция подсчета очков.Самым простым, вероятно, является Имитация отжига .Другой, который я не пробовал, - это Алгоритм пчел , который, по-видимому, представляет собой многостартовый имитируемый отжиг с усилием, взвешенным по пригодности (что-то среднее между SA и GA).

1 голос
/ 04 августа 2013

Я нашел статью Питера Дж. Деннинга «Наука вычислительной техники: генетические алгоритмы» ( Американский ученый, т. 80, 1, с. 12-14 ). Эта статья проста и полезна, если вы хотите понять, что делают генетические алгоритмы, и всего 3 страницы для чтения !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...