Генетические алгоритмы. Вопросы экспертам. - страница 3

 

Хорошо, давайте тогда подождем, когда у меня будет время написать 3х мерный или универсальный алгоритм ДЭ. Сейчас времени мало - примерчик 2х мерный я сделал для решения практической задачи. Еще есть к вам такой вопрос: вы рассматривали ситуации, когда ГА оперирует результатами других ГА(вложенные расчеты). Вопрос связан с тем, что у меня проблема - при увеличении области опре деления главного расчета, увеличиваются области определения вложенных расчетов их количество, и так далее внутрь растет дерево. Время вычислений растет то ли по экспоненте, толи по геометрической прогрессии, если увеличивать число данных. Т.е. Применить ГА сразу ко всем переменным я не могу, т.к. они зависимы(сначала во вложенном расчете подсчитать надо). Поэтому вопрос - При использовании вложенных ГА сходимость главного верхнего насколько плавает? Удается ли лостиичь ускорения счета с сохранением приемлемой точности? И вообще, вы такое пробовали?

И еще такой вопрос. Есть ли какое-то минимально - необходимое количество вычислений, как вы ее называете ФФ? Вопрос к тому, что если расчет затруднительно выполнить, скажем, для 100 точек, то ГА просто не хватит статистики, и использовать его не получится?

 
скажите, стоит ли это изучения?
 
ZZZEROXXX:
скажите, стоит ли это изучения?
Если вы будете понимать, что делает ГА, то сможете понять, необходим ли он в какой-то конкретной вашей задаче. Т.е. ответить можете только вы сами, и только после того, как изучите. О решамых ГА задачах можно почитать в Вики, немного есть на первой странице ветки.
 
-Aleksey-:

1) Хорошо, давайте тогда подождем, когда у меня будет время написать 3х мерный или универсальный алгоритм ДЭ. Сейчас времени мало - примерчик 2х мерный я сделал для решения практической задачи.

2) Еще есть к вам такой вопрос: вы рассматривали ситуации, когда ГА оперирует результатами других ГА(вложенные расчеты). Вопрос связан с тем, что у меня проблема - при увеличении области опре деления главного расчета, увеличиваются области определения вложенных расчетов их количество, и так далее внутрь растет дерево. Время вычислений растет то ли по экспоненте, толи по геометрической прогрессии, если увеличивать число данных. Т.е. Применить ГА сразу ко всем переменным я не могу, т.к. они зависимы(сначала во вложенном расчете подсчитать надо). Поэтому вопрос - При использовании вложенных ГА сходимость главного верхнего насколько плавает? Удается ли лостиичь ускорения счета с сохранением приемлемой точности? И вообще, вы такое пробовали?

3) И еще такой вопрос. Есть ли какое-то минимально - необходимое количество вычислений, как вы ее называете ФФ? Вопрос к тому, что если расчет затруднительно выполнить, скажем, для 100 точек, то ГА просто не хватит статистики, и использовать его не получится?

1) Первые два теста можете провести и на своей текущей реализации алгоритма для двух аргументов функции.

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

3) Я ориентируюсь на 20000-30000 запусков ФФ где то для оптимизации 2000-3000 переменных. А 2-3 переменные до 1000 запусков ФФ. Где то так.

 
joo:

1) Первые два теста можете провести и на своей текущей реализации алгоритма для двух аргументов функции.

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

3) Я ориентируюсь на 20000-30000 запусков ФФ где то для оптимизации 2000-3000 переменных. А 2-3 переменные до 1000 запусков ФФ. Где то так.


Очень интересно, спасибо. По первому пункту, я наверно, не совсем понятно написал. Сейчас сделан алгоритм для функции с одним аргументом(ахгумент один, функция 2-у мерная(на плоскости)), а у вас на картинках 3-х мерные функции. Если только плоскостью порезать, и применить для сечения 2-у мерного - нужна формула. По второму пункту понятно, видимо, вы не применяете ГА(вложенный) еще и внутри расчета ФФ. По 3-му пункту: а для одной переменной примерно не знаете?
 
-Aleksey-:

1) Очень интересно, спасибо. По первому пункту, я наверно, не совсем понятно написал. Сейчас сделан алгоритм для функции с одним аргументом(ахгумент один, функция 2-у мерная(на плоскости)), а у вас на картинках 3-х мерные функции. Если только плоскостью порезать, и применить для сечения 2-у мерного - нужна формула.

2) По второму пункту понятно, видимо, вы не применяете ГА(вложенный) еще и внутри расчета ФФ.

3) По 3-му пункту: а для одной переменной примерно не знаете?

1) каждый из двух первых тестов можно разделить и использовать для оптимизации одного аргумента.

2) Внутри расчета ФФ не может быть ГА по определению, или же Вы имеете ввиду что то другое.

3) Не понял, что значит "знаете?"?. Не знаю и не могу знать. Это же зависит только от желаний и потребностей исследователя. Можно и за 2 захода найти решение, и за 1000, и даже за 1. Вопрос только с какой точностью. Ну для одной переменной приемлемо, если до 500 запусков ФФ. Если задача не решается при таких условиях, значит алгоритм не достаточно хорош, либо не подходит для решения таких задач и стоит либо доработать алгоритм, либо использовать другие способы решения такой задачи.

 

Попробую объяснить по пункту 2 своими словам. Надо найти максимум функции y(x).

1) Пусть есть функция(зависимость) y(x);

2) Пусть x представляет собой функцию(зависимость) x(k1, max(k2));

4) Пусть k2 представляет собой функцию(зависимость) k2(d1, max(d2));

5) Пусть d2 представляет собой функцию(зависимость) d2(f1, max(f2));

6) Пусть f2 представляет собой функцию(зависимость) f2(e1, e2);

Имеем четыре вложенных ГА: 1-й нижний ищет max(f2)), второй ищет max(d2)), третий ищет max(k2)), и наконец верхний последний ищет max(y(x)).

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


По картинкам догадался - надо взять x2, например, константой, соответствующей сложному участку.

 
-Aleksey-:
Если вы будете понимать, что делает ГА, то сможете понять, необходим ли он в какой-то конкретной вашей задаче. Т.е. ответить можете только вы сами, и только после того, как изучите. О решамых ГА задачах можно почитать в Вики, немного есть на первой странице ветки.

я канечно имею ввиду применить его к форекс
 
-Aleksey-:

Попробую объяснить по пункту 2 своими словам. Надо найти максимум функции y(x).

1) Пусть есть функция(зависимость) y(x);

2) Пусть x представляет собой функцию(зависимость) x(k1, max(k2));

4) Пусть k2 представляет собой функцию(зависимость) k2(d1, max(d2));

5) Пусть d2 представляет собой функцию(зависимость) d2(f1, max(f2));

6) Пусть f2 представляет собой функцию(зависимость) f2(e1, e2);

Имеем четыре вложенных ГА: 1-й нижний ищет max(f2)), второй ищет max(d2)), третий ищет max(k2)), и наконец верхний последний ищет max(y(x)).

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


По картинкам догадался - надо взять x2, например, константой, соответствующей сложному участку.

Ну на до же, какие извращения! И ради чего такие буги-вуги?
 
joo:
Ну на до же, какие извращения! И ради чего такие буги-вуги?

При чем здесь извращения? Я просто описал задачу. А описал для того, чтобы был более понятен вопрос, выше вам заданный, насколько такая схема устойчиво сходится к решению, если вам приходилось такое исследовать. Т.е. попытаться сократить время вычислений внедрив ГА на каждом этапе.
Причина обращения: