Есть ли у Вас собственные разработки эволюционных алгоритмов? - страница 12

 
Хорошие новости. Уважаемый Ренат выделил 3000 долларов в призовой фонд! 
 
Andrey Dik:
Хорошие новости. Уважаемый Ренат выделил 3000 долларов в призовой фонд! 
Сейчас набегут участники ;)
 
Andrey Dik:
37 я загадал. Да, то что Вы делали - это эволюционный алгоритм. 

А где же эволюция? Он каким был в самом начале, таким и остался.

Вот если бы правила игры менялись по ходу, а алгоритм под них подстраивался — то да.

 
Реter Konow:

Действительно, для того чтобы угадать число которое Вы загадали, не требуется перебирать все числа от 0 до 100.

Устанавливаем исходные границы диапазона  чисел, (0 и 100), потом их сужаем, параллельно уменьшая шаг.

Сначала я говорю 0, потом 100. Если ноль горячее, я устанавливаю верхнюю границу на 50. Если 100 горячее, то нижнюю границу на 50.

Допустим горячее ноль.  Далее говорю 50 и снова 0. Если горячее 50, говорю 25 и снова 50. Если горячее 25, говорю 25 и 37. Если горячее 37, то от 31 делаю перебор чисел до 37 - ми (можно и дальше сдвигать границы, но как то устал).

Неужели способ решения этой задачи и есть эволюционный алгоритм?

Один из элементов. С одним параметром не показательно.

Допустим, хотя бы 4-ре параметра: a, b, c ,d (четыре гена). Создаем популяцию, например 10 особей. Случайным образом генерируем значения параметров. Дальше проверяем, какие из особей лучше всего подходят для решения поставленной задаче. Совсем плохие особи бракуются, для них заново генерируются случайные значения. Удачные особи делятся на части и из них создаются новые комбинации: ab от одной особи, bс от другой (и т.п.). Собственно это является основным элементом эволюционного алгоритма. Можно взять часть генов от удачной особи, а часть случайно сгенерировать - это мутация. Часть генов можно еще тонко подстроить, как вы написали.    

Как в тестере, там заранее задан шаг, и там ненужно подстройку делать, а если найти экстремум функции, то посложнее, надо делать подстройку, сокращать шаг. 

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

 
Vladimir Suschenko:
Не хочется спорить с Википедией, но я бы употребил другой термин - Селекционные алгоритмы, так как по сути речь идёт об искусственном отборе. Искусственный отбор - это  не совсем эволюция, это селекция, а эволюция - естественный отбор.
Если исходить из предлагаемой мной корректировки терминологии, то да, я использую селекционные алгоритмы.
По вопросу участия в чемпионате - практический смысл такого задания для меня не очевиден. 

Тоже не годится.

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

Я бы предложил термин Иерархические алгоритнмы оптимизации или Комплексные алгоритнмы оптимизации.

 
Youri Tarshecki:

Тоже не годится.

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

Я бы предложил термин Иерархические алгоритнмы оптимизации или Комплексные алгоритнмы оптимизации.

Как ни называйте, всё это будет лишь частным случаем Эволюционных алгоритмов.
 
Andrey Khatimlianskii:

А где же эволюция? Он каким был в самом начале, таким и остался.

Вот если бы правила игры менялись по ходу, а алгоритм под них подстраивался — то да.

Кто "он"? Просто повезло исследователю, что входные значения (числа которые назывались) совпадали с ответами (значениями фф). Но я ничего не говорил о функции, и это могло быть не так. К примеру, я мог бы при некоторых попытках отвечать "нет ответа" когда в функции попадалась бы дырка или "ответ такой же" когда попадался плоский участок функции.... И для решения задачи пришлось бы постоянно менять или модифицировать стратегию поиска. Это и есть эволюционный алгоритм, а задача с числами от 0 до 100 лишь простейший пример подобных задач и ЭА будут лучше (практичнее) для них (задач), чем полный перебор. 
 
Andrey Dik:

Ок. Я дам своё определение эволюционных алгоритмов:

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

Один из примеров подобных задач я уже приводил - пример со слепцом.

Другой пример, природный, реально решаемый грибами - поиск пищи.

Животные часто прибегают к подобным схемам решения своих задач: пчелы, муравьи.

Любой процесс финансового управления по сути своей эволюционный.

Эволюционные задачи решаются везде, повсюду и всеми. Животными, людьми и растениями. Планетами, галактиками. Задачу кто то поставил, задача есть у каждого. Но никто не знает условий и целей своей задачи. В итоге, муравей, человек, планета или звезда - совершенно не важно, кто выживет - тот решил свою задачу. История показывает, что каннибализм зачастую не лучшее решение для вида (если кто подумал о том, что выживает сильнейший). Никогда никому не известно кто выживет, сильнейший или умнейший, поэтому у каждого вида всегда есть прозапас и такие и такие. 

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

Это и есть  принципиальное отличие эволюции от оптимизации.

 

То же самое со вселенной.

Мы не наблюдаем конкуренции вселенных, мы не видим наследования признаков вселенных и передачи полезных признаков вселенных от родителей к детям. Просто потому, что мы не наблюдаем ПОКОЛЕНИЙ вселенных и понятие "полезный признак вселенной" -бессмысленно.

Более того, даже в рамках одной вселенной мы видим, что бОльшая ее часть состоит из  ВЗАИМО НЕ СВЯЗАННЫХ областей. Все ее наблюдаемые макроструктуры предельно однородны, и не взаимозависимы, с одинаковыми законами физики, что говорит об общем происхождении, но делает невозможной эволюцию между  несвязанными ее частями.

Термин "эволюция вселенной"  возник для того, чтобы подчеркнуть длительность (14 МЛРД) процесса. Но все это время вселенная делала то, что не могла не делать - т.е. проходила стадии (фазовые переходы, рекомбинации)заданные начальными условиями -константами , вытекающими из специфичных  случайных флуктуаций планковской пены. Т.е. после эпохи десять в минус двадцатьседьмой секунды (а, скорее всего, и до) она перестала быть объектом выбора для условий среды, а, следовательно, и эволюции.

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

Эволюция начинается только тогда, когда возникает ОБРАТНАЯ СВЯЗЬ частей материи.

Если ваш код не имеет такой обратной связи, т.е. от изменения результата своей работы он не перестраивает сам себя - то эволюции нет.

 

Просто балдею от этой ветки.

 

Где доказательство того, что эволюционные алгоритмы применимы к случайным процессам?

 

Случайные процессы не порождают конкретных цифр - они порождают цифры внутри доверительных интервалов. Какой оптимум Вы собираетесь искать? Прыщ среди убытка? или ровное прибыльное плато?

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

 

 

Выше я привел корректное применение ГА в трейдинге. Ищем некое оптимальное подмножество предикторов. При исполнении алгоритма за счет ресемплирования получаем некое множество результатов, которые затем методами статистики сводятся к конкретным цифрам внутри доверительных интервалов. 

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

 

ПС. Всякие ссылки на тестер некорректны. Применение ГА в тестере вполне обосновано, необходимо, особенно если можешь оценить результаты тестирования, к которым необходимо относиться крайне осторожно.  

Причина обращения: