Алгоритм программы поиска решения многокритериальной булевой задачи по геометрической интерпретации (с количеством критериев m <= 4)
Автор: Замкова Л.И.
Журнал: Международный журнал гуманитарных и естественных наук @intjournal
Рубрика: Технические науки
Статья в выпуске: 1-2 (88), 2024 года.
Бесплатный доступ
В статье предлагается концептуальное описание метода поиска решения многокритериальной булевой задачи по геометрической интерпретации. Приводится блок-схема алгоритма программы на языке С++, основу которого составляет этот метод. Формулируется индивидуальная исходная задача и определяется её оптимальное решение в программном пакете lp_solve. Она используется в качестве тестирующего примера программы. В конце статьи представлены скриншоты результата работы программы на тестирующем примере.
Многокритериальная булева задача, алгоритм программы, метод решения, результаты работы программы, с++
Короткий адрес: https://sciup.org/170203153
IDR: 170203153 | DOI: 10.24412/2500-1000-2024-1-2-142-149
Текст научной статьи Алгоритм программы поиска решения многокритериальной булевой задачи по геометрической интерпретации (с количеством критериев m <= 4)
Концептуальное представление метода решения многокритериальной булевой задачи на основе геометрической интерпретации приводится в работе [1]. Разработка алгоритма программы на основе метода направлена на поиск практических приме-
нений рассматриваемой задачи. Что является продолжением исследований в данном направлении.
Рассмотрим постановку многокритериальной булевой задачи в общем виде (1):
С^х) = с 11 • х1 + с 12 • х2 + ••• + с 1п ‘ хп ^ max
С2(х) = С 21 • X i + С 22 • х2 + ••• + с2п • х „ ^ max
Ст(х) = ст1 • X1 + ст2 • X2 + ••• + cmn • хп ^ max(1)
«1(х) = «11 • х 1 + «12 • х2 + ••• + « 1п • хп =b
«2(х) = «21 • х1 + «22 • х2 + ••• + «2п ‘ хп =Ь х£ е {0,1}, i = 1,2,_,п
Далее приведем концептуальное описание метода решения задачи (1) по геометрической интерпретации. Для этого сначала введём переменные:
М1 = С 11 • х1 + с 12 • х2 + ••• + с1п • хп
« 2 = с 21 • х 1 + с 22 • х 2 + ••• + с 2п ‘ х п
« т ст1 • х1 + ст2 ‘ х2 + ••• + с mn ‘ хп
« т+1 = « 11 ‘ х 1 + « 12 • х 2 + ••• + « 1п ‘ х п
« т+2 = « 21 ‘ х 1 + « 22 • х 2 + ••• + « 2п ‘ х п
На основании системы (2) каждому вектору хii = 1,2,„ ^ , 2п множества решений задачи (1) X = {х1, х2, .•. , х2 п } мощности равной 2п ставятся в соответствие т троек чисел ( « 1/ « т+1 ,М т+2) , ( U 2 ,U m+1 ,U m+2) ,
•", (ит,ит+1,«т+2). Далее введём множества ____и1={(«', «т+1, «т+2)},у = 1,2п, i = 1, т. Изобразим на рис. 1 элементы множества U1, на рис. 2 -U2 , на рис. 3 - ит. Построение элементов мно- жесте Ul, i = 3, т — 1 подразумевается по умолчанию.



Изобразим на рисунках прямую линию С, на которой все точки соответствуют элементам X, удовлетворяющим ограничениям « 1 (х) и «2(х) задачи (1). Изобра-
зим также эти ограничения в виде прямых
линий. Определим т точек, расположен-
ных на
на всех
Xj G X дачи
C вида (u^u^u^i^ ^т рисунках. Таким образом, элемент
будет (1).
C 2 (xjf)’ •",
оптимальным решением за-
Следовательно, С1 (xj^,
С т (x j f )
–
максимальные
значения частных критериев задачи (1).
Далее на основании концептуального описания метода решения задачи (1) представим, в виде блок-схемы, соответствующий разработанный алгоритм программы поиска решения этой задачи. В программе
используются следующие переменные, массивы и файлы:
-
- n – размерность задачи (1);
-
- m – количество критериев задачи (1);
-
- i – параметр цикла;
-
- файл Fileitog.txt – множество X мощности |2n| решений задачи (1);
-
- вектор x размерности n с элементами int – текущий элемент множества X;
-
- вектор a1 размерности n с элементами double – коэффициенты ограничения a1(x);
-
- вектор a2 размерности n с элементами double – коэффициенты ограничения a2(x);
-
- вектор размерности 4 векторов типа double размерности n – матрица коэффициентов критериев C(j, i), где j=1,2,…,m, i=1,2,…,n;
-
- файл A1.txt – коэффициенты ограничения a1(x);
-
- файл A2.txt – коэффициенты ограничения a2(x);
-
- файл C1.txt – матрица C(j, i), где j=1,2,…,m, i=1,2,…,n коэффициентов критериев;
-
- u_m1 – переменная для хранения
Um+1 = «11 • X1 + «12 • X2 + ... + «1„ • x„;
-
- u_m2 – переменная для хранения
Um+Z = «21 • X1 + «22 ■ X2 + ... + «2n ■ X„;
-
- u – переменная для хранения
Z”=1 Cj,i * Xi,где j = 1 V j = 2 Vj = 3 V j = 4.
Блок-схема алгоритма программы представлена на рис. 4-7. Рисунки 4 и 5 иллюстрируют функционал метода But-ton1_Click. В зависимости от заданного количества критериев m≤4 из него вызываются методы pictureBox1_Paint. picture-Box2_Paint, pictureBox4_Paint, pictureBox5_Paint. Далее на рисунках 6 и 7
представлен функционал метода pictureBox1_Paint. Этот метод строит геометрическую интерпретацию по первому критерию задачи (1) (см. рис. 1). Алгоритм в основе методов pictureBox2_Paint, pic-tureBox4_Paint, pictureBox5_Paint аналогичный алгоритму pictureBox1_Paint, поэтому блок-схемы для них не приводятся.


Рис. 5
Рис. 4


Рис. 7
Программа написана на языке программирования С++ в системе программирования Visual Studio 2022. Для тестирования авторской программы в пакете lp_solve был подготовлен контрольный пример задачи (1) с известным оптимальным реше- нием (рис. 8-9). Для решения задачи (3) в lp_solve была выполнена свертка четырех критериев с весовыми коэффициентами 0,25. Индивидуальная задача (1) для контрольного примера, следующая:
С1(х) = 2 • х1 + 3 • х2 - 5,6 • х3 — 2,8 • х4 ^
С2(х) = 0,8 • х1 + 2 • х2 + 5,2 • х3 — 1 • х4 ^
С3 (х) = 2, 5 • х1 + 2,4 • х2^
С4(х) = 5,2 • х1 + 6 • х2 — 3,4 • х3 ^ max а1(х) = 2 • х1 + 5 • х2 + 3 • х3 — 2 • х4 = 3
а2(х) = 3 • х1 — 4 • х2 + 2,5 • х3 + 1 • х4 = —3
х^{0,1},i = 1,2,3,4
0 LPSolve IDE - 5,5.2.5 - C:\Users\user\DocumentsVHCK: О\статья 2024\контр пример,Ip
□
Idualloop: Objective at iter towdual: Infeasibility sum
-1.40793264521 irl
koidual: Entering column 5, reduced cost -@.4893
File Edit Search Action View Options Help o-eu » gleM * I* a я«if
MAJOR
3 leaves to LOWER,
serformiteration: Variable 5 entered Derformiteration: Feasibility gap at dualloop: Objective at iter rowdual: Infeasibility sum
basis at i I
Й Source Щ Matrix Я) Options A) Result
2xl+5x2+3x3-2x4<—3;
3xl-4x2+2.5x3+lx4<=-3;
telaxed solution
Optimal solution check_solution: Constraint checksolution: Constraint
-le+030
I*
telative numeric accuracy ||*|| =
Jnacceptable accuracy -Found (worse than requires
MEMO: lp_solve version 5.5.2.5 for 32 bit OS, t In the total iteration count 3, 1 (33.3%) There were 0 refactorizations, 0 triggerer ... on average 2.0 major pivots per refai The largest [LUSOL V2.2.1.9] fact(B) had !
Time to load data was ... 1.238 seconds in
was 1, 0.1x NIP ordt inf-norm is 5, with 0.050 seconds, presc simplex solver, in 1
Log Messages
NOD:0
TME: 1,30
Рис. 8

32:1 ITE 2 IPS: 3 INV: 2 NOD:0 TME: 1,30
Рис. 9
Программа определила решение для контрольного примера за 18 секунд. Результат работы программы представлен на рисунках 10 и 11.

Рис. 10

Рис. 11
Разработка программы поиска решения общей задачи (1) дает возможность поиска практического применения этой задачи.
Список литературы Алгоритм программы поиска решения многокритериальной булевой задачи по геометрической интерпретации (с количеством критериев m <= 4)
- Замкова Л.И. Геометрия многокритериальных оптимизационных задач. Монография. - Москва: Спутник +, 2022. - 102 с. EDN: UVRDHU