Автор работы: Пользователь скрыл имя, 30 Мая 2013 в 17:20, курсовая работа
Целью данной работы является проектирование и разработка информационной системы, которая помогала бы в кратчайшие сроки принять оптимальное решение о капиталовложениях для целей реконструкции заводов отрасли.
Для достижения поставленной цели, выбирается метод решения, далее составляется подробный алгоритм работы. Для ЭВМ на основе алгоритма разрабатывается программа, после чего проводится количественное исследование с помощью ручных и машинных расчетов.
Введение …………………………………………………………………………………….4
1 Постановка задачи……………………………………………………………………….5
Качественное описание исследуемой операции…………………………………5
Математическая постановка задачи………………………………………………..6
2 Алгоритмизация решения задачи……………………………………………….…….8
Анализ методов решения…………………………………………………………….8
Задача о распределении капиталовложений……………………………………12
Проектирование сценария диалога………………………………………………..14
Метод оптимизации реконструкции заводов отрасли…………………………..16
Численные эксперименты……………………………………………………………21
Ручная реализация метода динамического программирования для задачи реконструкции отрасли……………………………………………………………….21
Машинные эксперименты……………………………………………………………24
Заключение………………………………………………………………………………….25
Список литературы…………………………………………………………………………26
Приложение – листинг программы……………………………………………………27
{
BaseTable->Edit();
BaseTable->Append();
for(sj=0;sj<StringGrid1->
BaseTable->Fields[sj]->Value=
StrToInt( StringGrid1->Cells[sj+1][si+1]
BaseTable->Post();
}
BaseTable->Close();//Закрытие файла базы
//Уничтожение объекта описывающего структуру базы
delete BaseTable;
}
}
//----------------------------
{
Close();
}
//----------------------------
{
//---- Add code to show program's About Box ----
AboutBox->ShowModal();
}
//----------------------------
{
AnsiString *masi=NULL;
masi=(AnsiString *)calloc(j*2,sizeof(
ProgressBar1->Position=0;
ProgressBar1->Max=j-1;
ProgressBar1->Step=1;
for (i=1;i<j;i++)
StringGrid1->Cells[0][i]=i;
for (i=1;i<j;i++){//j1
masi[i]=StringGrid1->Cells[i][
StringGrid1->Cells[i][0]=0;
}
for (i=1;i<j;i++){
for (k=1;k<j1;k++){
StringGrid1->Cells[i][k]=
+rand()%StrToInt(Edit3->Text)+
}
ProgressBar1->StepIt();
}
for (i=1;i<j;i++){StringGrid1->
free(masi);
}
//----------------------------
{
dl1=1;
dl=1;
for (i=1;i<5;i++){
if (Edit1->Text[i]!='\x0') {dl++;} else {break;}
if ((Edit1->Text[i]>='0')&(Edit1-
else {return;}
}
for (i=1;i<5;i++)
if ((Edit2->Text[i]!='\x0')&((
{dl1++;} else {break;}
j=StrToInt(Edit1->Text);
j1=StrToInt(Edit2->Text);
j1++;
j++;
if (dl!=1) {StringGrid1->RowCount=j1;//j1
StringGrid1->ColCount=j;//j
for (i=1;i<j+1;i++) StringGrid1->Cells[i][0]=
for (i=1;i<j1+1;i++) StringGrid1->Cells[0][i]=i;
}
for (k=1;k<j1+1;k++)
for (i=1;i<j+1;i++)
StringGrid1->Cells[i][k]=0;
}
//----------------------------
{
int smax,mmax,ii,et,ch,ii1,res;//,
int *ok=NULL;
int etap=0;
int *per=NULL;
int *w=NULL;
AnsiString *masi=NULL;
masi=(AnsiString *)calloc(j*20,sizeof(
per=(int *)calloc(j*j1*4,sizeof(int));/
w=(int *)calloc(j*j1*4,sizeof(int));/
ok=(int *)calloc(j*2+j1*2,sizeof(int))
for (i=1;i<j;i++){//<
masi[i]=StringGrid1->Cells[i][
StringGrid1->Cells[i][0]=0;
}
stepp=0;
for (i=1;i<j1;i++)//j1
w[1*j+i]=StrToInt(StringGrid1-
mmax=w[1*j+1];
for(ii=2;ii<j;ii++)//j1
if ((w[1*j+ii]!=0) & (w[1*j+ii]>mmax)) {mmax=w[1*j+ii];}
for(i=0;i<j;i++) per[stepp*j+i]=i;//j1
stepp++;
//stepp++;
smax=0;
ii1=0; //mmax=0;
for(et=2;et<j;et++){//Этап//j
for(i=1;i<j1;i++){//Колич. распред. ресурсов//j1//i=1
for(ii=i;ii>=0;ii--){// -//- в предприятие
ch=StrToInt(StringGrid1->
w[et*j+i]=ch+w[(et-1)*j+ii1];
if (w[et*j+i]>smax) {smax=w[et*j+i]; per[stepp*j+i]=ii;}
if (w[et*j+i]>mmax) {mmax=w[et*j+i]; etap=et;}
ii1++;
}
ii1=0; w[et*j+i]=smax; smax=0;
}
stepp++;
}
for(i=0;i<j;i++) ok[i]=0;
res=j1-1;
//mmax=0;
//for(i=1;i<j1;i++)
//if (w[etap*j+i]>mmax) {mmax=w[etap*j+i];}
ok[etap]=per[(etap-1)*j+res];/
res-=ok[etap];
if (res>0) {
for(i=etap-1;i>=1;i--){//-1//
if (res>0) {ok[i]=per[(i-1)*j+res]; res-=ok[i];} else {ok[i]=0;}}
}
StringGrid2->ColCount=j;
StringGrid2->Cells[0][0]="
StringGrid2->Cells[0][1]="
for(i=1;i<j;i++){
StringGrid2->Cells[i][0]=
//StringGrid1->Cells[i][0]=
StringGrid2->Cells[i][1]=
}
Memo1->Text=AnsiString("Макс. доход: "+IntToStr(mmax));
for (i=1;i<j;i++){StringGrid1->
free(ok);
free(w);
free(per);
free(masi);
}
Информация о работе Оптимизация реконструкции заводов отрасли