GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.29 (29)<< < Пред.   Поиск:  
 Автор Тема: zzz
ДенисРоманюк
Сообщений: 331
zzz
Добавлено: 20 фев 12 10:31
[Ответ][Цитата]
ДенисРоманюк
Сообщений: 331
На: Ai Drew :: Прикладные Q&A ЕЯ системы Общения: NLP/NLSU/VoiceXML
Добавлено: 20 фев 12 23:31
[Ответ][Цитата]
Capt.Drew
Сообщений: 4179
На: Ai Drew :: Прикладные Q&A ЕЯ системы Общения: NLP/NLSU/VoiceXML
Добавлено: 07 мар 12 7:40
/ Зоология / VUI /
----------- Козы меняют «акцент» в зависимости от окружения
16-FEB-2012 -t- Текст: КСтасевич http://science.compulenta.ru/661694/
Способность варьировать и изменять свой голос свойственна не только людям.
Зоологи обнаружили, что обычные козы могут менять голос
в зависимости от окружения, в котором они выросли.... ... ..

[Ответ][Цитата]
user2358645
Сообщений: 7
На: Ai Drew :: Прикладные Q&A ЕЯ системы Общения: NLP/NLSU/VoiceXML
Добавлено: 28 янв 15 14:51
Всем доброго времени суток!
Уже достаточно давно изучаю материалы по ГА, но написать свою реализацию решился только сейчас )))
Реализация написана на Матлабе.
В качестве задачи взял классическую задачу коммивояжера.

Начальные условия такие:
- сколько-то городов (задается);
- один коммивояжер;
- максимальная дистанция между двумя соседними городами (для генерации начальной популяции);
- размер эволюции (количество поколений);
- количество особей;
- коммивояжер каждый город может посетить только один раз;

Генная структура хромосомы такая: (далее все примеры будут для 5 городов)
X X X X X, где Х - номер города, например: 1 4 2 3 5. Таким образом, коммивояжер, выйдя и 1 города, в него же и вернется. Хромосомы генерируются с учетом условия однократного посещения каждого города, так что повторов в генах нет.

Сразу оговорюсь что пока решил гены не кодировать в двоичный формат.

Однако, при написании кроссовера столкнулся с интересной (для меня на данном этапе ) проблемой. Если, например, два родителя имеют хромосомы:
X1 = 3 4 2 1 5;
X2 = 5 2 1 4 5;
И если точка разрыва хромосомы пришлась так, что для формирования потомка берутся гены:
X1(1,2) и X2(3,4,5), то потомок будет выглядеть следующим образом:
Y = 3 4 1 4 5.
Как видим, в хромосоме потомка появляется дублирующий ген (со значением 4). Применительно к пути коммивояжера это некорректно, так как получается, что он дважды посетит город с номером 4, что несоответствует условиям задачи.

Я сделал так, что сейчас повторные гены (в слуае, если они есть, конечно же) заменяются так, чтобы в хромосоме потомка не было дублей. Таким образом, хромосома Y в данном примере будет выглядеть так:
Y = 3 4 1 2 5.

Тут у меня возникает вопрос. Так как я пока не храню гены в двоичном формате, а работаю сразу с реальными числами, то правильно ли делать так как делаю я (я имею в виду кроссовер)? И даже, если кодировать в бин, то все равно могут появляться дубли...

И еще вопрос. Как в таком случае реализовать мутацию? Я думаю, что достаточно просто менять местами два случайно выбранных гена в хромосоме потомка.

И вопрос третий. Я пока не очень понял следующий момент. Если, допустим, было 50 родителей, и после скрещивания каждой пары появляется ОДИН потомок, то получается, что очень быстро уменьшается объем популяций. В моем случае это выливается в то, что фитнесс-функция не успевает максимизироваться до приемлемого (по результатам опытов) значения. Так что сейчас я порождаю ДВУХ потомков, обеспечивая тем самым поддержание численности особей на уровне первоначальной популяции. Благодаря этому фитнесс-функция в конце всей эволюции у всех конечных особей получается примерно одинакова (различается в числах после запятой). А теперь вопрос: существуют ли какие-то критерии выбора количества потомков? Или какие-то правила?

Заранее спасибо всем за ответы!!!
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Ai Drew :: Прикладные Q&A ЕЯ системы Общения: NLP/NLSU/VoiceXML
Добавлено: 29 янв 15 4:29
2 user2358645:

Я не вижу практического смысла применения ГА в комми - с учётом того, что предоженное в 1987г приближенное решение совсем иным (градиентно-адаптивным) способом обеспечивало трудоемкость порядка N^1.6 (если кто не знает - Керниган-Лин 1973г требовал N^2.2).
Был ли с тех пор прогресс, и какой - я пока озвучивать не буду, пусть народ помучается (напоминаю - я именно про получение приближенного решения говорю, ну так и ГА тоже не гарантирует попадания в глоб.минимум).
[Ответ][Цитата]
kondrat
Сообщений: 4026
На: Ai Drew :: Прикладные Q&A ЕЯ системы Общения: NLP/NLSU/VoiceXML
Добавлено: 29 янв 15 12:35
Изменено: 29 янв 15 12:44
Цитата:
Автор: user2358645

Всем доброго времени суток!
Уже достаточно давно изучаю материалы по ГА, но написать свою реализацию решился только сейчас )))
Реализация написана на Матлабе.
В качестве задачи взял классическую задачу коммивояжера.

Начальные условия такие:
- сколько-то городов (задается);
- один коммивояжер;
- максимальная дистанция между двумя соседними городами (для генерации начальной популяции);
- размер эволюции (количество поколений);
- количество особей;
- коммивояжер каждый город может посетить только один раз;

Генная структура хромосомы такая: (далее все примеры будут для 5 городов)
X X X X X, где Х - номер города, например: 1 4 2 3 5. Таким образом, коммивояжер, выйдя и 1 города, в него же и вернется. Хромосомы генерируются с учетом условия однократного посещения каждого города, так что повторов в генах нет.

Сразу оговорюсь что пока решил гены не кодировать в двоичный формат.

Однако, при написании кроссовера столкнулся с интересной (для меня на данном этапе ) проблемой. Если, например, два родителя имеют хромосомы:
X1 = 3 4 2 1 5;
X2 = 5 2 1 4 5;
И если точка разрыва хромосомы пришлась так, что для формирования потомка берутся гены:
X1(1,2) и X2(3,4,5), то потомок будет выглядеть следующим образом:
Y = 3 4 1 4 5.
Как видим, в хромосоме потомка появляется дублирующий ген (со значением 4). Применительно к пути коммивояжера это некорректно, так как получается, что он дважды посетит город с номером 4, что несоответствует условиям задачи.

Я сделал так, что сейчас повторные гены (в слуае, если они есть, конечно же) заменяются так, чтобы в хромосоме потомка не было дублей. Таким образом, хромосома Y в данном примере будет выглядеть так:
Y = 3 4 1 2 5.

Тут у меня возникает вопрос. Так как я пока не храню гены в двоичном формате, а работаю сразу с реальными числами, то правильно ли делать так как делаю я (я имею в виду кроссовер)? И даже, если кодировать в бин, то все равно могут появляться дубли...

И еще вопрос. Как в таком случае реализовать мутацию? Я думаю, что достаточно просто менять местами два случайно выбранных гена в хромосоме потомка.

И вопрос третий. Я пока не очень понял следующий момент. Если, допустим, было 50 родителей, и после скрещивания каждой пары появляется ОДИН потомок, то получается, что очень быстро уменьшается объем популяций. В моем случае это выливается в то, что фитнесс-функция не успевает максимизироваться до приемлемого (по результатам опытов) значения. Так что сейчас я порождаю ДВУХ потомков, обеспечивая тем самым поддержание численности особей на уровне первоначальной популяции. Благодаря этому фитнесс-функция в конце всей эволюции у всех конечных особей получается примерно одинакова (различается в числах после запятой). А теперь вопрос: существуют ли какие-то критерии выбора количества потомков? Или какие-то правила?

Заранее спасибо всем за ответы!!!
С моей, дурацкой, точки зрения вы генерите все возможные перестановки в случайном порядке, да ещё и с повторами. Т.е. осуществляете полный поиск методом обезьян и печатной машинки. Примерно так ГА и работает. Точные ответы на ваши вопросы не знает никто (ИМХО).
[Ответ][Цитата]
kondrat
Сообщений: 4026
На: Ai Drew :: Прикладные Q&A ЕЯ системы Общения: NLP/NLSU/VoiceXML
Добавлено: 29 янв 15 12:41
Да и вообще публика решает похожие, но не такие задачи.
[Ответ][Цитата]
Вольфрамовый клaпaн
Сообщений: 13073
На: Ai Drew :: Прикладные Q&A ЕЯ системы Общения: NLP/NLSU/VoiceXML
Добавлено: 29 янв 15 12:42
Парни, я понимаю, ум, эрудиция (у Виктора), образования и всё такое.
Но просто для справки, это сообщение сделал скрипт, который берет случайное сообщение и добавляет в случайную тему.
Вот исходное его место ( http://www.gotai.net/forum/default.aspx?postid=5283 ),
но я не уверен, что автор с 2007 года до сих пор ждет ответа.
[Ответ][Цитата]
kondrat
Сообщений: 4026
На: Ai Drew :: Прикладные Q&A ЕЯ системы Общения: NLP/NLSU/VoiceXML
Добавлено: 29 янв 15 12:49
Да хрен с ним, с автором. Риман, вон, нагенерил вопросов на столетие.
[Ответ][Цитата]
Вольфрамовый клaпaн
Сообщений: 13073
На: Ai Drew :: Прикладные Q&A ЕЯ системы Общения: NLP/NLSU/VoiceXML
Добавлено: 29 янв 15 12:58
Цитата:
Автор: kondrat
Да хрен с ним, с автором. Риман, вон, нагенерил вопросов на столетие.

Да. Один дурак (я не о Римане сейчас) способен столько вопросов назадавать, что сто умников не ответят. А я последнюю неделю медитирую на глубокое обучение, поэтому ни один вопрос не кажется мне интересным.
[Ответ][Цитата]
 Стр.29 (29)1  ...  25  26  27  28  [29]<< < Пред.