Научная статья на тему 'Эффективная алгоритмизация задачи унификации программного обеспечения по экономическому критерию'

Эффективная алгоритмизация задачи унификации программного обеспечения по экономическому критерию Текст научной статьи по специальности «Математика»

CC BY
187
39
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЗАДАЧА УНИФИКАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / МИНИМИЗАЦИИ ПОЛИНОМА С БУЛЕВЫМИ ПЕРЕМЕННЫМИ / АЛГОРИТМ ВЕТВЕЙ И ГРАНИЦ / ПОСТРОЕНИЕ ОЦЕНОЧНОЙ МАТРИЦЫ / ФУНКЦИЯ ВЕТВЛЕНИЯ / THE TASK OF UNIFICATION OF THE SOFTWARE / MINIMIZING POLYNOMIALS WITH BOOLEAN VARIABLES / BRANCH AND BOUND ALGORITHM / THE CONSTRUCTION OF AN EVALUATION MATRIX / THE FUNCTION OF BRANCHING

Аннотация научной статьи по математике, автор научной работы — Изотов Виктор Николаевич, Морозова Елена Владиславовна, Морозова Татьяна Владиславовна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Изотов Виктор Николаевич, Морозова Елена Владиславовна, Морозова Татьяна Владиславовна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

EFFECTIVE ALGORITHMIZATION TASK OF UNIFICATION SOFTWARE BY ECONOMIC CRITERIA

The algorithm branch and bound method for solving the problem of unification, of the software. A method for calculating the lower limit for the evaluation of the objective function based on an effective strategy for building evaluation matrix. The results of testing the developed strategy.

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

3. Игнатова О. А. Моделирование продольного движения мобильного робота // Математические методы в технике и технологиях ММТТ-21. Сб. трудов XXI Международной научной конференции. Т. 5. Саратов: Сар. гос. тех. ун-т, 2008. С. 48 - 50.

Игнатова Ольга Александровна, канд. техн. наук, доц., lyalya0104@,mail.ru Россия, Тула, Тульский государственный университет,

Шиленко Екатерина Сергеевна, инженер, eka-ignato2008@yandex.ru Россия, Тула, Тульский государственный университет

STATIC SIMULATION OF MOBILE ROBOT O.A. Ignatova, E.S. Shilenko

For these conditions of information-measuring and control systems identified increased requirements to rigidity, providing accurate positioning of the working body, a method for increasing the rigidity of the manipulator are the identified.

Key words: mobile wheeled robot manipulator, rigidity, working body.

Ignatova Olga Aleksandrovna, candidate of technical science, docent, lyalya0104@mail. ru, Russia, Tula, Tula State University,

Shilenko Ekaterina Sergeevna, engineer, eka-ignato2008@yandex.ru, Russia, Tula, Tula State University

УДК 004.04

ЭФФЕКТИВНАЯ АЛГОРИТМИЗАЦИЯ ЗАДАЧИ УНИФИКАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПО ЭКОНОМИЧЕСКОМУ

КРИТЕРИЮ

В.Н. Изотов, Е.В. Морозова, Т.В. Морозова

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

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

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

да, изложенных в [2], выделяется способ, основанный на сведении этой задачи к задаче минимизации полинома от булевых переменных. Указанный способ более всего приспособлен для программной реализации алгоритма решения задач на ЭВМ. Для сведения рассматриваемой задачи унификации к задаче минимизации полинома от булевых переменных целевая функция записывается в виде полинома, соответствующего исходной

матрице переменных затрат

О-

и исходному вектору постоянных затрат

о

о

т-1

^..^Зо^-лК 1ЗДО-у- -у

Ш -шХ1=0 1 -

(1)

где ^0о;-=0.у ., Юи=0.) -О- .; I = 1, т -1; у1 = (1- х) - булевы переменные

(параметры оптимизации).

Для определения ДО^- • у .

вок номеров строк матрицы

о-

О

ч

••у - выполняется система перестано-

1 11

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

" 10 50 10 10 30 10 20 20 20 40 30 10

перестановки номеров строк, задаваемые соответственно 1-м, 2-м, 3-м и 4-м столбцами, будут записываться следующим образом:

(11,12к .•••.4 =(1,3,2) ; т)=(2,3,1);&2к,l3,к,lт)=(1,2,3) ; (141 4k.i4.KI т =1Л2).

Тогда полином для этой матрицы можно представить выражением

3 П

3(У1,..., у2 )= З О0 (1 - у I )+[10 + (20 -10) • У1 + (30 -10) • У1 • У3 ] + 1=1

+ [10 + (40 -10) У2 + (50 - 40) У2 У3 ]+ [10 + (20 -10) У1 + (30 - 20) л у 2 ]+ + [10 + (10 -10) у + (10 -10) у1 у3 ] =

= З О0 (1 - у) + 40 + 20у + 30 у 2 +10 у у 2 + 20 у1 у3 +10 у3.

1=1

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

(21, ... , 2 к) - частичное решение (решение, полученное на определенном этапе ветвления, где 0 £ к £ т);

(2 1 , ... , 2 к, у к+1 , ... , у т) - допустимое решение на данном этапе ветвления (все возможные значения переменных у к+1 , ... , у т определяют множество продолжений произвольного частичного решения (2 1,..., 2к)).

При односторонней схеме ветвления рассматриваемое на каждом шаге алгоритма ветвей и границ разбиение множества непросмотренных решений может задаваться индикаторной парой векторов (2 1, ... , 2к) (V1, ... , V к). Например, последовательность множеств, соответствующая заштрихованным на рисунке вершинам, задается индикаторной парой (0 1 0) (0 0 1). Здесь (0 1 0) - частичное решение вектора (2 д 2 2, 2 3, у4, у 5).

Множество продолжений частичного решения может быть задано также индикаторной парой (0 1 0) (0 0 1).

Пример разбиения множества допустимых решений задачи

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

Для оценки «снизу» функции (1) на множестве продолжений частичного решения (21 , ... , 2к) предлагается [3] строить оценочную матрицу W. Идея построения этой матрицы может быть рассмотрена на примере вычисления оценки для множества продолжений пустого частичного решения. Этот случай соответствует начальному этапу решения задачи (к=0), когда множеством непросмотренных решений является все множество допустимых решений. В основе построения оценочной матрицы Ж лежат

преобразования исходной матрицы

Gj

G0

в

с использованием вектора

при любых i е U,

wj < Gj

целях получения такой матрицы W , чтобы j е X и £ (Wj - Gj) < Gj для всякого i е U .

jeX

Существует доказательство, что если W является оценочной матрицей, то величина

m(W )= £ min w

jeXieU

ij

есть оценка « снизу » функции (1).

В общем виде способ построения оценочной матрицы основан на

таком распределении элементов вектора вующих строк матрицы

G0

Gij

среди элементов соответст-

,0

Е = X + =1, т, чтобы получить

¡еХ ]еХ

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

w

ij

Gv

), для которого еще возможно (еще есть « ресурс» 01) повыше-

ние значения минимального элемента. Построение ведется до тех пор, пока существуют такие столбцы в матрице Ж. Стратегия выбора очередного столбца определяет окончательный вид матрицы Ж и существенно влияет на величину т(Ж). Чем больше т(Ж), тем точнее оценка. В [2] рассмотрены следующие стратегии.

Стратегия I. В данной стратегии в первую очередь выбираются те столбцы, у которых количество минимальных элементов меньше. Повышение минимума в столбце производится до ближайшего большего по величине элемента. Эта стратегия позволяет увеличивать т(Ж), расходуя минимум «ресурса» на каждом шага алгоритма построения Ж. Имеет смысл усовершенствовать данную стратегию путем введения второго условия: среди столбцов с равным количеством минимальных элементов в первую очередь выбирать столбец с меньшей разницей между минимальным и ближайшем большем по величине элементом. При этом повышается равномерность расходования «ресурса» по всем столбцам, что приводит, в конечном счете, к повышению т(Ж).

Стратегия II. Выбирается]-й столбец по минимальной из величин

lj

- £ G0 ieJj (W) Gi

j

Л, n;

(2)

где Jj(W) - множество номеров ¡, соответствующих минимальным элементам в j-м столбце матрицы Ж; 0° - оставшийся ресурс для повышения

значении элементов i-й строки.

Of

G0

а на после -

На первом шаге построения W принимается

дующих шагах 1-й «ресурс» может уменьшиться на величину £ Aj j , где

j^X

A i j - величина, на которую увеличивается элемент Wjj, если он является

минимальным элементом в j-м столбце.

В обеих стратегиях не допускается быстрый расход большого количества «ресурса» для достижения максимальной оценки m(W).

Задачу построения наилучшей матрицы W можно записать в виде задачи линейного программирования:

£ min {wj j + Aj jmax ; (3)

jeXizU 'J ' (Aj, j)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

£ Aj, j £ Of, i = im ;

j^X

Л^ j > 0, I =1, т , j =1, п .

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

большой размерностью матрицы Ог- j . Это объясняется тем, что в стратегии II дополнительно учитывается первое условие стратегии I . Действительно, значение сумм в выражении (2) тем меньше, чем меньше минимальных элементов в столбце. Однако стратегия II несколько сложнее в программной реализации. В стратегии II, кроме того, есть еще ряд недостатков. Из выражения (2) видно, что для замедления расхода «ресурса»

тт0

учитывается только значение О^ , оставшееся от предшествующих шагов построения Ж, и не учитывается значение Л1 j для каждого из выбираемых столбцов на текущем шаге. Другими словами, не учитывается второе условие стратегии I , позволяющее дополнительно замедлить расход «ресурса».

Следующим недостатком стратегии II является то, что величина О0 в выражении (2) стоит в числителе. Тем самым расходуется меньший по вели-

чине «ресурс». Из-за нерационального выбора столбца при построении W может произойти «досрочное» обнуление «ресурса», что затруднит движение в направлении максимума m(W).

С целью устранения указанных недостатков с учетом анализа функции (3) основных условий замедления построения матрицы W целесообразно применить следующую стратегию.

Стратегия III. Выбирается j-й столбец по минимальной из величин

Lj = I , j =1n . (4)

ieJj (W) Gi

Программную реализацию стратегий I и III целесообразно осуществлять на основе выражения

j = М; (5)

где R - параметр выбора стратегии: R = 1, если выбрана стратегия без I без 2-го условия; R = 0, если выбрана стратегия без III; R<0 - применяется стратегия, в которой преимущественно выбираются столбцы с большей степенью расхода «ресурса» и с меньшим количеством минимальных элементов; R>1 - выбираются столбцы с меньшей степенью расхода «ресурса» и с большим количеством минимальных элементов; 0<R<1 - выбирается стратегия, в которой наряду с общим условием (4) учитывается в требуемой степени количество минимальных элементов в столбце.

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

Результаты экспериментальной проверки рассмотренных стратегий при решении методом ветвей и границ многомерной задачи унификации приведены в таблице.

Анализ результатов проверки показал, что:

при R=0.8 стратегия дает уже значение JLl(W) = 16. Для сравнения в таблице включены данные о результатах применения стратегии IV (выбор столбцов по возрастанию их порядкового номера и повышение минимума в каждом столбце до максимально возможного значения за один шаг построения матрицы W);

L

j= I

jElj (W)

1 -R

Aij

1 -=L

G о . Gi

для задач небольшой размерности стратегия III менее выгодна, чем стратегия I ;

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

Результаты проверки стратегий построения оценочной матрицы

Номер стратегии Количество шагов решения задачи m (W для к = 0

I 1-е условие 9 16

1-е и 2-е условия 7 16

II 7 16

IIII R=1 7 15

R=0.8 7 16

IV 11 14

Алгоритм построения матрицы Ж связан и с функцией ветвления. Поскольку решение рассматриваемой задачи унификации прежде всего следует искать среди элементов ||уг-|, ( = 1, т), которые соответству-

полученного после построения Ж,

ют нулевым компонентам вектора

G0

точность построения оценочной матрицы влияет на эффективность функции ветвления и определяет точность фиксирования свободных переменных у к, у к+1, ... , ур (к < р < т).

Нижняя граница полинома (1) на множестве продолжений произвольного частичного решения (21, ... , 2к) вычисляется по формуле [2]

I Q 0 ;m(w)

je X

H (zl,K,Zk )= I G0 + min ' iel

где I = {i e U \zi =o}- множество номеров i, вошедших в частичное решение, для которых Z = 0;

Q0 = min Gij, j =1 n .

iel

Оценочная матрица Wij II для случая, когда к Ф 0 , строится таким

образом, чтобы wij >Gj- при любых i eU, j e X и I (wij-Gj )< G0 для

jeX

Gij, если<Gij < q0 ,

всякого i>k. Причем Gt

ij

Q0, если Gj > Qo.

Элементы строк, входящих в частичное решение (г £ к), преобразованию в процессе построения Ж не подвергаются.

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

Подготовительный этап: к = 0; у= 0 для всех г е и.

Этап 1. Построение оценочной матрицы.

Этап 2. Вычисление нижней границы Н (71, к, 2к) и значений фиксируемых переменных 2к+1, ... , 2р:

г<к 7=1

п п

н (21,..., 2к )= I (1 - ^ +1

где Qj = шт Ю 0 ;тт^

I г >к

Для всех г >к: 2^

0, если Ог° = 0;

1, если Ог° Ф 0;

а) если для всех г > к : {г^, =0 } = 0, то р = т и переход к этапу 3. Из

всех к + 1 < р < т выбирается р = шт Р .

Р\2р=0

б) если для всякого7 е X : |{г12г =0,<% < Qj } < 1, то р = т и переход к этапу 3.

Этап 3. Вычисление Б(у1, ... , ут) и поиск оптимального решения: п.1. Если Н(71,2к)> £(у1, ... , ут), то переход к п. 3. Если р = т , то у1 = 21 для вех г и переход к п. 3. п.2. V = 0 для г=к + 1 , ... ,р; к = р и переход к этапу 1. п.3. г = к ;

п.4. Если V = 0 , то 21 = 1 - 21 ; V = 1 ; к = г и переход к этапу 1. п.5. Если г < к, то конец работы алгоритма и вектор (у1 , ... , ут) есть оптимальное решение, иначе г = г - 1 и переход к п.4.

При определении свободных переменных на этапе 2 с целью ускорения нахождения оптимального решения дополнительно проверяются два условия. Условие а) означает, что, если из числа свободных переменных ни одна не может быть включена в частичное решение, то дальнейший поиск оптимального решения не целесообразно вести в подмножестве продолжений частичного решения, полученного к данному моменту. Причем, если выполняется условие Н (21,., 2к )< £(у1,...,ут), то производится смена «рекорда» в соответствии с полученным частичным решением. Если выполняется условие б), то становится невозможным дальнейшее перерас-

пределение минимумов в столбцах матрицы W с целью повышения m (W ) , то есть ветвление в этом направлении нецелесообразно. Наличие этих двух условий при высокой точности построения оценочной матрицы повышает вероятность нахождения оптимального решения в самом начале ветвления (при к = 0) уже на первом шаге алгоритма.

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

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

1. Дьяченко Е.А., Изотов В.Н. Метод решения задачи оптимальной унификации программного обеспечения по экономическому критерию // Известия Тульского государственного университета. Технические науки. Тула: Изд-во ТулГУ, 2013. Вып. 9. Ч. 2. С. 150 - 156.

2. Береснев В.Л., Гимади Э.Х., Дементьев В.Т. Экстремальные задачи стандартизации. Новосибирск: Наука, 1978. 335 с.

3. Изотов В.Н. Метод построения нижней границы для многомерной задачи унификации. // Стандартизация военной техники. 1988. № 1. С. 28 - 31.

Изотов Виктор Николаевич, д-р техн. наук, проф., izotovvn-tula@mal.ru, Россия, Тула, Тульский филиал Российской академии народного хозяйства и государственной службы при Президенте Российской Федерации,

Морозова Елена Владиславовна, канд техн. наук, доц., mevsautulgu@mal.ru, Россия, Тула, Тульский государственный университет,

Морозова Татьяна Владиславовна, начальник аналитического отдела, 1712 t@mail.ru, Россия, Тула, государственное учреждение Тульской области "Тулауп-радор"

EFFECTIVE ALGORITHMIZATION TASK OF UNIFICATION SOFTWARE BY ECONOMIC CRITERIA

V.N. Izotov, E.V. Morozova , T.V. Morozova

The algorithm branch and bound method for solving the problem of unification, of the software. A method for calculating the lower limit for the evaluation of the objective function based on an effective strategy for building evaluation matrix. The results of testing the developed strategy.

Key words: the task of unification of the software, minimizing polynomials with Boolean variables, branch and bound algorithm, the construction of an evaluation matrix, the function of branching.

Izotov Viktor Nikolaevich, doctor of technical sciences, professor, izotovvn-tula@mal.ru, Russia, Tula, Tula branch of the Russian Presidential Academy of National Economy and Public Administration,

Morozova Elena Vladimirovna, candidate of technical sciences, docent, mevsautul-gu@mail.ru, Russia, Tula, Tula State University,

Morozova Tatiana Vladislavovna, chief of analytical department, 1712_t@mail. ru, Russia, Tula, Tula State Institution of the Tula region "Tulauprador"

УДК 004.021

ПОЛУМАРКОВСКОЕ МОДЕЛИРОВАНИЕ АЛГОРИТМОВ ВЫПОЛНЕНИЯ ПРОГРАММЫ НА ЭВМ

Г.Н. Клинцов, Е.В. Ларкин

Описывается процесс выполнения программы на ЭВМ. Даётся детальный анализ моделирования алгоритмов на основе полумарковских цепей.

Ключевые слова: алгоритм, ЭВМ, CPU, полумарковские процессы, вероятностное распределение, конвейер команд.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.