Метод поиска автоматически определяемых функций в алгоритме генетического программирования

Автор: Егоров Артем Сергеевич, Ефимов Сергей Николаевич

Журнал: Сибирский аэрокосмический журнал @vestnik-sibsau

Рубрика: Математика, механика, информатика

Статья в выпуске: 1 (14), 2007 года.

Бесплатный доступ

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

Короткий адрес: https://sciup.org/148175464

IDR: 148175464

Текст научной статьи Метод поиска автоматически определяемых функций в алгоритме генетического программирования

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

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

Существуют различные подходы к построению математических моделей. Непараметрические и нейросетевые модели представляют процедуру вычисления выходных характеристик объекта по имеющимся входным характеристикам. Недостаток этих подходов состоит в том, что получаемая модель не наглядна, объективные связи и закономерности скрыты, в связи с чем такая модель мало пригодна для исследования объекта. Регрессионная модель связывает входные и выходные величины формулой, анализ которой позволяет находить объективные закономерности, присущие исследуемому объекту, и связи между ее характеристиками. Кроме того, полученную формулу можно упростить или уточнить. Классический подход предполагает выбор исследователем структуры уравнения, и от правильности этого выбора напрямую зависит качество модели. А задача символьной регрессии, напротив, заключается в поиске не только численных коэффициентов, но и самой структуры формулы. Одним из перспективных методов решения задачи символьной регрессии является метод генетического программирования (ГП).

Если исследуемая система велика и сложна, то вряд ли стоит ожидать высокой эффективности от метода построения модели, не содержащего в себе некоторого иерархического механизма, который бы учитывал различные закономерности, симметрии, однородности и шаблоны, присущие данной системе. В обычных компьютерных программах таким механизмом является повторное использование и параметризация с помощью подпрограмм (процедур и функций). Эта идея была привнесена в метод генетического программирования Дж. Р. Козой в виде автоматически определяемых функций (ADF) [1]. Но в настоящее время данный подход еще не разработан в полной мере, поэтому исследования в данной области являются актуальными.

В [1] было показано, что использование автоматически определяемых функций заметно повышает эффективность решения задач методом ГП. Можно предположить, что если функции, специфичные для решаемой задачи, будут известны до запуска алгоритма ГП и включены в функциональное множество, то это повысит эффективность поиска решения. Возможны две схемы применения таких функций:

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

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

Автоматически генерируемые функции, получаемые в процессе работы алгоритма, предложенного Дж. Р. Козой, привязаны к конкретному индивиду поэтому они, вообще говоря, могут не быть специфичными для решаемой задачи. Можно предположить, что такими функциями являются те, которые чаще всего встречаются в популяции, полученной после первого запуска алгоритма ГП [2]. Чтобы избежать терминологической путаницы, будем называть функции, полученные в результате анализа популяции, шаблонами.

Поиск шаблонов. Шаблон - это функция/(< ! ,..., х ,р, •.,_рт), гдех 1 , ...^-независимые аргументы;^, .,рт~ параметры, вместо которых подставляются произвольные функции g 1 (x 1 , ., х) .,gт(x1, ., х) напримерДх,р) -= х +р • sin (р),/(х, х • х) — х + х • х • sin (х • х).

Функция удовлетворяет некоторому шаблону, если существуют такие параметры, при подстановке которых в шаблон получается тождественная функция. Шаблон с этими параметрами называется переводом в функцию. Например, функция g(x) - х • х • sin (х • х) удовлетворяет шаблонуДр) —р • sin (р), а/(х • х) - это перевод./'в g.

Шаб)лон/ доминирует шаб)лон/, если/ и/ различны и/ 2 удовлетворяет./. Например,./(р 1,. р 2 ) - рх • sin (р 2 ), /2(р) • sin (р),/ доминирует/,: /2(р) =//р,р).

Пересечением функций или шаблонов g1,..., gn называется множество шаблонов F- {/, .,./}, обладающих следующими свойствами:

  • -    g. удовлетворяет./ ; для всех i,j;

  • -    нет таких i и / что/. доминирует//;

  • - не существует шаблона./, которому бы удовлетворяли g и который бы доминировался каким-либо шаблоном из F.

Алгоритм поиска шаблонов. Пусть имеется множество выражений Т, тогда 5- множество всех подвыражений выражений из Т, глубина которых (подвыражений) больше единицы, например Т- 1 2 + х 3 ), sin (х)},5 - 2 + х 3 , sin (х), х ; 2 + х 3 )}. Необходимо для данного Т найти все шаблоны в соответствии со следующими правилами:

  • -    каждому шаблону удовлетворяют хотя бы два подвыражения;

  • -    если/ ; доминирует/и не существует подвыражения, удовлетворяющего./ ; , но не удовлетворяющего/ ; , то / следует отбросить.

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

  • -    список найденных шаблонов F;

  • -    список М еще не обработанных шаблонов, пополняющийся при нахождении пересечения поддеревьев;

  • -    список N, содержащий информацию обо всех поддеревьях, пересечение которых образует текущий шаблон. Элементы списка представляют собой векторы вида (i, п,/), где i - номер поддерева, участвующего в пересечении; п - количество элементов в списке М перед тем, как было найдено пересечение с данным поддеревом; /- флаг, принимающий значение 0 или 1. Если флаг равен 1, включение или исключение данного поддерева из пересечения не меняет шаблон;

  • -    списки и, i- 1,., |5|, сопоставленные с каждым поддеревом, содержащие векторы вида (/ t), где/- шаблон, которому удовлетворяет соответствующее поддерево s; t - перевод шаблона./ в s, причем/ удовлетворяет шаблону./,

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

Алгоритм поиска шаблонов состоит из двух алгоритмов: алгоритма 1 и алгоритма 2.

Алгоритм 1:

  • - шаг 1: i: -1;

  • - шаг2:/: -i + 1;

  • -    шаг 3: если / > |5|, то перейти на шаг 7;

  • -    шаг 4: найти пересечение i-го и/-го поддеревьев;

  • -    шаг 5: если пересечение непустое, то добавить полученные шаблоны в М, очистить N, добавить в N векторы (i, 0,0) и (/, 0,0), выполнить алгоритм 2;

  • - шаг 6:/: -/+1, перейти на шаг 3;

  • -    шаг 7: i: - i +1. Если i > |5|, то алгоритм завершен; если иначе, то перейти на шаг 2.

Алгоритм 2:

  • -    шаг 1: установить i равным индексу поддерева из последнего (второго) элемента N;

  • -    шаг 2: пусть./- последний шаблон в списке М;

  • -    шаг 3: если такой шаблон уже есть в списке F, то добавить в U. вектор (/ t), где t - перевод /в i-е поддерево; в предпоследнем элементе ^установить флаг в значение 1. Если иначе, то добавить/в F; во все списки U, соответствующие поддеревьям из N, добавить вектор (/ t), где t - перевод шаблона, взятого из N, в поддерево, указанное в N;

  • - шаг4: i: -i + 1;

  • -    шаг 5: если i > |5|, то перейти на шаг 8;

  • -    шаг 6: найти пересечение шаблона./" и i-го поддерева;

  • -    шаг 7: если пересечение пустое, то перейти на шаг 4; если иначе, то добавить вектор (i, |М|, 0) в N, добавить полученные шаблоны в М, перейти на шаг 2;

  • -    шаг 8: установить i равным индексу поддерева из последнего элемента N;

  • -    шаг 9: удалить последний шаблон из М;

  • -    шаг 10: если количество шаблонов из последнего элемента^меньше |М|, то перейти на шаг 2;

  • -    шаг 11: если |А| равно 2, то алгоритм завершен;

  • -    шаг 12: удалить последний элемент из N;

  • -    шаг 13: если у последнего элемента N установлен флаг, то перейти на шаг 8; если иначе, то перейти на шаг 2.

Пересечение поддеревьев . Рассмотрим процесс нахождения пересечения двух поддеревьев, имеющих одинаковую операцию в корневом узле (если операции разные, то очевидно, что пересечение пустое). Пусть первое поддерево имеет глубину п 1 , а второе - п 2 . Тогда все операнды первого уровня (дочерние по отношению к корневому узлу) имеют глубину меньше п 1 и п 2 соответственно. А при использовании описанного выше алгоритма перебора все сочетания (пары) поддеревьев с глубинами т1 < п 1 и т2 < п 2 рассматриваются раньше, чем сочетания с глубинами п 1 и п 2 . Следовательно, к данному моменту уже известны все шаблоны, которым одновременно удовлетворяют любые пары операндов первого уровня, а значит, операнды можно заменить переводами для соответствующих шаблонов. Тогда для определения пересечения достаточно сравнить операнды первого уровня. Например, выражение cos(x 1 ) • sin(x 1 ) можно представить в видеZ(x 1 ),/(cos (х 1 ), x 1 ),/(cos (х 1 ), sin (х 1 )), где/(р) - cos(р) • sin(р);/(р 1 ,g 2 ) - р1 • sin (р 2 ); /3 1,. Р 2 )-.Р 1 у

Пусть операнды а и Ъ являются функциями, операнд а удовлетворяет множеству шаблонов F 1 , а операнд Ъ - F 2 . Тогда пересечением а и Ъ является подмножество F 1 n F 2 , из которого исключены доминирующие шаблоны. Например, если а - cos (х 1 ) • sin (х 1 ), Ъ - sin (х 2 ) • (х 1 + х 2 ), F 1 - {cos (р) • sin(р),.р 1 • sin 2),р1 -р}, F2 - {sin 1) • (р 1 + +р 2 ),р 1 • sin 2),р1 р21 2 + .р 3 )}, то пересечением а и Ъ является 1 • sin (р 2 )}.

Пусть/- о 1 2 *.*оп - шаблон, принадлежащий пересечению поддеревьев s 1 и s 2 , где * - некоторая операция, тогда операнды о 1, ., оп могут быть следующих типов:

  • -    элемент пересечения операнда поддерева s t и операнда поддерева s 2 ;

  • -    переменная, являющаяся операндом как поддерева sp так и поддерева s 2 ;

  • -    параметр.

Операнды поддеревьев, образующие операнды шаблона первых двух типов, будем называть комплементарными.

Таким образом, для нахождения пересечения поддеревьев необходимо рассмотреть всевозможные сочетания пар операндов поддеревьев s t и s2. Общая схема алгоритма следующая:

  • -    шаг 1: определение комплементарных операндов;

  • -    шаг 2: составление всевозможных комбинаций комплементарных операндов;

  • -    шаг 3: для каждой комбинации - назначение параметров, составление шаблона;

  • -    шаг 4: удаление дублирующих шаблонов;

  • -    шаг 5: удаление шаблонов, которые уже были найдены ранее, за исключением шаблона, совпадающего с шаблоном, участвующим в пересечении;

  • -    шаг 6: удаление доминирующих шаблонов;

  • -    шаг 7: составление переводов полученных шаблонов в функции, участвующие в пересечении.

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

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

Алгоритм назначения параметров. Функции, участвующие в пересечении, можно представить в виде /^/^а^.)*^,^,-.)* -Лс/с^ „.*du^^ /2 = ^21 ^2 ’ ■) * ^21 b 22 , --Э *...*/*/*•■.* d 21 * d 22 * ■, где t - шаблоны пересечения операндов; с - переменные, образующие комплементарные операнды шаблона; d - некомплементарные операнды; * - знак операции. Соответствующий шаблон пересечения --^ - ' 1 11 ’-Р 12 ’ ■) * 4^21^22 ■ Т^ . . А; А•/ . . . >, /Р;Л . ., гдер - параметры. Необходимо, сравнив операнды функций / и/, сформировать множество F шаблонов, получаемых из/ различными способами нумерации парамет-ровр исключив из него доминирующие шаблоны. Например, если/ - t 1 (x 1 , х/ • t2(x1,x1 + х 2 ) х 1 2 + х 3 ) (х 2 + х 3 ) х4, /2 - /(х 2 , Т 1 + Х2) t2 1 + Х2, х3) Х2 1 + Х2) 1 + х2) х3 Х4, TOF= ^ t 1 ( P 1 , P2) t 2 ( Р 2 ’Р 3 ) Х 4 ’P ‘P" ‘P" ’Л’ t 1 ( P 1 , P 2 ) t 2 ^2 ’ P 3 ) Х 4 P 2 P 4 P 5 } .

На первом этапе необходимо заменить операнды a, b и d в функциях s1 и s2 на параметры, рассматривая эти функции по отдельности (операнды с попадают в шаблон в неизменном виде). Сначала следует сформировать список R всех рассматриваемых операндов. В список Т будут помещаться уникальные операнды, заменяемые параметрами, а в список Р - номера параметров, кото рыми заменяются операнды из R. Каждому элементу R соответствует элемент Р. Алгоритм формирования списка Р следующий:

-шаг 1: i: - 1;

  • -    шаг 2: пусть г- i-й элементR. Если г есть в Т, то поместить в Р индекс г в Т. Если иначе, то помесить г в конец Т, поместить в Р индекс последнего элемента Т, т. е. размер Т;

  • -    шаг 3: если i - |R|, то алгоритм завершен; если иначе i: - i + 1, то перейти на шаг 2.

Теперь можно заменить исходные операнды параметрами в соответствии с Р, например для функции,/"- t 1 (x 1 , х 1 ) t2(xv Х 1 + Х 2 ) ^ ! 2 + Х 3 ) 2 + х 3 ) X4R - {хр Х1, Х1, х 1 + Х2, Х1, х + + х 3 2 + х 3 },Т-{х 1 1 2 2 3 },Р-{1,1, 1,2,1, 3, 3},_/2 - t 1 ( P 1 , P 1 ) t 2 ( P 1 , P 2 ) X 3 ”'P1 ”'P3 ”’Ру

Следующий этап состоит в сравнении соответствующих друг другу параметров, являющихся операндами шаблонов в функциях/’ и/ / Эта операция аналогична описанной выше лишь с той разницей, что в списки R и Т помещаются не отдельные операнды, а пары, образованные соответствующими операндами из/^ и /'. Например, если У1- t 1 ( P 1 , P 1 ) t 2 ( P 1 , р 2 ) ( х 3 + х 3 ) P 1 P 3 P з , а// - t 1 ( P 1 , P 2 ) t 2 ( P 2 , P 3> ' ( х 3 'XjP' -Р" ’Р ’Р’ T0 R - «А’-РД ( P 1 , P 2 ), ( P 1 , P 2 ), (Р’Р)} Т - {<Р’РХ <Р’РХ ( P з , P 2 )}, Р - t1’ 2,2,3}.

После этого необходимо найти все возможные пары операндов d, совпадающие с элементами списка Т. Например, для функций/' и,/2 , приведенных выше, операнд р1 может образовывать пары (р 11 ) и (pvp2). Каждой такой комбинации соответствует один шаблон пересечения.

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

Численные эксперименты с использованием шаблонов. Эксперименты проводились для того, чтобы определить, как использование шаблонов влияет на работу алгоритма. В качестве показателя эффективности была выбрана ошибка аппроксимации выборки лучшим индивидом популяции. Поскольку алгоритм ГП является стохастическим, то для получения достоверных результатов необходимо проводить большое количество прогонов. При этом не ставилась задача найти собственно решение задачи символьной регрессии, поэтому когда работа алгоритма завершалась, лучший индивид не всегда представлял удовлетворительное решение.

Эксперимент 1. Функция f ( x ) = ^ (х/ + 10sin (х/), i = 1

x, е [-10; 10], i - 1, 2, 3. Выборка - случайная, объем -1 000 точек.

Было произведено 10 прогонов алгоритма ГП по 500 поколений каждый со следующими параметрами:

  • -    размер популяции -100;

  • -    метод выращивания - полный;

  • - начальная глубина деревьев - 5;

    - коэффициент штрафа - 1 000;

  • -    селекция - турнирная, размер турнира - 5;

  • -    вероятность скрещивания - 0,7;

  • -    мутация - выращивание, вероятность 0,75;

  • -    функциональное множество - {+, -, *, м , sin, cos, exp};

    -терминальное множество - {х^ х 2 , х 3 , С}, С е (0, 1].

Ошибка аппроксимации лучшим индивидом по окончанию работы алгоритма приведена в табл. 1 в столбце «Без шаблонов».

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

После каждого прогона из полученных шаблонов отбирались 1,5 или 10 шаблонов с наибольшим значением А. Таким образом было получено 10 наборов шаблонов.

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

^^^^^^»

P f =---- вероятность выбора в качестве узла г-й

2 nf математической операции, где nf-количество математических операций в функциональном множестве, i = 1, nf ;

  • -    P1 = —-- вероятность выбора в качестве узла г-го

  • 2    n i

шаблона, где п( - количество шаблонов в функциональном множестве, i = 1, n .

С каждым набором шаблонов выполнялось 10 прогонов алгоритма с теми же параметрами, что были использованы на этапе получения шаблонов, после чего производилось усреднение ошибки аппроксимации лучшим индивидом по всем прогонам (см. табл. 1).

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

Усреднив значения ошибок по всем наборам шаблонов (предпоследняя строка табл. 1), можно оценить ожидаемую ошибку аппроксимации при использовании шаблонов.

Затем среди шаблонов всех 10 наборов было взято 5 и 10 шаблонов с наибольшим А, после чего было выполнено по 10 прогонов алгоритма ГП. Последняя строка табл. 1 показывает, что в этом случае использование шаблонов заметно улучшает работу алгоритма ГП.

Эксперимент 2. Функция

_     6                                        ___ f (x) = ^(x2 -cos(Xi)), Xi е [-5;5], i = 1,6.

i =1

Выборка - случайная, объем - 5 000 точек.

Для получения шаблонов было выполнено 10 прогонов ГП по 1 000 поколений со следующими параметрами:

  • -    размер популяции -100;

  • -    метод выращивания - полный;

  • -    начальная глубина деревьев - 9;

  • -    коэффициент штрафа -10 000;

  • -    селекция - турнирная, размер турнира - 5;

  • -    вероятность скрещивания -0,7;

  • -    мутация - выращивание, вероятность 0,75;

  • -    функциональное множество - {+, -, *,м, sin, cos, exp}; -терминальноемножество- {хрх 2 , ...,х6, С}, Се (0,1]. После каждого прогона из полученных шаблонов отбирались 10 шаблонов с наибольшим значением А. С каждым набором шаблонов выполнялось 10 прогонов по 500 поколений (глубина начальной популяции 8, коэффициент штрафа 1 000). Параметры алгоритма ужесточены для уменьшения времени работы. Среднее значение ошибки составило 10,87 (табл. 2). При тех же параметрах алгоритма ГП, но без применения шаблонов средняя ошибка составила 14,4.

Далее среди шаблонов всех 10 наборов было взято 10 шаблонов с наибольшим А, после чего было выполнено 10 прогонов алгоритма ГП. Получившаяся ошибка составила 10,8 (см. табл. 2).

Эксперимент 3. Задача моделирования процесса рудно-термической плавки (РТП) [3]. Выборка-47 точек.

Для получения шаблонов было выполнено 10 прогонов ГП по 10 000 поколений со следующими параметрами:

  • -    размер популяции -100;

    Таблица 1

    Изменение ошибки аппроксимации в зависимости от количества используемых шаблонов

    № набора шаблонов

    Без шаблонов

    Количество шаблонов

    1

    5

    10

    1

    1,45

    24,2

    8,06

    2,75

    2

    24,9

    7,52

    12,4

    3,49

    3

    31,6

    3,92

    4,04

    6,6

    4

    0,483

    24,9

    15,2

    0,497

    5

    33

    13,6

    19,7

    24

    6

    25,1

    22,3

    18

    18,1

    7

    26,4

    31,2

    2,3

    6,58

    8

    23,3

    20,8

    10,6

    10,4

    9

    29,4

    18,8

    16,1

    22,6

    10

    0,824

    13,5

    6,87

    1,69

    Среднее

    19,65

    18,07

    10,59

    8,08

    Сборные шаблоны

    3,91

    7,08


  • -    метод выращивания - полный;

  • -    начальная глубина деревьев - 5;

  • -    коэффициент штрафа - 10 000;

  • -    селекция - турнирная, размер турнира - 5;

  • -    вероятность скрещивания - 0,7;

  • -    мутация - выращивание, вероятность 0,75;

  • -    функциональное множество - {+, -, *, -ъ, sin, cos, exp};

    -терминальноемножество- {^ 1 2 , ...,х 10 ,С}, Се (0,1]. Полученные результаты приведены в табл. 3.

Таким образом, сформулируем следующие выводы: - результаты экспериментов 1 и 2 свидетельствуют о том, что алгоритм ГП с автоматически определяемыми функциями (шаблонами) эффективнее классического алгоритма в том случае, если искомая функция содержит подобные друг другу фрагменты. В то же время для задачи моделирования процесса РТП (эксперимент 3) применение шаблонов привело к ухудшению результата. Это, вероятно, вызвано тем, что функция, описывающая процесс РТП, не содержит подобных друг другу фрагментов;

  • -    нет явной связи между качеством деревьев-решений, которые используются для поиска шаблонов, и качеством

решений, полученных с помощью найденных шаблонов;

  • -    целесообразно формировать множество шаблонов на основе наборов шаблонов, полученных в результате нескольких прогонов алгоритма ГП.

Статья научная