Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение
ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Математический факультет
Кафедра математического обеспечения информационных систем
Отчет
по лабораторной работе № 3
по дисциплине «Методы оптимизации»
Решение задач линейного программирования симплекс – методом
Руководитель:______Луговскова Ю.П. «___»_______________________2010 г. Исполнитель: студент гр. 08МОС(у) ___________________Ледовского А.С. «___»_______________________2010 г. |
Оренбург 2010
Постановка задачи:
Найти максимум функции
Приограничениях
Дана функция:
Графический метод:
Точка максимума является (0;7)
Значение функции в данной точке = (0*(-1)+1*7) = 7
Симплекс – метод
Приведём данную функцию к каноническому виду
Матрица A =
Б={}
0 x3 2 1.00 -1.00 1.00 0.00 2.00
0 x4 7 2.00 1.00 0.00 1.00 2.00
--------------------------------------------
-1.00 1.00 0.00 0.00
-2.00 -1.00 1.00 -1.00 -0.00
--------------------------------------------
-1 x1 -2 -1.00 1.00 -1.00 -0.00 -2.00
0 x4 9 3.00 0.00 1.00 1.00 -2.00
--------------------------------------------
-2.00 2.00 -1.00 0.00
-2.00 -1.00 1.00 -1.00 -0.00
--------------------------------------------
1 x2 -2 -1.00 1.00 -1.00 -0.00 9.00
0 x4 9 3.00 0.00 1.00 1.00 9.00
--------------------------------------------
0.00 0.00 1.00 0.00
9.00 3.00 0.00 1.00 1.00
--------------------------------------------
1 x2 7 2.00 1.00 0.00 1.00
0 x3 9 3.00 0.00 1.00 1.00
-3.00 0.00 0.00 -1.00
б.п. {0 7 9 0 }
(.)max = (0;7)
function(.)max = 7
Код программы:
// lab3.cpp : Defines the entry point for the console application.
//
#include"stdafx.h"
#include<iostream>
usingnamespace std;
constint n=4;
constint nn=2;
double A[2][n];
double A1[2][n];
int bp[2];
double Y0[2];
double mini;
double delta[n];
double e[n+1];
double C[4];
int bp_[n];
int maxi(double mas[n])
{
double mm=-1000;
int no;
for (int i=0;i<n;i++)
{
if (mas[i]>mm) {mm=mas[i];no=i;}
}
return no;
}
bool exitt(double mas[n])
{
for (int i=0;i<n;i++)
{
if (mas[i]>0.001) {return 0;}
}
return 1;
}
bool neogr(double mas[nn][n])
{
int k=0;
for (int i=0;i<nn;i++)
{
k=0;
for (int j=0;j<n;j++)
{
if (mas[i][j]<1) {k++;}
}
if (k==n) returntrue;
}
returnfalse;
}
int bp_free()
{
for (int i=0;i<n;i++)
{
if (bp_[i]==0) return i;
}
cout << "konec!!!"<<endl;
for (int i=0;i<n;i++)
{bp_[i]=0;}
return 0;
}
void update(double mas[nn][n],double mas1[nn][n])
{
for (int i=0;i<nn;i++)
for (int j=0;j<n;j++)
{mas[i][j]=mas1[i][j];}
}
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
cin >> C[0];
cin >> C[1];
C[2]=0;
C[3]=0;
// считали матрицу А
for (int i=0;i<nn;i++)
{
for (int j=0;j<n;j++)
{cin >> A[i][j];bp_[j]=0;}
cin >> Y0[i];
}
bp[0]=3;
bp_[2]=0; // помечаем что в 3 были
bp[1]=4;
bp_[3]=0; // помечаем что в 4 были
int nomer=0;
// находимминимум
if (((Y0[0]/A[0][0])>0)&&((Y0[0]/A[0][0])<(Y0[1]/A[1][0]))) {mini=(Y0[0]/A[0][0]);}
else {mini=(Y0[1]/A[1][0]);nomer=1;}
// находимдельта
for (int i=0;i<n;i++)
{delta[i]=C[i]-(C[bp[0]-1]*A[0][i]+C[bp[1]-1]*A[1][i]);}
int s=maxi(delta); // номер ведущего столбца
double v_e=A[nomer][s];
// вычмсление строки ебсилон
e[0]=Y0[nomer]/v_e;
for (int i=0;i<n;i++)
{
e[i+1]=A[nomer][i]/v_e;
}
// вывод
for (int i=0;i<nn;i++)
{
printf("%2.0f",C[bp[i]-1]);
cout<<" "<<"x";
printf("%1i",bp[i]);
cout<<" ";
printf("%2.0f",Y0[i]);
cout<<" ";
for (int j=0;j<n;j++)
printf("%7.2f",A[i][j]);
printf("%7.2f",mini);
cout << endl;
}
cout<<"--------------------"<<endl;
cout << " ";
for (int j=0;j<n;j++)
printf("%7.2f",delta[j]);
cout <<
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.