Контрольная работа: Исследование операций
Система А:
Система В:
Перепишем систему А:
4)Введем новые переменные
V={v1,v2}≥0; W={w1,w2}≥0
в систему А для того, чтобы неравенства превратить в равенства:
Тогда
.
Следовательно, система В примет вид:
- это условия дополняющей нежесткости.
5) Решим систему А с помощью метода искусственных переменных.
Введем переменные Y={y1; y2} в 1 и 2 уравнения системы
и создадим псевдоцелевую функцию Y=My1+My2→min
Y’=-Y= -My1-My2→max.
В качестве свободных выберем х1, х2, v1, v2, u1, u2;
а в качестве базисных y1, y2, w1, w2.
Приведем систему и целевую функцию к стандартному виду, для построения симплекс-таблицы:
Решим с помощью симплекс-таблицы. Найдем опорное решение:
Примечание: вычисления производились программно, см Приложение
b | x1 | x2 | u1 | u2 | v1 | v2 | ||||||||
Y' | -6M | -12M | -4M | -M | 9M | M | M | |||||||
y1 | 4,5 | 10 | 2 | -2 | -5 | -1 | 0 | |||||||
y2 | 1,5 | 2 | 2 | 3 | -4 | 0 | -1 | |||||||
w1 | -9 | -2 | 3 | 0 | 0 | 0 | 0 | |||||||
w2 | -13 | -5 | 4 | 0 | 0 | 0 | 0 | |||||||
b | w1 | x2 | u1 | u2 | v1 | v2 | ||||||||
Y' | 48M | -6M | -22M | -1M | 9M | 1M | 1M | |||||||
y1 | -40,5 | 5 | 17 | -2 | -5 | -1 | 0 | |||||||
y2 | -7,5 | 1 | 5 | 3 | -4 | 0 | -1 | |||||||
x1 | 4,5 | -0,5 | -1,5 | 0 | 0 | 0 | 0 | |||||||
w2 | 9,5 | -2,5 | -3,5 | 0 | 0 | 0 | 0 | |||||||
b | w1 | x2 | y1 | u2 | v1 | v2 | ||||||||
Y' | 68,25M | -8,5M | -30,5M | -0,5M | 11,5M | 1,5M | 1M | |||||||
u1 | 20,25 | -2,5 | -8,5 | -0,5 | 2,5 | 0,5 | 0 | |||||||
y2 | -68,25 | 8,5 | 30,5 | 1,5 | -11,5 | -1,5 | -1 | |||||||
x1 | 4,5 | -0,5 | -1,5 | 0 | 0 | 0 | 0 | |||||||
w2 | 9,58 | -2,5 | -3,5 | 0 | 0 | 0 | 0 | |||||||
b | w1 | x2 | y1 | y2 | v1 | v2 | ||||||||
Y' | 0 | 0 | 0 | M | M | 0 | 0 | |||||||
u1 | 5,413043 | |||||||||||||
u2 | 5,934783 | |||||||||||||
x1 | 4,5 | |||||||||||||
w2 | 9,5 | |||||||||||||
Т. о, w1=x2=y1=y2=v1=v2=0; u1=5,413043; u2=5,934783; x1=4.5; w2=9.5.
б) Условия дополняющей нежесткости не выполняются (u2w2≠0), значит решения исходной задачи квадратичного программирования не существует.
ОТВЕТ: не существует.
Приложение
#include <math.h>
#include <stdio.h>
main()
{
int i,j,k,m;
double h,n,a[5][7],b[5][7];
clrscr();
printf ("Введите числа матрицы А ");
for (i=0; i<5; i++){for(j=0; j<7; j++) {scanf ("%lf",&n); a[i][j]=n;}}
printf ("Введите координаты разрешающего элемента\n");
scanf("%d",&k) ;
scanf ("%d",&m);
printf (" матрицa A \n");
for (i=0; i<5; i++)
{for(j=0; j<7; j++) printf (" %lf",a[i][j]);printf ("\n");}
printf (" координаты \n ");
printf("%d %d",k,m) ;
h=1/a[k][m];
b[k][m]=h;
printf ("\n h=%lf",h);
for (i=0; i<7; i++)
{ if (i!=m) b[k][i]=a[k][i]*b[k][m]; }
for (i=0;i<5; i++)
{ if (i!=k) b[i][m]=-a[i][m]*b[k][m];}
for (i=0;i<5;i++)
{
for (j=0;j<7;j++)
if ((i!=k)&&(j!=m)) b[i][j]=a[i][j]+a[k][j]*b[i][m];
}
printf ("\n результат ");
printf (" матрицa B \n");
for (i=0; i<5; i++)
{for(j=0; j<7; j++) printf (" %lf",b[i][j]);printf ("\n");}
getch();
}