Особенности реализации генетического алгоритма для решения задачи целочисленного программирования в методе структурно-параметрической идентификации линейных динамических систем

УДК 519.254

В. В. Энгельгардт

аспирант, кафедра «Мехатроника в автоматизированных производствах», ФГБОУ ВПО «Самарский государственный университет путей сообщения»

ОСОБЕННОСТИ РЕАЛИЗАЦИИ ГЕНЕТИЧЕСКОГО АЛГОРИТМА ДЛЯ РЕШЕНИЯ ЗАДАЧИ ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ В МЕТОДЕ СТРУКТУРНО-ПАРАМЕТРИЧЕСКОЙ ИДЕНТИФИКАЦИИ ЛИНЕЙНЫХ ДИНАМИЧЕСКИХ СИСТЕМ

Аннотация. Описан метод, основанный на использовании генетического алгоритма, специализированного под решения задач целочисленного программирования, который применяется для идентификации структуры модели. Данный метод позволяет проводить структурно-параметрическую идентификацию линейных динамических систем с учётом помех на входе и выходе системы.

Ключевые слова: структурно-параметрическая идентификация, линейные динамические системы, эволюционные вычисления, генетический алгоритм, целочисленное программирование.

V.V. Engelhardt, department "Mechatronics in Automated Production", Samara State University of Transport

PECULIARITIES OF REALIZATION OF GENETIC ALGORITHM FOR SOLVING INTEGER

PROGRAMMING PROBLEMS IN A METHOD OF STRUCTURAL-PARAMETRIC

IDENTIFICATION OF LINEAR DYNAMIC SYSTEMS

Abstract. Described a method based on a genetic algorithm specialized for solving integer programming, which is used to identify the model structure, was conducted. The approach allows to produce the structural-parametric identification of linear dynamical systems with noise at the input and output of the system.

Keywords: structural-parametric identification, linear dynamic system, evolutionary algorithm, genetic algorithm, integer programming.

Введение

Методы идентификации, как методы построения математических моделей реальных динамических систем, подверженных неконтролируемым случайным воздействиям, сегодня являются важной составной частью процесса решения задач управления. Одной из наиболее применяемых динамических моделей является модель в форме линейного разностного уравнения (ЛРУ) (1).

Достаточно сложной задачей в этом случае является определение параметров и структуры модели (порядки по входу и выходу) этого уравнения.

Задача параметрической идентификации динамических систем при наличии помех во входных и выходных сигналах, является более сложной, чем задача регрессионного анализа. В [1] предложен метод для решения таких задач, а рекуррентные модификации разрабатывались и исследовались в [2, 3].

В случае если априорная информация об объекте исследования отсутствует (или она нуждается в подтверждении), существуют методы определения порядка математических моделей динамических систем при наличии помех в выходном сигнале. Например: использование в качестве критерия квадратичной функции потерь [4, 5, 6, 7], информационного критерия Акаике (AIC) [8], критерия наименьшего размера модели Риссанена (MDL) [8], использование матрицы моментов [4, 5, 6, 7]. Можно так-

же использовать информацию о передаточных функциях [6], импульсной характеристике (ИХ) [9, с.62]. Но данные методы не способны ответить на все вопросы об особенностях системы и обозначают лишь некоторые ориентиры в выборе возможной модели.

Предлагается метод структурно-параметрической идентификации, который позволяет оценить порядок ЛРУ (1) без использования передаточной функции, импульсной характеристики системы и при наличии помех наблюдения в входных и выходных сигналах.

1. Постановка задачи

Рассмотрим многомерное линейное разностное уравнение с помехами на входе и выходе с бесконечным в обе стороны дискретным временем / =...,-1,0,1,...

г,-±ьог)*1.т=I ¿ац,

т=1 ¡=1 т=0

входная и выходная переменная наблюдается с аддитивными помехами в виде:

у,=1,+ $ (/)() = Х,() + Ъ()(/).

Требуется определить по у{, w,(1) вектора параметров а, Ь и порядки г, г1.

В качестве функции потерь для оценки параметров ЛРУ в условиях помех использовался следующий критерий [10, с.44]:

тт"1 (ь,а(1)... а(- >

) (>...а<->),

где им (Ь, а(1). а(-)) = ) - ^ (Ь]  V - ^ [Ь]), (•,•) - скалярное произведение;

(Ь, а(1) ... а(-)) = и [1 + ЬТЬ + г(1) (а(1) )Т а(1) ... у(-) (а(- ))т а(-) ], — 2

и 1 - средняя дисперсия помехи наблюдения Ъ (/);

_( ) (и )2

(и1 )2 - средняя дисперсия помехи наблюдения Ъ2( 1) (/), / 1) = _ 2) ;

и1

а = (а1 .а-)Т , а( > = (а^ ..а1 )Т , Ь = (Ь...Ьг) , У = (у ...ум)Т ,

Уо - У1-

уы-1 "'уы-г

""ы ""Ы-г1

N-1 1\1-г_,

Приведённый критерий позволяет получить сильно состоятельные оценки [10, с.43] при выполнении следующих условий:

1. Множество В, которому априорно принадлежат истинные значения параметров устойчивой линейной системы, является компактом.

2. Помехи Ъ(/),Ъ(1)(/),1 = 1,- статистически независимы и удовлетворяют сле-

дующим условиям:

Е(4 (/ +1)/4 (/0),...4 (/)) = 0 п.н.,

где Е- оператор математического ожидания; е(412 (/ +1)/4 ('о),...,4 ('))< Л , где Л - случайная величина; Е( Л )<п<да; е((4, )4 (/))<п п.н.;

е(4(;)(/ +1)/4(;)(/'о )...4() (/)) = 0 п.н.; Е^)2 ((+1)/4(;)(/'о).....4) (() < ^, -случайная величина; е()) < ) < да; е(4(;) (/)) < < да.

3. {х/1),... х™} статистически не зависят от (/)})} ,] = 1,".

4. Вектор входных переменных и истинные значения параметров удовлетворяют условиям:

N[ 1 (/)[хг(1)(')Т [)(/)'

'0

V

г —т^ (j) - Г x(j) x(j)л

(' )i-

z (' ):••:! X

П_Н H, где x;

X' ... X' _rj

V /

, Zr (( )- ( Z;_1 ••• z,_r

2. Алгоритм для структурно-параметрической идентификации

Для задачи численной реализации выбора структуры модели предлагается подход, в основу которого положен генетический алгоритм [11, с.432]. Он представляет собой эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию. Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания», который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.

Задача структурной идентификации формализована таким образом, что её решение закодировано в виде вектора фиксированной длины, где каждый элемент соответствуют сдвигу по r,rj. Таким образом, задача сводится к решению задачи целочисленного программирования (Integer programming) которая относятся к классу NP-hard (nondeterministic polynomial time) [12].

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

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

Из полученного множества решений («поколения») с учётом значения «приспособленности» выбираются решения, к которым применяются «скрещивание» и «мутация».

х

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

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

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

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

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

В общем виде алгоритм структурно-параметрической идентификации имеет следующий вид:

1. Создаем базы данных для структур моделей: store - для всех параметрически идентифицированных структур, stab_store - только для устойчивых систем, store_p -является результирующим тезаурусом для моделей с минимальным значением крите-

d

рия для каждой границы сложности p(p = r + ^rj ).

j=i

2. Задаём ограничения для алгоритма: степень адекватности А, максимально допустимая сложность p.

3. Задаём начальную границу сложности p = 1.

4. Запусткаем генетический алгоритм (ГА) для текущего ограничения по p.

5. Для каждой структуры на каждой итерации ГА при вычислении «функции приспособленности» производим следующие действия:

a. Проверяем, была ли такая структура уже вычислена в store, если есть,

извлекаем значения критерия и передаём в ГА.

b. Производим параметрическую идентификацию для текущей структуры-

особи r,rj, на основе критерия (2) и ограничения на параметры в виде алгеб-

раического критерия устойчивости Рауса-Гурвица.

c. Добавляем модель в store.

d. Проверяем полученные параметры модели на устойчивость с помощью характеристического уравнения, и в случае устойчивости модели добавляем её в stab_store.

6. Сортируем stab_store по значению критерия от меньшего к большему и добавляем модель с меньшим критерием в выходной тезаурус store_p.

7. Увеличиваем границу поиска для ГА p= p +1.

8. Если при расширении пространства поиска p изменение критерия для оптимальной модели текущей p произойдет меньше чем на А по сравнению с предыдущим оптимальным значением, т.е. p-1, то в этом случае останавливаем алгоритм.

9. Если пространство поиска p достигло максимально допустимой сложности, останавливаем алгоритм.

10. Переходим к п. 4.

После остановки алгоритма выводим график зависимости критерия от p, а также получившийся тезаурус store_p, в котором модели уже отсортированы по сложности (размерности p) и указаны значения критерия (ошибки) для каждой модели.

В качестве среды для реализации выбран Matlab компании The MathWorks, одним из решающих преимуществ которого является богатое «математическое окружение» готовых функций и компонентов систем, которые необходимы для реализации данного метода.

Для решения задачи структурной идентификации в качестве основы был взят Genetic Algorithm Solver, который реализовывает метод ГА и является частью пакета Matlab. В предоставленном виде данный пакет не адаптирован под решение задач целочисленного программирования (Integer programming). Для адаптации данного инструмента используется следующий метод [13]:

1. Задается верхняя и нижняя целочисленная граница области, в которой будет происходить поиск.

2. Создается производная функция генерации начальной популяции, в которой гарантированно получаем целочисленное значение для каждой особи. Пример функции:

function Population = int_pop(GenomeLength,FitnessFcn,options) totalpopulation = sum(options.PopulationSize); range = options.PoplnitRange; lower= range(1,:); span = range(2,:) - lower; Population = repmat(lower,totalpopulation,1) + round( rep-mat(span,totalpopulation, 1).*rand(totalpopulation, GenomeLength));.

3. Создаём производную функцию мутации, в которое при мутировании получается строго целочисленное значение особи. Пример функции:

function mutationChildren = int_mutation(parents,options, GenomeLength, Fit-nessFcn,state,thisScore,thisPopulation) shrink = .01; scale = 1; scale = scale - shrink * scale * state.Generation/options.Generations; range = options. PoplnitRange; lower = range(1,:); upper = range(2,:); scale = scale * (upper - lower); mutationPop = length(parents); mutationChildren = repmat(lower,mutationPop,1) + round( repmat(scale,mutationPop, 1) .* rand(mutationPop,GenomeLength));.

При данном подходе ГА, реализованный в Matlab, будет производить пространственный поиск строго в рамках заданных границ (lower, upper), поиск будет проходить строго в целочисленной области.

Заключение

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

Список литературы:

1. Кацюба О.А., Жданов А.И. Особенности применения МНК для оценивания линейных разностных операторов в задачах идентификации объектов управления // Автоматика и телемеханика. - 1979. - №8. - С. 86-96.

2. Иванов Д.В., Кацюба О.А. Рекуррентная параметрическая идентификация многомерных линейных динамических систем с автокоррелированными помехами во входных и выходных сигналах // Вестник Самарского государственного технического университета, серия «Физико-математические науки науки». №4(25). - 2011. - С.102-109.

3. Иванов Д.В., Усков О. А. Рекуррентное оценивание билинейных динамических систем с помехами во входном и выходном сигналах // Известия Южного федерального университета. Серия «Технические науки». - № 6 (131). - 2012. - С.187-192.

4. Толчеек В.О., Яготкина Т.В. Методы идентификации линейных одномерных динамических систем. М.: Московский энергетический институт, 1997. - 108 с.

5. Фатуев В. А., Каргин А. В., Понятский В.М. Пакет программ структурной и параметрической идентификации линейных одномерных динамических систем // Труды второй всероссийской научной конференции «Проектирование инженерных научных приложений в среде Matlab». М.: ИПУ РАН, 2004. - C.715-762.

6. Фатуев В. А., Каргин А. В., Понятский В.М. Структурно-параметрическая идентификация динамических систем: Учебное пособие. Тула: Издательство ТулГУ, 2003. -156 с.

7. Фатуев В.А., Юдаев А.В., Понятский В.М., Каргин А.В., Оберман М.С. Структурно-параметрическая идентификация многомерных нестационарных динамических систем // Труды III международной конференции «Идентификация систем и задач управления» (SICPRO'2004). М.: ИПУ РАН, 2004. - С.159-186.

8. Ljung L. System Identification - Theory for the User, Prentice Hall, Upper Saddle River N.J., 2nd edition, 1999.

9. Анисимов А.С., Кононов В.Т. Идентификация порядка линейного разностного уравнения // Труды международной конференции «Идентификация систем и задачи управления» SICPRO '2000. Москва, 26-28 сентября 2000 г. Институт проблем управления им. В.А. Трапезникова РАН. М: Институт проблем управления им. В.А. Трапезникова РАН, 2000. - 2534 с.

10. Кацюба О.А. Теория идентификации стохастических динамических систем в условиях неопределённости: монография / О.А. Кацюба. - Самара: СамГУПС, 2008. -119 с.

11. Емельянов В. В., Курейчик В. В., Курейчик В. М. Теория и практика эволюционного моделирования. - М: Физматлит, 2003. - 432 с. - ISBN 5-9221-0337-7.

12. Matousek Jiri, Sharir Micha, Welzl Emo. A subexponential bound for linear programming, 1996, Algorithmica 16: 498-516, doi:10.1007/BF01940877.

13. Deep, Kusum, Krishna Pratap Singh, M.L. Kansal, and C. Mohan. A real coded genetic algorithm for solving integer and mixed integer optimization problems. Applied Mathematics and Computation, 212(2), pp. 505-518, 2009.

List of references:

1. Katsjuba O.A., Zhdanov A.I. Features of the application for the OLS estimation of linear difference operators in problems of identification of control objects // Automation and Remote Control - 1979 - № 8 - P. 86-96.

2. Ivanov D.V., Katsjuba O.A. Recurrent multivariate parametric identification of linear dynamic systems with autocorrelated noise in the input and output signals / / Bulletin of the Samara State Technical University, series "Physics and mathematics science", № 4 (25) (2011), p.102-109.

3. Ivanov D.V., Uskov O.A. Recursive estimation of bilinear dynamical systems with noise in the input and output signal / / Southern Federal University, series "Engineering" № 6 (131) (2012) p.187-192.

4. Tolcheek V.O., Yagotkina T.V. Methods of identification of linear one-dimensional dynamical systems. Moscow: Moscow Power Engineering Institute, 1997. - 108 p.

5. Fatou V.A., Kargin A.V., Ponyatsky V.M. Package of structural and parametric identification of linear one-dimensional dynamical systems / / Proceedings of the Second All-Russian Conference "Design of engineering science applications in Matlab». Moscow: Institute of Control Sciences, 2004. -C.715-762.

6. Fatou V.A., Kargin A.V., Ponyatsky V.M. Structural-parametric identification of dynamic systems: the manual. Tula: Tula State University Publishing, 2003. - 156 p.

7. Fatou V.A., Yudaev A.V., Ponyatsky V.M., Kargin A.V., Oberman M.S. Structural-parametric identification of the multidimensional time-dependent dynamical systems / / Proceedings of the III International Conference "System Identification and Control Problems» (SICPRO'2004). Moscow: Institute of Control Sciences, 2004. , Pp.159-186.

8. Ljung L. System Identification - Theory for the User, Prentice Hall, Upper Saddle River NJ, 2nd edition, 1999.

9. Anisimov A.S., Kononov V.T. Identification of the order of the linear differential equations / / Proceedings of the International Conference "System Identification and Control Problems" SICPRO '2000. Moscow, 26-28 September 2000 Institute of Control. VA Institute of Control Sciences. Moscow: Institute of Control. VA Institute of Control Sciences, 2000. - 2534 s.

10. Katsjuba O.A. Identification theory of stochastic dynamic systems under uncertainty: monograph / O. Katsjuba. - Samara: SamGUPS, 2008. - 119 p.

11. Emelyanov V.V., Kureichik V.V., Kureichik V.M. theory and practice of evolutionary modeling -M: Francis, London, 2003. - 432 p. - ISBN 5-9221-0337-7.

12. Matousek Jiri, Sharir Micha, Welzl Emo. A subexponential bound for linear programming, 1996, Algorithmica 16: 498-516, doi: 10.1007/BF01940877.

13. Deep, Kusum, Krishna Pratap Singh, M.L. Kansal, and C. Mohan. A real coded genetic algorithm for solving integer and mixed integer optimization problems. Applied Mathematics and Computation, 212 (2), pp. 505-518, 2009.