Проверяемый текст
Имануилов, Павел Алексеевич; Совершенствование способов финансирования инновационной деятельности машиностроительных предприятий ОПК (Диссертация к.э.н., июнь 2004)
[стр. 84]

3.5 Р еал и зац и я и ап р о б а ц и я а л го р и тм о в Для реализации генетических алгоритмов и алгоритмов схемы МИВЕР необходимо уметь генерировать значения дискретных случайных величин распределённых по закону, отличному от равномерного.
Закон распределения, в нашем случае, это вектор вероятностей р а = ( л .
л .
—.
л ) , и вектор соответствующих значений дискретной случайной величины а а = (а],а 2,...,ап) , где pi —вероятность того, что случайная величина примет значение ah п / .
P i = 1 условие нормировки вероятностей.
Запишем алгоритм ы разыгрывания значения дискретной случайной величины а, принимающей значения а,,/ = 1,п с вероятностями p i9i = l9n.
1.
Инициализация к~1, S = 0;1 разыгрывается в соответствии с непрерывным равномерным законом распределкния.
к 2.
Если $ то a-aii, к пункту 4.
ы 3.
Иначе к=к+19к пункту 2.
4.
Выход.
Для реализации алгоритмов была выбрана среда быстрой разработки приложений Borland C++ Builder 6.0 по следующим соображениям: поддержка средой класса векторов булевых переменных, что значительно упрощает работу с булевыми переменными и обеспечивает корректное их представление с точки зрения предметной области; 8 4
[стр. 131]

„*+1 Pi 0, если Xj = 1с X k, j = I; 1, если х; = 1c X k,j ф I; —.если x.
=\n J 8.
k = k + l, H=1 и если e 2, иначе за ре ш е н и е задачи приним ается вектор Х*~‘.
Таким образом, работа алгоритма сводится к последовательной замене единичной компоненты найденного решения (вектора X*) на нулевую, при этом случайным образом выбранной нулевой компоненте присваивается единичное значение (вектор Х*+/).
Целенаправленность в работе алгоритма получена за счет возврата к предыдущему вектору (X*) при неудачной замене компонент.
Для реализации алгоритмов может быть взят любой из современных языков программирования.
От того, какой именно алгоритмический язык будет выбран, во многом зависит эффективность программной реализации.
В частности представление кода значительно влияет на скорость обработки данных, их представление в памяти машины, интерфейс работы с памятью и т.д.
От структуры и синтаксиса языка зависит то, насколько “близко” и точно программа будет отражать алгоритм [86].
Для разработки был выбрана среда быстрой разработки приложений Borland C++ Builder 6.0 по следующим соображениям: поддержка средой класса векторов булевых переменных, что значительно упрощает работу с булевыми переменными и обеспечивает корректное их представление с точки зрения предметной области; несмотря на то, что C++ объектно-ориентированный язык низкого уровня, его структурность поддерживает написание программ “близко к тексту” исходного алгоритма; достаточно легкая интегрируемость написанных в данной среде приложений с существующими форматами баз данных.
128

[Back]