Научная статья на тему 'Векторная оптимизация с программированием в среде Mathcad при комплексировании машин и агрегатов'

Векторная оптимизация с программированием в среде Mathcad при комплексировании машин и агрегатов Текст научной статьи по специальности «Математика»

CC BY
678
177
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЦЕЛОЧИСЛЕННОЙ ВЕКТОРНОЙ ОПТИМИЗАЦИИ / ПРОГРАММИРОВАНИЕ / АДДИТИВНЫЙ КРИТЕРИЙ / НАДЕЖНОСТЬ / СРЕДНЕЕ ВРЕМЯ ПРЕБЫВАНИЯ / MATHCAD / INTEGER VECTOR OPTIMISATION / PROGRAMMING / ADDITIVE CRITERION / RELIABILITY / AVERAGE TIME OF STAY

Аннотация научной статьи по математике, автор научной работы — Богатырев Владимир Анатольевич, Булыгин Кирилл Александрович, Пинкевич Василий Юрьевич

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

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

Похожие темы научных работ по математике , автор научной работы — Богатырев Владимир Анатольевич, Булыгин Кирилл Александрович, Пинкевич Василий Юрьевич

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

Vector optimisation with programming in the environment of Mathcad at

Possibilitiesof use of means of programming in system of mathematical calculations Mathcad for the creation of a set of functions directed on support of the decision of problems of integervector optimisation. As object of optimisation the complex of cars and the units providing многоэтапный process of performance of works.

Текст научной работы на тему «Векторная оптимизация с программированием в среде Mathcad при комплексировании машин и агрегатов»

УДК 51-73;64-83;64.069.8

ВЕКТОРНАЯ ОПТИМИЗАЦИЯ С ПРОГРАММИРОВАНИЕМ В СРЕДЕ МАГИСАБ ПРИ КОМПЛЕКСИРОВАНИИ МАШИН И АГРЕГАТОВ

В.А. Богатырев1, К.А. Булыгин2, В.Ю. Пинкевич3

1 Санкт-Петербургский государственный университет сервиса и экономики

(СПбГУСЭ),

191015, Санкт-Петербург, ул. Кавалергардская, 7

2 3

, Национальный исследовательский университет информационных технологий, механики и оптики. 197101, Санкт-Петербург, пр. Кронверкский, 49

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

Ключевые слова: целочисленной векторной оптимизации, МаШса^ программирование, аддитивный критерий, надежность, среднее время пребывания.

VECTOR OPTIMISATION WITH PROGRAMMING IN THE ENVIRONMENT OF MATHCAD AT КОМПЛЕКСИРОВАНИИ CARS AND UNITS

V.A.Bogatyrev, Bulygin K.A, Pinkevich V. J

St. -Petersburg state university of service and economy (SPbSUSE), 191015, St.-Petersburg, street Kavalergardsky,7, lit. A National Research University of Information Technologies, Mechanics and Optics

197101, St.-Petersburg, avenue Kronverksky 49 Summary - Possibilitiesof use of means of programming in system of mathematical calculations Mathcad for the creation of a set of functions directed on support of the decision of problems of integervector optimisation. As object of optimisation the complex of cars and the units providing многоэтапный process of performance of works.

Keywords: integer vector optimisation, Mathcad, programming, additive criterion, reliability, average time of stay.

Введение

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

Задача оптимизации является векторной, её сложность обусловлена тем, что одно решение (альтернатива) может превосходить другую по одним показателям и уступать по другим [1].

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

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

Решение оптимизационной задачи с использованием встроенных функций Minimize(f, x1, x2,.. .yMaxmizetf, x1, x2,...) системы Mathcad сопряжено с трудностями получения целочисленного решения и определения параметров оптимизации над знаком суммы целевой функции- [2-11].

В предлагаемой статье рассматриваются возможности использования средств программирования в системе математических расчетов Mathcad для со-

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

Постановка задачи оптимизации

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

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

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

, т,

1, m2..

P(m

T (m, m

c (m, m,.

M)->max

при

M

) = ^пщ <C0.

, mM) -> min

M

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

,ти) -» гшп , при

C (mi, m2,. P(m, m,.

t (m, m,.

M

)*P0

и

м / — -*-0 •

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

При оптимизации будем считать заданными:

• интенсивность входного потока запросов X;

P(m, m2, m,..., m

m2

mi

• показатели надежности машин (вероятности безотказной работы)

Рх,Рг,Ръ,-,Рм ;

• средние времена выполнения запросов машинами на этапах обработки VI ,уг,уъ,...,ум\

• стоимости машин, выполняющих соответствующие этапы процесса обработкис,С,С,...,см .

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

Оценка частных показателей качества

Возможности системы по обработке запросов определим по среднему времени пребывания запросов в системе и по ее надежности [4, 10]. В простейшем случае каждый узел представим системой массового обслуживания типа М/М/1. Считая, что каждый запрос последовательно обслуживается одним из исправных узлов на каждом уровне системы, среднее время пребывания запросов в системе оценим как:

м

Т(щ,т2,пи,...тм) = ^~

2=1 ^

где (т,т2,т,...,тм) - число узлов на каждом уровне.

Надежность системы оценим по вероятности сохранения работоспособности, которая зависит от формулировки условия отказа (сохранения функционирования У).

Если система работоспособна, когда исправно не менее чем di узлов на i-м уровне системы, то надежность системы оценим как [5, 6]:

M

>=ZE Z-

ky —dy к-2 —

Кл Кг. к->

ХЛ Р2 Рз —Р;

■’-М.

I

км —d-м т2 к2

ту m2 /т?з ’ ’ ’ mM

X

м

(і - Рх т-к (1 - р2 Г"*2 (1 - Рз Г-*3 • • •(! - Рм г

(-1

к

к

м

где С*; =mJ./kiHmi ~kt)\

Особенность представленной функции заключается в том, что искомые параметры оптимизации находятся над знаком суммы, что затрудняет использование встроенных функций оптимизации Minimize /Maximize системы Mathcad

[5,11]. Программирования функций поиска целочисленного оптимума отдельных критериев ранее рассматривалось в работах [6, 11], в представленной же статье предлагается взаимосвязанный набор функций поддержки решения задач целочисленной векторной оптимизации .

Функции оценки частных показателей качества в системе Mathcad

Определим функцию для расчёта времени пребывания заявки в системе [12], интерпретируя каждый узел исследуемой структуры системой массового обслуживания типа M/M/1, как:

г <— О

for i е 0..last(k)

p<^--bj

к,

return go if p> 1 bi

r <— r + af ■ -

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

T(AJ-) :=

Функции для нахождения интенсивности максимального входного потока, выдерживаемого системой, и её стоимости имеют вид:

А(N) := min

N

ybj

C(N) :=N-c.

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

Crits(N) := stack(P(N), T(A,N), A(N), C(N), format{"{0},{1},{2}\ N^N^NJ) is _valid(Crits) := (Critsn > PO) a (Critsl < TO) a (Crits3 < CO)

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

s0..m0

sv.m j

RN:=

/<—0 for щ e for //,

for n2 e s2..m2

N <— stack(n(l, //,, n2)

Crits_N <— Crits(N) if is _ valid(Crits(n)

RN{,) <- Crits_N

/ ^— 7 + 1

RNT

Здесь Crits(N) и isjvalid(Crit) -вспомогательные функции, которые используются при вычислении значения матрицы RN.

Crits(k) вычисляет значения всех критериев данной системы (которая задаётся вектором к - число элементов на каждом уровне), в том числе имя системы (которое будет критерием для лица, принимающего решение) в виде строки.

is_valid(Crit) принимает вектор критериев и проверяет, удовлетворяют ли критерии заданным условиям (возвращает 1 или 0 - «да» или «нет»).

Матрица RN создаётся при помощи вложенных циклов for (число циклов соответствуе числу уровней системы) и состоит из векторов k (то есть системы) с числом устройств на каждом уровне от необходимого (здесь «1 ») до максималь-

r

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

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

rn2n(RN) :=Ж<4>.

/

rn2r(RN) := siibnialrix{RN, 0, rows(RN) —... ...-1, 0, cols(RN) — 2).

Функции нахождения области Парето

Для нахождения области Парето определим следующие вспомогательные функции:

for i е 0,.last(v) return 1 if Vt = z

0

is _ less_ betterii _ ait) := (i _ ait = 1) v (i _ ait = 3)

for i e 0..length-1 fill_vector(valiie,length):- Vi rvalue

V

Функция is__member(z, V) служит для проверки, является ли значение z элементом множества V (заданного в виде вектора). is_ less_ better возвращает 1 («истина»),

is _ member{z, V) :=

если критерий, индекс которого передается как параметр, имеет смысл «чем меньше, тем лучше», иначе возвращается

0 («ложь»): P и Л мы максимизируем, а T и C - минимизируем. fill_ vector возвращает вектор указанной длины, заполненный нужным значением.

Функция normalize нормализует значения по столбцам, поскольку в них находятся значения одного и того же критерия для разных систем. normalize{R) := for i е 0..cols(R) -

С <-

Cmin <— min(C\

Стах <— max(C\

С-

fill_vector(0.5, length(C))...

...if Cmin = Стах

С - Стіп , .

othem’ise

Стах - Cmin C<—1-C if is less_better{i)

R{,) <- C. '

Далее определены функции, упрощающие нахождение области Парето:

Функция is_pareto_worse(V, W, nV, nW) определяет, доминирует ли по Парето вектор W над вектором V, то есть, является ли вектор V однозначно худшим, чем W.

Функция is_pareto_bad(V, Cols, nV, N) находит, доминирует ли по Парето над вектором V хоть один другой вектор, то есть лишний ли вектор V в матрице Cols.

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

is _ pareto_ worse(V, W, n V, n W) :=

is _ pare to_ bad(V, Cols, n V, N) :=

pareto_names{R,N) :=

return 0 if nW -'bad' is_worse <— 0 for і є 0,.last(V) return 0 if Vf > Wf is _ worse <— 1 if Vt < W! trace("is _pareto_ worse:

{0} is worse than {1}",nV,nW) if is_worse is _ worse. for і є 0..cols(Cols) -1 return I if is_pareto_worse(V,Cols^,

...nV,Nt)

0.

Cols <— RT і _ good <— 0

for і є 0..cols{Cols) -1

V <- Cols{,)

Nf "bad" if is_pareto_bad(V,Cols,Nt,N) otherwise N_goodj good <^N,

і _ good <— / _ good+1 N _ good.

filter_names(R,N,N_new):- ...

Cols <— RT

і _new<— 0 for і є 0..last(N) if is _ member(N\, N _ new)

Cols_new^'-new^ <— CW.v(,>

7 _TieW<—i_new + 1

Cols _ newT •

Функция pareto_names(R, N) по заданной матрице критериев (R) и вектору имен систем (N) отбирает в новый вектор имена систем, входящих в область Парето. Функция filter__names(R, N, N_new) по этому вектору составляет матрицу критериев (“R_new”) систем, входящих в область Парето.

Функции для решения задач векторной оптимизации

Для нахождения оптимального решения при векторной оптимизации могут использоваться: минимаксный критерий; аддитивный критерий; мультипликативный критерий; метод отклонения от идеала; метод главного критерия; метод последовательных уступок и др.

Приведём определение функции для нахождения оптимального решения по аддитивному критерию.

additive(R, N, W) :=

Cols <— RT maxvaluei—со name<—""

for і є 0,.cols(Cols) -1 value<— W ■ Cols^

if value> max value max_value<- value name <— N,

name

Функция требует нормализованных значений, то есть в качестве аргумента R ей должна передаваться матрица критериев в области Парето, обработанная функцией normalize. Кроме того, в функцию передаётся вектор имён систем, которым принадлежат эти критерии, и вектор весов критериев W. Для удобства матрица критериев R представляется так, чтобы каждый столбец содержал характеристики одной системы. Функция скалярно умножает каждый столбец (вектор критериев системы) на вектор весов, получая значение аддитивного критерия для данной системы. После этого полученное значение аддитивного критерия сравни-

вается с максимальным на данный момент значением и, если новое значение больше максимального, то оно само становится максимальным, а его имя запоминается как возможный ответ. После перебора всех систем в переменной name оказывается имя системы с максимальным значением аддитивного критерия.

Здесь trace - встроенная функция Mathcad, которая выводит в окно отладки строку с нужными переменными при включенной опции Tools > Debug > Toggle debugging.

Пример оптимизации

Начальные условия задачи можно задать в таком виде:

b := stack(1, 4, 2) - время обслуживания;

p := stack(0.99, 0.9, 0.92) - надёжность;

c := stack(1, З, б) - стоимость.

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

Rate Names :=

minimax(R_pn, N _pn) additive^Rpn, N _pn, Weights) multiplicative(R_pn, N _pn, Weights) divergently N, Weights) main_crit(R, N) seq_concessioriR_pn, N_pn)

. stem(R _pn, N _pn, stem mins) .

Л'2,8,4'Л

"4,6,3"

"4,6,3"

"1,6,5"

"1,4,2"

"3,3,3"

V3A2V

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

names2crіts(Name.v, R, N) :=...

Cols <— RT

for і є 0,.cols(Cols) -1 j <— match( Namesi, N)() Crits^ <—Cols^

CritsT.

Получим характеристики выбранных систем:

names2crits{RateNames, R, TV) :=

P T Л

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

f 1 8.889 2 66'

0.999 9.028 l.5 52

0.999 9.028 l.5 52

0.99 9.289 l 61

0.984 l0 l 33

0.998 9.905 0.75 36

0.993 9.643 l 35,

C

минимаксный

Заключение

Таким образом, предложен набор функций для решения оптимизационной целочисленной задачи проектирования систем резервированных машин и агрегатов в среде Mathcad. В отличие от использования для оптимизации встроенных в Mathcad функций Minimize/Maximize, предлагаемый подход позволяет найти целочисленное решение, в том числе, если искомые переменные (параметры оптимизации) находятся над знаком суммы.

Литература

1. Ларичев О.И. Теория и методы принятия решений, а также Хроника событий в Волшебных странах: Учебник. - М.: Логос, 2002. - 392 с.: ил.

2. Богатырев В.А., Богатырев С.В. Критерии оптимальности многоустойчивых отказоустойчивых компьютерных систем//научно-технический вестник СПбГУ ИТМО, 2009 №5. (Выпуск 63) с .9298.

3. Богатырев В.А., Богатырев С.В, Лепеш Г.В. Критерии оптимальности объединения машин и агрегатов в системы //Технико-технологические проблемы сервиса № 2 .2009 с 30-35

4. Богатырев В.А., Богатырев С.В Надежность системы управления агрегатами и машинами коммунального хозяйства //Технико-

аддитивныи мультиплик ативный отклонения от идеала главного критерия последовательной уступки , STEM

технологические проблемы сервиса №4(6) 2008 с 23-27.

5. Богатырев В.А. Оценка надежности и оптимальное резервирование кластерных компьютерных систем "Приборы и системы. Управление, контроль, диагностика" №10 2006. С 18-21

6. Богатырев В.А. Оценка надежности и оптимальное резервирование кластерных компьютерных систем "Приборы и системы. Управление, контроль, диагностика" №10 2006. С 18-21

7. Богатырев В.А. Надежность функционально-распределенных резервированных структур с иерархической конфигурацией узлов // Изв. Вузов. Приборостроение. 2000. № 4. С. 67-70.

8. Богатырев В.А. Оценка вероятности безотказной работы функционально-распределенных вычислительных систем при иерархической структуре узлов // Изв. Вузов. Приборостроение. 2000. № 3.- С. 6770.

9. Богатырев В.А. Оценка надежности функционально избыточных многомашинных вычислительных систем с реконфигурацией на основе перераспределения функций //Электронное моделирование. 1994. № 2. С. 88-90.

10. Богатырев В.А. Оценка коэффициента сохранения эффективности отказоустойчивых систем из многофункциональных модулей // Методы менеджмента качества. 2001. № 9. С. 29-33.

11. Богатырев В. А., Осипов А. В. Целочисленная оптимизация многоуровневых компьютерных систем в среде Mathcad //Информационные системы и технологии теория и практика вып №2 СПб. ЛТА с24-30

12. Воскобойников Ю.Е., Воскобойникова Т.Е. Программирование в математическом пакете Mathcad (методические указания). - Новосибирск: НГАСУ, 1999. - 32 с.

'Богатырев Владимир Анатольевич, доктор технических наук, профессор кафедры Прикладных информационных технологий СПбГУСЭ, тел.:+7 911 7260226, e-mail :Vladimir .bogatyrev@ gmail.com;

2Булыгин Кирилл Александрович, студент кафедры Вычислительной техники СПбНИУ ИТМО, тел. +7 921 891 69 30, e-mail: kirill.bulygin@gmail.com;

ъПинкевич Василий Юрьевич, студент кафедры Вычислительной техники СПбНИУ ИТМО, email: vass258@yandex.ru.

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