roboforum.ru

Технический форум по робототехнике.


Генетическое Программирование (GP)

Автомат, адаптивный автомат ... разум

Re: Генетическое Программирование (GP)

Сообщение =DeaD= » 03 фев 2011, 01:15

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

Кому обязан? Вам?

Маг писал(а):У человека те же "примитивы": руки и ноги

Вы считаете, что в рамках одной особи человек использует ГА?

Маг писал(а):Все дело в последовательности их применения. Правильна последовательность применения примитивов (метод) - ключ к решению любой сложной задачи.

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

Маг писал(а):Я лично не хочу

А вас никто и не заставляет.

Добавлено спустя 5 минут 7 секунд:
PS: Маг, у вас какой уровень образования - где сейчас учитесь или что заканчивали? Ну чтобы на соотв. уровне примеры приводить.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Генетическое Программирование (GP)

Сообщение Маг » 03 фев 2011, 03:16

=DeaD= писал(а):Кому обязан? Вам?

Своему названию. Вроде же мысль вытекала из контекста.

Маг писал(а):Вы считаете, что в рамках одной особи человек использует ГА?

Я бы сказал иначе: один эволюционный принцип используется и в мозгу, и в генах (в рамках вида).

Маг писал(а):Вы слишком вольно оперируете квантором всеобщности. Существуют задачи принципиально не решаемые в рамках ограничений некоторой конкретной вычислительной системы.

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

Маг писал(а):А вас никто и не заставляет.

Рад слышать. Не люблю насилия над людьми :) Тем более - над собой.

Маг писал(а):PS: Маг, у вас какой уровень образования - где сейчас учитесь или что заканчивали? Ну чтобы на соотв. уровне примеры приводить.

Я ничего не заканчивал. Работаю в компании, занимающейся разработкой средств компьютерной безопасности. Язык Си. Направление - разработка и сопровождение интерпретатора специального языка для анализа поведения вредоносного ПО. Зарплата - хорошая :)
Маг
 
Сообщения: 5
Зарегистрирован: 01 фев 2011, 02:13

Re: Генетическое Программирование (GP)

Сообщение =DeaD= » 03 фев 2011, 08:37

Маг писал(а):Своему названию. Вроде же мысль вытекала из контекста.

Это вы так решили.

Маг писал(а):Я бы сказал иначе: один эволюционный принцип используется и в мозгу, и в генах (в рамках вида).

Не понял смысла. При чем тут в рамках вида? В рамках вида ноги-руки не примитив.

Маг писал(а):Давайте говорить про систему, не имеющих таких ограничений. Комп, подключенный через порты к соответствующим детекторам и манипуляторам - может в принципе все. Зачем сводить задачу к каким-то ущербным "вычислительным системам", высосанными из пальца ?

Это не так. Не бывает системы не имеющей ограничений. Комп подключенный через порты к датчикам и манипуляторам всё еще имеет ограничения даже по вычислительным свойствам.

Такие слова, как вычислительная сложность алгоритмов, NP-полные задачи и т.п. - о чем-то говорят?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Генетическое Программирование (GP)

Сообщение Duhas » 03 фев 2011, 08:47

Маг, вырастить систему, похожую на таракана, имхо, будет куда дольше/сложнее, чем расковырять таракана и закодить его аналог, будь то НС или алгоритмический подход...

растить алгоритмы по асм инструкциям ? да вы, имхо, два байта складывать учиться будете неделю...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Генетическое Программирование (GP)

Сообщение Маг » 03 фев 2011, 23:56

=DeaD= писал(а):Не понял смысла. При чем тут в рамках вида? В рамках вида ноги-руки не примитив.

Большое спасибо за конструктив! Желаю удачи ! :)
Маг
 
Сообщения: 5
Зарегистрирован: 01 фев 2011, 02:13

Re: Генетическое Программирование (GP)

Сообщение bratchanin » 27 фев 2011, 20:55

Не стал полностью читать все (сорри за это). Чисто мое понимание генома с точки зрения программирования:
как известно (из СМИ конечно, до реальных данных нам смертным не добраться) ген это некий, приобретенный, код, или другими словами кусочек программы (на сегодняшний день компьютер смог насчитать 30000 генов в геноме человека). ДНК - содержит гены, другими словами ДНК состоит из кусочков микропрограмм - которые задают характеристики для определенной группы клеток. Геном не отвечает напрямую за обучаемость человека (есть масса опытов это подтверждающих), геном всего лишь создает платформу для накопления информации и ее взаимодействие, от того на сколько эта платформа хороша зависит скорость обучаемости.
Есть замечательный пример мутации гена, который явно показывает что он (ген) ни как не учавствует напрямую с интелектуальной составляющей человека. Сам пример заключается в том что в ДНК имплантируется измененный ген, который влияет в дальнейшем на развитие мозговых клеток. В ходе эксперимента взяты две мыши, после того как они достигли определенного возраста их начали испытывать. И выяснили что обе мыши проходили лабиринт за одинаковое время (в среднем конечно), но у той мышки у которой был изменен ген были отклонения касательно взаимодействия головного мозга и спинного (ну то есть такие изменения произошли), это проявлялось в том что переодически у мыши отказывала задняя лапка, тем не мене мышь легко запоминала и одекватно реагировала на сэнсорику.

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

Либо, переходя на более высокий уровень в этой перамиде, такое программирование должно представлять собой некий банк микропрограмм. Например имеем простейшую программу (например маргать светодиодом) как базовый навык, для ее выполнения должно произойти какое-то условие, то есть должна родиться идея либо должен быть активирован сенсор. Идею брать не будем пока, это оч сложно, возьмем активацию сенсора. Сэнсор - кнопка, действие - моргание светиком, ну а за интелект будем считать программку. предположим мы нажали кнопочку, замаргал светодиод. ВОТ ТУТ И НАЧИНАЕТСЯ, по сути бот должен произвести анализ выполненных действий (предположим что моргание это некое выражение удовольствия, как если бы вас потрогала приятная девушка))), должна произойти запись ощущений, ... светодиод помаргал и затратил количество энергии от батареи но зато выполнилась программа и ее опять кто то активирует. Получилось уже, что должно быть три программы одна отвечает за действие (моргание), вторая - отвечает за заряд батареи и наконец третья которая должна сопоставить урон и потери от того что произошло с тем что было преобретено. Кажется все очевидно, но нет ведь если он не помаргает то вы просто выкинете то что должно маргать. Отсюда следует что должны произойти копирование с изменениями, то есть новая програмка которая бы меньше маргала например. ОП и у нас есть второй вариант при котором уже мы можем сказать что данное устройство жадное или вредное тут как хотите.
Мое ИМХО
bratchanin
 
Сообщения: 22
Зарегистрирован: 27 фев 2011, 16:30
Откуда: Красноярск
Skype: bratchanin3
ФИО: Корнилов Кирилл Валерьевич

Re: Генетическое Программирование (GP)

Сообщение AndreiSk » 28 фев 2011, 00:06

Написали много, но важного так и нет.
Что/кто будет отсеивать вредные "микропрограммы"?

В природе это делает эволюция, причем на N особях в течении M миллионов лет.
Вы откуда столько ресурсов возьмете?
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: Генетическое Программирование (GP)

Сообщение bratchanin » 28 фев 2011, 10:46

Я и не пытаюсь донести важное, и прекрасно понимаю что на это нужно уйма ресурсов. Я вам привел вполне одекватный пример возможного развития сей ситуации, так как мы все даже в корне не понимаем что из себя представляет генетическое программирование - САМО ПОНЯТИЕ ОПРЕДЕЛИТЕ, ЕГО ЛОГИКУ, ЕГО ФИЛОСОФИЮ.
Генетическое - значит самый базовый уровень, изначально заложенный и способный изменяться в ходе эволюции или других факторов. Это точно так же как если бы мы писали программы чередуя последовательности 10101011\11001010\01010111\11110090 - вот например предположим это заложено базово, произошло что то и последовательность изменилась 11110090\10101011\11001010\01010111 но тут я думаю должно не просто меняться но и замещаться, или достраиваться и тд.

Добавлено спустя 1 час 31 минуту 4 секунды:
По сути в википедии практически то же самое что и я написал, только более читабельно.

Добавлено спустя 2 минуты 37 секунд:
Из определения, предложенного в Wiki, так же ясно что генетическое программирование не может учавствовать в "действиях" напрямую, это скорее программирование алгаритма генерации программ которые и отвечают за то или иное действие.

Добавлено спустя 2 часа 20 минут:
Я вот даже некий пример придумал, вполне на мой взгляд осуществимый.
У нас есть бот, который ездит вперед и назад, только так. Он имеет измеритель расстояния, и известно что за один оборот колеса он проезжает 10см и расстояние от бампера до оси колеса допустим 4 см (все примерно). Задача бота доехать до стены, расположенной впереди него, на максимально близкое расстояние и не удариться. У бота есть мозг в которую зашита программа выполняющая вращение колес N раз. Следовательно нам нужно получить количество N.
Итак получаем от дальномера расстояние в 150см. По сути можно просто взять и решить эту задачу обозначив формулу N*(10+4)=150 как 150/(10+4)=N в теле программы выполняющей вращение колес, (но тем самым мы ограничим возможности бота). Отсюда идет решение написать "ген" который будет выполнять расчет этого самого N и изменять свой ход вычисления до появления наиболее правильного решения. Вы можете сказать, какое еще наиболее правильное решение, а решение будет правильным при том условии что бот не каснется стены, а значит решением формулы будет не ~10,7 а примерно в промежутке от 9 до 10,6. Так вот программа "ген" не решает задачу прямым математическим способом, он решает ее вариантами, т.е. берет набор чисел и сравнивает равновесность сторон формулы например, он взял числа 21 и 50 сравнивает их на предмет выполнения формулы, и получает что 21 близко к истине. Затем это число 21 передается программе исполнителю, бот врезается в стену. Отъезжает на это же количество оборотов назад. И теперь по понятным причинам программа "ген" берет перебор чисел до 21, например 8 и 12. Числа оба близки, и тут возможны два варианта, если выбрано число 12 то он повторит действия по тому же принципу что и с числом 21, тут все понятно. Другое дело с числом 8, бот подъедет на 8 оборотов и измерив расстояние поймет что расстояние не равно близким к нулю и произведет повторные вычисления. Что будет дальше с геном можно просчитать по принципу кроссовера, в итоге получится программка ген выполняющая перебор чисел до значения 10,7 (конкретно для задачи о не сталкновении и максимальном приближении), которая в дальнейшем так же будет избирать максимально близкие значения .... лучше не доехать чем столкнуться.
bratchanin
 
Сообщения: 22
Зарегистрирован: 27 фев 2011, 16:30
Откуда: Красноярск
Skype: bratchanin3
ФИО: Корнилов Кирилл Валерьевич

Re: Генетическое Программирование (GP)

Сообщение AndreiSk » 28 фев 2011, 15:09

bratchanin писал(а):Я и не пытаюсь донести важное, и прекрасно понимаю что на это нужно уйма ресурсов. Я вам привел вполне одекватный пример возможного развития сей ситуации, так как мы все даже в корне не понимаем что из себя представляет генетическое программирование - САМО ПОНЯТИЕ ОПРЕДЕЛИТЕ, ЕГО ЛОГИКУ, ЕГО ФИЛОСОФИЮ.

А так же цвет, возраст, стоимость и фактуру! Во бред-то.
ГП это матаппарат, хорошо понятный и выверенный.
Под него написан вагон и тележка библиотек.
Вот "мы" все в корне понимаем, что такое ГП.
А вам наверное надо было написать: "я даже в корне не понимаем что из себя представляет генетическое программирование".. это в библиотеку и шуршать-
не перешуршать :ROFL:

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

Это не базовый, как вы выражаетесь, это алгоритм, использующий
селекцию, похожую на эволюционный отбор, и имитирует работу с генами.

В ваших умозрительных примерах потеряно одно: ГП требует наличия м
ногих особей (сотни, тысячи, десятки тысяч). В реале это неприменимо,
в реале у вас будет 1, ну 10 роботов, которым потребуется миллион
итераций чтобы что то получилось.
Моторы сдохнут быстрее, чем у вас что то получится.

А с одной особью в ГП нет никакого смысла,
есть и другие, менее требовательные алгоритмы (метод ветвей и
границ, динамическое программирование и другое).
Не идеализируйте ГП и не придавайте ему мистических свойств,
всего лишь обычный алгоритм перебора, пусть и сложный для новичка ;)
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: Генетическое Программирование (GP)

Сообщение =DeaD= » 28 фев 2011, 15:11

Это разновидность рандомного перебора с отсечением :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Генетическое Программирование (GP)

Сообщение bratchanin » 28 фев 2011, 19:38

ну чтож так и быть не понимаю.)))

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

Добавлено спустя 5 минут 6 секунд:
В генетическом программировании особи из популяции представляют собой программы, а не материальные механизмы. Удобно представлять эти программы в виде деревьев, где функции представлены внутренними узлами, к которым в качестве входных параметров присоединены поддеревья. Листьями такого дерева будут константы, входные параметры задачи или директивные команды программы

Добавлено спустя 11 минут 14 секунд:
выживаемость робота как особи зависит от того на сколько выживаема особь гена в его программе. и соответственно времени. так как идет рандомный перебор то случай наискорейшего решения задачи скорее вероятность, чем реальное существование в рамках пространства где присутстввуют эволюционирующие особи. Вы наверное не видели величайшего опыта по ГП, где в эксперименте участвуют 100 ботов, задачей которых было двигаться вперед и назад (простые шасси на двух моторах с возможностью подруливания) без столкновения но на максимум приближения. В ходе опыта все сто ботов за 3 часа нашли решение, двигаться друг за другом вокруг некой точки. Задача была полностью выполнена и боты продолжали движение пока в конце концов батареи не начали разряжаться. один выпав из строя разрушил идеальное условие и они опять начали искать решение. Этот опыт был много раз транслирован по СМИ как новый тип или вид алгаритма который затем и получил название ГА из него стало вытикать ГП.

Добавлено спустя 3 минуты 16 секунд:
ГП это средство реализации ГА. и это факт есть множество трудов описывающих как ГА отдельно так и ГП отдельно. А вы уперлись сразу в верхушку айзберга, и говорите о физической особи. дайте задачу двум ботам убить друг друга, один из них победит и что ... теперь значит что он эволюционировал. не надо путать элементарное.
bratchanin
 
Сообщения: 22
Зарегистрирован: 27 фев 2011, 16:30
Откуда: Красноярск
Skype: bratchanin3
ФИО: Корнилов Кирилл Валерьевич

Пред.

Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 5