Багатокритерiальна задача лiнiйного програмування

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



iсний вектор значень змiнних для багатокритерiальноСЧ задачi СФ лiнiйною комбiнацiСФю оптимальних векторiв кожноСЧ функцiСЧ мети. Це сума векторiв, що помноженi кожен на свiй ваговий коефiцiСФнт:

Пiдставивши цей компромiсний вектор в кожну функцiю мети багатокритерiальноСЧ задачi отримуСФмо компромiснi значення цих функцiй.

3. Вирiшування

Рiвняння, нерiвностi та функцiСЧ записуються у таблицю:

Розвязування задачi ЛП для кожноСЧ функцiСЧ мети окремо:

Пошук оптимального розвязку для функцiСЧ Z1

Задача для симплекс-метода з функцiСФю Z1

Незалежних змiнних немаСФ.

Виключення 0-рядкiв: немаСФ.

Опорний розвязок: готовий (усi вiльнi члени невiдСФмнi).

Пошук оптимального розвязку:

Результат для прямоСЧ задачi:

У рядку-заголовку:

x1 = 0;

y2 = 0;

y1 = 0;

y3 = 0;

У стовпцi-заголовку:= 2,33333333333333;= 4,55555555555556;= 1,88888888888889;

Функцiя мети: Z1 = 11,4444444444444.

Пошук оптимального розвязку для функцiСЧ Z2

Функцiю Z2, що мiнiмiзуСФться, замiнили на протилежну СЧй - Z2, що максимiзуСФться. Запис для вирiшування симплекс-методом максимiзацiСЧ

Незалежних змiнних немаСФ.

-рядкiв немаСФ.

Опорний розвязок: готовий.

Пошук оптимального:

Пiсля отримання розвязку максимiзацiСЧ для - Z2, взято протилежну до неСЧ функцiю Z2, i отримано розвязок мiнiмiзацiСЧ для неСЧ

Результат для прямоСЧ задачi:

У рядку-заголовку:

x1 = 0;

y2 = 0;

x3 = 0;

y3 = 0;

У стовпцi-заголовку:= 14;= 5,33333333333333;= 0,333333333333333;

Функцiя мети: Z2 = -10,3333333333333.

Пошук оптимального розвязку для функцiСЧ Z3

Задача для симплекс-методу максимiзацiСЧ

Незалежних змiнних i 0-рядкiв немаСФ.

Опорний розвязок вже готовий.

Пошук оптимального:

Результат для прямоСЧ задачi:

У рядку-заголовку:

x1 = 0;

x2 = 0;

y1 = 0;

x4 = 0;

У стовпцi-заголовку:= 3,33333333333333;= 1,66666666666667;= 18,6666666666667;

Функцiя мети: Z3 = 3,33333333333333.

Пiдрахунок мiр неоптимальностi

Матриця мiр неоптимальностi та рядок функцiСЧ мети, стовпець вiльних членiв i заголовки задачi ЛП, що будуть використанi далi

До мiр додана найбiльша за модулем мiра . Матриця у формi задачi ЛП

Розвязування iгровоСЧ задачi:

Незалежних змiнних немаСФ.

-рядкiв немаСФ.

Опорний розвязок вже готовий.

Пошук оптимального розвязку:

Результат для двоСЧстоСЧ задачi (вiдносно розв'язаноСЧ):

У рядку-заголовку:= 0,402684563758389;= 0,174496644295302;= 0,319280641167655;

У стовпцi-заголовку:

v3 = 0;

v2 = 0;

u2 = 0;

Функцiя мети: Z = 0,577181208053691.

############

Ваговi коефiцiСФнти (Li[Func]=ui/W(U)):[Z1] = 0,697674418604651[Z2] = 0[Z3] = 0,302325581395349

Компромiснi значення змiнних= 0= 3,17829457364341= 2,63565891472868= 1,31782945736434

Компромiснi значення функцiй мети:= 8,9922480620155= -2,4031007751938= 0,775193798449612

Вирiшування закiнчено. Успiшно.

4. Текст програми

Модуль опису класу, що виконуСФ роботу з задачами ЛП:

unit UnMMDOpr;

SysUtils, Types, Classes, Forms, Controls, StdCtrls, Dialogs, Graphics,, UControlsSizes, Menus;sc_CrLf=Chr(13)+Chr(10);_Minus='-';_Plus='+';_Equal='=';_NotEqual='<>';_Mul='*';_Space=' ';_KrKm=';';_BrOp=' ('; sc_BrCl=')';

_XVarName='x';_YFuncName='y';_DualTaskFuncNameStart='v';_DualTaskVarNameStart='u';

_RightSideValsHdr='1';

_DestFuncHdr='Z';_DualDestFuncHdr='W';

_TriSpot='тАж'; sc_Spot='.';_DoubleSpot=':';_DoubleQuot='"';

_DependentColor:TColor=$02804000;_IndependentColor:TColor=$02FF8000;_RightSideColColor:TColor=$02FFD7AE;_HeadColColor:TColor=$02808040;_FuncRowColor:TColor=$02C080FF;_DestFuncToMaxNameColor:TColor=$024049FF;_DestFuncToMinNameColor:TColor=$02FF4940;_DestFuncValColor:TColor=$02A346FF;_ValInHeadColOrRowColor:TColor=$025A5A5A;

_SolveColColor:TColor=$02AAFFFF;_SolveRowColor:TColor=$02AAFFFF;_SolveCellColor:TColor=$0200FFFF;

_FixedRows=2; bc_FixedCols=1;

{Кiлькiсть стовпцiв перед стовпцями змiнних та пiсля них,

якi можна редагувати, для редагування таблицi задачi

лiнiйного програмування (максимiзацiСЧ чи мiнiмiзацiСЧ функцiСЧ):}_LTaskColsBeforeVars=1; bc_LTaskColsAfterVars=1;_LTaskRowsBeforeVars=bc_LTaskColsBeforeVars;

_LineEqM1ColsBeforeVars=1;_LineEqM2ColsAfterVars=1;

_NotColored=-1;

_Negative=-1; bc_Zero=0; bc_Positive=1;

_MenuItemColorCircleDiameter=10;

_DependentVar='Залежна змiнна (>=0)';_IndependentVar='Незалежна змiнна (будь-яке дiйсне число)';_FreeMembers='Вiльнi члени (правi сторони рiвнянь)';_InequalFuncName='Назва функцiСЧ умови-нерiвностi';_DestFuncCoefs='Рядок коефiцiСФнтiв функцiСЧ мети';_DestFuncName='Назва функцiСЧ мети';_DestFuncToMaxName=sc_DestFuncName+', що максимiзуСФться';_DestFuncToMinName=sc_DestFuncName+', що мiнiмiзуСФться';_OtherType='РЖнший тип';_DestFuncVal='Значення функцiСЧ мети';_ValInHeadColOrRow='Число у заголовку таблицi';_SolveCol='Розв''язувальний стовпець';_SolveRow='Розв''язувальний рядок';_SolveCell='Розв''язувальна комiрка';

=Extended; {тип дiйсних чисел, що використовуються}

=-1..1;

{РЖдентифiкатор для типу елемента масиву чисел та iмен змiнних.

Типи змiнних: залежнi, незалежнi, функцiСЧ (умови-нерiвностi).

Залежнi змiннi - це змiннi, для яких дiСФ умова невiд'СФмностi:}=(bc_IndependentVar, bc_DependentVar, bc_FuncVal, bc_Number,_DestFuncToMax, bc_DestFuncToMin, bc_OtherType);=set of THeadLineElmType;

=String[7]; {короткий рядок для iменi змiнноСЧ}=record {Елемент-число або назва змiнноСЧ:}:THeadLineElmType;byte of

: (AsNumber:TWorkFloat); {для запису числа}

: (AsVarName:TVarNameStr; {для запису назви змiнноСЧ}

{Для запису номера змiнноСЧ по порядку в умовi задачi (в рядку

чи стовпцi-заголовку):}: Integer;

{Вiдмiтка про те, що змiнна була у рядку-заголовку (True), або

у стовпцю-заголовку (False):}: Boolean);;

=array of TValOrName; {тип масиву для заголовкiв матрицi}

=array of TWorkFloat; {тип масиву дiйсних чисел}=array of TFloatArr; {тип матрицi чисел}

=array of Byte; {масив байтiв -