Решение транспортных задач венгерским методом
Краткий обзор решения транспортных задач. Экономическая интерпретация поставленной задачи. Разработка и описание алгоритма решения задачи. Построение математической модели. Решение задачи вручную и с помощью ЭВМ. Анализ модели на чувствительность.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 16.06.2011 |
Размер файла | 844,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
GridB->Left=30;
GridB->Top=405
;
GridB->Height=25;
GridB->Width=256;
GridB->ColCount=Cm;
GridB->DefaultColWidth=35;
GridB->DefaultRowHeight=24;
GridB->FixedCols=0;
GridB->FixedRows=0;
GridB->RowCount=1;
GridB->ScrollBars=ssNone;
for(int i=0;i<Cm;i++)
GridB->Cells[i][0]=FormatFloat("",P[i]/100.0);
GridF=new TStringGrid(this);
GridF->Parent=Sheet;
GridF->Left=286;
GridF->Top=34;
GridF->Height=181;
GridF->Width=16;
GridF->ColCount=1;
GridF->DefaultColWidth=12;
GridF->DefaultRowHeight=24;
GridF->FixedCols=0;
GridF->FixedRows=0;
GridF->RowCount=Cn;
GridF->ScrollBars=ssNone;
for(int i=0;i<Cn;i++)
if(F[i]==1)
GridF->Cells[0][i]="+";
TStringGrid *GridG=new TStringGrid(this);
GridG->Parent=Sheet;
GridG->Left=30;
GridG->Top=13;
GridG->Height=16;
GridG->Width=256;
GridG->ColCount=Cm;
GridG->DefaultColWidth=35;
GridG->DefaultRowHeight=12;
GridG->FixedCols=0;
GridG->FixedRows=0;
GridG->RowCount=1;
GridG->ScrollBars=ssNone;
for(int i=0;i<Cm;i++)
if(G[i]==1)
GridG->Cells[i][0]="+";
}
void TForm1::Predv()
{
Sheet=new TTabSheet(this);
Grid=new TStringGrid(this);
GrX=new TStringGrid(this);
LabelC=new TLabel(this);
LabelX=new TLabel(this);
Sheet->Parent=this;
Sheet->PageControl=PageControl;
Sheet->Caption="Предв. этап";
Grid->Parent=Sheet;
Grid->Left=30;
Grid->Top=39;
Grid->Height=181;
Grid->Width=256;
Grid->DefaultColWidth=35;
Grid->DefaultRowHeight=24;
Grid->FixedCols=0;
Grid->FixedRows=0;
Grid->ScrollBars=ssNone;
Grid->RowCount=Cn;
Grid->ColCount=Cm;
for(int i=0;i<Cn;i++)
{
for(int j=0;j<Cm;j++)
{
Grid->Cells[j][i]=FormatFloat("",CS[i][j]/100.0);
}
}
LabelC->Parent=Sheet;
LabelC->Left=3;
LabelC->Top=20;
LabelC->Caption="C'";
GrX->Parent=Sheet;
GrX->Left=30;
GrX->Top=239;
GrX->Height=181;
GrX->Width=256;
GrX->DefaultColWidth=35;
GrX->DefaultRowHeight=24;
GrX->FixedCols=0;
GrX->FixedRows=0;
GrX->ScrollBars=ssNone;
GrX->RowCount=Cn;
GrX->ColCount=Cm;
for(int i=0;i<Cn;i++)
for(int j=0;j<Cm;j++)
GrX->Cells[j][i]=FormatFloat("",C[i][j]/100.0);
LabelX->Parent=Sheet;
LabelX->Left=3;
LabelX->Top=223;
LabelX->Caption="C0";
}
void TForm1::Ecviv()
{
Sheet=new TTabSheet(this);
Grid=new TStringGrid(this);
LabelC=new TLabel(this);
Sheet->Parent=this;
Sheet->PageControl=PageControl;
NKor++;
Sheet->Caption="Экв. пр. №"+IntToStr(NIter+1)+"."+IntToStr(NKor);
Grid->Parent=Sheet;
Grid->Left=30;
Grid->Top=39;
Grid->Height=181;
Grid->Width=256;
Grid->DefaultColWidth=35;
Grid->DefaultRowHeight=24;
Grid->FixedCols=0;
Grid->FixedRows=0;
Grid->ScrollBars=ssNone;
Grid->RowCount=Cn;
Grid->ColCount=Cm;
for(int i=0;i<Cn;i++)
{
for(int j=0;j<Cm;j++)
{
switch (N[i][j])
{
case 4:
Grid->Cells[j][i]="0*";
break;
case 3:
Grid->Cells[j][i]="0'";
break;
case 2:
Grid->Cells[j][i]=L'\u022a';
break;
case 1:
Grid->Cells[j][i]=L'\u0230';
break;
case 0:
Grid->Cells[j][i]="0";
case -1:
Grid->Cells[j][i]=FormatFloat("",C[i][j]/100.0);
break;
}
}
}
LabelC->Parent=Sheet;
LabelC->Left=3;
LabelC->Top=20;
LabelC->Caption="C"+IntToStr(NKor);
}
void __fastcall TForm1::CepochDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
TGridDrawState State)
{
TStringGrid* c=(TStringGrid*) Sender;
if (c->Name!="StoimPer")
{
UnicodeString Index;
Index=PageControl->ActivePage->Name;
Index.Delete(1,1);
nomer=Index.ToInt();
Graphics::TBitmap *pict = new Graphics::TBitmap();
switch (Cep[nomer][ARow][ACol])
{
case 12:
pict->LoadFromResourceID((unsigned int)HInstance,104);
break;
case 9:
pict->LoadFromResourceID((unsigned int)HInstance,102);
break;
case 7:
pict->LoadFromResourceID((unsigned int)HInstance,106);
break;
case 6:
pict->LoadFromResourceID((unsigned int)HInstance,105);
break;
case 5:
pict->LoadFromResourceID((unsigned int)HInstance,108);
break;
case 4:
pict->LoadFromResourceID((unsigned int)HInstance,109);
break;
case 3:
pict->LoadFromResourceID((unsigned int)HInstance,101);
break;
case 2:
pict->LoadFromResourceID((unsigned int)HInstance,107);
break;
case 1:
pict->LoadFromResourceID((unsigned int)HInstance,103);
break;
}
pict->Transparent = true;
c->Canvas->Draw(Rect.left,Rect.Top,pict);
pict->Free();
}
nomer=0;
}
//---------------------------------------------------------------------------
//!!
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if (StoimPer->ColCount == 8)
Button1->Enabled = false;
else Button1->Enabled = true;
if (StoimPer->ColCount == 4)
Button2->Enabled = false;
else Button2->Enabled = true;
if (StoimPer->RowCount == 8)
Button3->Enabled = false;
else Button3->Enabled = true;
if (StoimPer->RowCount == 4)
Button4->Enabled = false;
else Button4->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
StoimPer->ColCount++;
Potr->ColCount++;
Ogran->ColCount++;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
StoimPer->ColCount--;
Potr->ColCount--;
Ogran->ColCount--;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
StoimPer->RowCount++;
Zapas->RowCount++;
Ogran->RowCount++;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
StoimPer->RowCount--;
Zapas->RowCount--;
Ogran->RowCount--;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NAboutClick(TObject *Sender)
{
MessageDlg(L"Костенко И-23 Венгерский метод.", mtConfirmation,
TMsgDlgButtons() << mbOK, 0);
}
//---------------------------------------------------------------------------
Подобные документы
Решение задачи линейного программирования симплекс-методом: постановка задачи, построение экономико-математической модели. Решение транспортной задачи методом потенциалов: построение исходного опорного плана, определение его оптимального значения.
контрольная работа [118,5 K], добавлен 11.04.2012Графическое решение задач. Составление математической модели. Определение максимального значения целевой функции. Решение симплексным методом с искусственным базисом канонической задачи линейного программирования. Проверка оптимальности решения.
контрольная работа [191,1 K], добавлен 05.04.2016Обзор алгоритмов методов решения задач линейного программирования. Разработка алгоритма табличного симплекс-метода. Составление плана производства, при котором будет достигнута максимальная прибыль при продажах. Построение математической модели задачи.
курсовая работа [266,4 K], добавлен 21.11.2013Построения математической модели с целью получения максимальной прибыли предприятия, графическое решение задачи. Решение задачи с помощью надстройки SOLVER. Анализ изменений запасов ресурсов. Определение пределов изменения коэффициентов целевой функции.
курсовая работа [2,4 M], добавлен 17.12.2014Изучение и укрепление на практике всех моментов графического метода решения задач линейного программирования о производстве журналов "Автомеханик" и "Инструмент". Построение математической модели. Решение задачи с помощью электронной таблицы Excel.
курсовая работа [663,9 K], добавлен 10.06.2014Решение в среде Microsoft Excel с помощью программной модели "Поиск решения" транспортной задачи, системы нелинейных уравнений, задачи о назначениях. Составление уравнения регрессии по заданным значениям. Математические и алгоритмические модели.
лабораторная работа [866,6 K], добавлен 23.07.2012Методы решения задач линейного программирования: планирования производства, составления рациона, задачи о раскрое материалов и транспортной. Разработка экономико-математической модели и решение задачи с использованием компьютерного моделирования.
курсовая работа [607,2 K], добавлен 13.03.2015Построение математической модели. Выбор, обоснование и описание метода решений прямой задачи линейного программирования симплекс-методом, с использованием симплексной таблицы. Составление и решение двойственной задачи. Анализ модели на чувствительность.
курсовая работа [100,0 K], добавлен 31.10.2014Анализ решения задачи линейного программирования. Симплексный метод с использованием симплекс-таблиц. Моделирование и решение задач ЛП на ЭВМ. Экономическая интерпретация оптимального решения задачи. Математическая формулировка транспортной задачи.
контрольная работа [196,1 K], добавлен 15.01.2009Алгоритм решения задач линейного программирования симплекс-методом. Построение математической модели задачи линейного программирования. Решение задачи линейного программирования в Excel. Нахождение прибыли и оптимального плана выпуска продукции.
курсовая работа [1,1 M], добавлен 21.03.2012