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

 
У меня популяция фиксированного размера. Но у участников может плавать. Но учитывая, что исполняемый скрипт один для всех, нужно подумать, как обеспечить одинаковое подключение алгоритмов. У меня уже есть мысли на этот счёт, проблем нет. 
 
Так и не понятно:  1000 эпох или 1000 вызовов ФФ?  Если эпох, то как это будет контролироваться?
 
Alexey Navoykov:
Так и не понятно:  1000 эпох или 1000 вызовов ФФ?  Если эпох, то как это будет контролироваться?
до 1000 эпох. Фф может вызываться сколько угодно, ведь размер популяции не ограничиваем. 
 
Andrey Dik:
до 1000 эпох. Фф может вызываться сколько угодно, ведь размер популяции не ограничиваем. 

Нет! Так не честно ))

В моем алгоритме нет популяций.

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

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

Эти два параметра противоречат друг другу (как и в жизни), "или вчера по пять но очень большие, или сегодня но по три" ))

joo предлагает вполне конкретный вариант оценки, с этим полностью согласен, единственное что считать. 

p.s. главное расставить приоритеты, кому время важнее, кому результат, но правила устанавливает joo, поэтому готов принять и подстроиться под любые правила.  

 

Sergey Chalyshev:

Нет! Так не честно ))

В моем алгоритме нет популяций.

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

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

Эти два параметра противоречат друг другу (как и в жизни), "или вчера по пять но очень большие, или сегодня но по три" ))

joo предлагает вполне конкретный вариант оценки, с этим полностью согласен, единственное что считать. 

p.s. главное расставить приоритеты, кому время важнее, кому результат, но правила устанавливает joo, поэтому готов принять и подстроиться под любые правила.   

Что конкретно он предлагает?

Сейчас разберёмся. Алгоритмы разные и нужно найти консенсус при требовании одинаковых условий проведения тестов. 

 
Andrey Dik:

Какой Адрей

исправил
 

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

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

Итак, что мы имеем...

Количество эпох - не более 1000 (возможен останов на более ранних эпохах по желанию алгоритма).

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

 
Andrey Dik:

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

Ограничить по времени. Заложить в исполнимый (публичный) скрипт. 
 
Igor Volodin:
Ограничить по времени. Заложить в исполнимый (публичный) скрипт. 

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

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

 
Andrey Dik:

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

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

Итак, что мы имеем...

Количество эпох - не более 1000 (возможен останов на более ранних эпохах по желанию алгоритма).

Размер популяции (если популяция есть) ничем не ограничен и не имеет значения, так как будут подсчитываться непосредственно обращения к ФФ

Да, думаю так будет честнее.

 

Ты же сам предлагал такой вариант, в нем о эпохах ничего не упоминал: 

 Пример приблизительного кода для чемпионата который сможет участвовать (никто не будет знать о том, какой алгоритм у участника):

void Search(double &array[])
{
  for(int i=0; i<ArraySize(array); i++)
    array[MathRand()];
}

Считать количество обращений к ФФ нормально, тогда можно увеличить количество итераций например до 3000-5000. 

Есть еще вариант, не ограничивать количество итераций, а принудительно завершать работу алгоритма через 5 - 10 минут.

Но как говорил ранее, готов подстроиться под любые условия.

Пиши пример, походу разберемся, постараюсь тоже сделать пример со своей ФФ.

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