назад Оглавление вперед


[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [ 31 ] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42]


31

случайное число оказывается меньше или равно вероятности мутации, то данный бит инвертируется. То есть, бит, бывший О у родителя, становится 1 у ребенка, и наоборот. Мутация помогает сохранить разнообразие в популяции. Вероятность мутации обычно должна быть невелика (= 0,001), иначе алгоритм вырождается в случайный поиск. Однако по мере приближения алгоритма к оптимальному варианту, мутация приобретает все большее значение, ибо кроссовер не может сохранить генетическое разнообразие в столь локализованном объеме {п + 1)-мерного пространства.

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

Для примера рассмотрим реализацию генетического алгоритма с целевой функцией вида:

Y= 1500-(Х-15)2

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

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

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

Первое поколение

Индив. №

Двоичн. X

Коэфф. Приспос.

01010

1475

0,4751

00000

1275

01101

1496

0,5249

Теперь путем случайного отбора по приспособленности определяются Родители 1 и 3 первого поколения для Индивидуума 1 второго поколения (заметьте, что Родитель 2 с приспособленностью О погиб и не передаст далее своих генетических свойств). Предположим, что случайный кроссовер происходит после четвертого бита. Поэтому, наследуя первые четыре бита от Индивидуума 1 и последний бит от Индивидуума 3 первого поколения. Индивидуум 1 во втором поколении принимает вид 01011.

Предположим, что Индивидууму 2 второго поколения выпадают те же родители; кроссовер происходит только после первого и третьего битов. То есть он наследует бит О от Индивидуума 1 первого поколения, биты 11 в качестве второго и третьего битов от третьего индивидуума первого поколения и два последних бита от первого индивидуума первого поколения. В результате этого генетический код второго индивидуума второго поколения оказывается равным OHIO.

Предположим далее, что в оба родителя третьего индивидуума второго поколения попадает Индивидуум 1. То есть третий индивидуум во втором поколении получает точно такой же генетический материал, как у первого индивидуума первого поколения, а именно 01010.

Второе Поколение

Индивидуум №

Двоичный X

И 14 10

01011 01110 01010



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

Второе Поколение

Индив. №

Двоичн. X

Коэфф. Присное.

01110

1500

0,5102

01110

1499

0,4898

01010

1475

Обратите внимание, насколько во втором поколении поднялось, или эволюционировало, среднее значение У.

Важные замечания

Нередко бывает полезно целиком перенести в следующее поколение генетический код самого сильного индивидуума. Выполнение этого условия наверняка сохранит хорощие множества рещений и благоприятно скажется на ускорении алгоритма. Кроме того, вы можете следовать агрессивной тактике поддержания генетического разнообразия путем увеличения параметров, используемых в качестве вероятностей кроссовера и мутации. Я прищел к выводу, что, приняв за вероятность кроссовера 0,2, а за вероятность мутации - 0,05, можно ускорить получение рещения, при условии, что код наиболее приспособленного индивидуума сохраняется при переходе от одного поколения к другому - это удерживает алгоритм от вырождения в случайный поиск.

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

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

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

Как только вы нашли оптимальный портфель, то есть нашли значения для f, разделите эти значения на наибольший проифыш по соответствующим сценарным спектрам и определите /$ для этого конкретного сценарного спекфа. Это именно то, что мы делали в первой главе для того, чтобы определить, сколькими контрактами торговать в оптимальном портфеле.



Управление капиталом для профессионалов

Распределение активов является основной задачей тех, кто управляет капиталом. Результаты недавних исследований 82 крупных пенсионных планов* за десятилетний период, полученные Бринсо-ном, Сингером и Бибовером, свидетельствуют, что 91,5% прибыли было получено благодаря политике распределения капитала. Активные инвестиционные решения, принимаемые спонсорами и менеджерами пенсионных планов как по избирательности, так и таймингу внесли очень малый вклад в эффективность, в то время как политика распределения капитала оказала на нее абсолютно доминирующее влияние.

Почему же тогда инвестиционной политике столь многих инвестиционных программ свойственна произвольность, а не мате-

* Схема инвестирования, при которой работодатель делает регулярные взносы в пенсионный фонд. - Прим. пер.

[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [ 31 ] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42]