Методические основы совершенств. транспортных связей в предприя
.pdf151
Продолжение прил. Г
Pk = StrToInt(Edit3->Text);
Cki = StrToInt(Edit4->Text); dk = StrToInt(Edit5->Text); Trm = StrToInt(Edit6->Text); x = StrToInt(Edit7->Text); Ln = StrToInt(Edit8->Text); int K=2;
for(int i=0; i<3; i++) // проводим расчеты по периодам i=1,2,3
{ |
|
q = Trm*Pk*(i+1); |
//расчет объема партии поставки |
xi[i] = (q+D[i])*x; |
//уровень запаса на складе |
Cd = Cki/q*dk; // расходы на доставку
Cp = Cki*dk+Ln*(i+1); // затраты на выполнение поставки
Cq = (Cki*q+Cki*dk)/q; // стоимость хранения на складе
Ch = Cq*xi[i]*K/100; // затраты на хранение
ListBox1->Items->Add(q); // выводим полученные данные
ListBox2->Items->Add(xi[i]);
ListBox3->Items->Add(Cd);
ListBox4->Items->Add(Cp);
ListBox5->Items->Add(Cq);
ListBox6->Items->Add(Ch);
}
152
Продолжение прил. Г
Ввод исходных данных для программы «Оптимизация лесотранспортных потоков»
int a = 5, b = 5; // глобальные постоянные коэффициенты, определяемые технико-эксплуатационными параметрами автопоезда
Edit4->Color = clWindow; // настройки отображения Edit5->Color = clWindow;
Edit7->Color = clWindow; Edit4->ShowHint = false; Edit5->ShowHint = false; Edit7->ShowHint = false;
int Gnd, Gnw, Gny; // день, неделя, год int Vck; // средняя скорость
int N; // кол-во ездок
int Lm; // протяженность вывозки int Am; // кол-во лесовозов
int Zpr, K, Ap; // затраты, кол-во ездок, модельный ряд
Gnd = StrToInt(Edit1->Text); // к переменным присваиваем поля для ввода данных
Gnw = StrToInt(Edit2->Text);
Gny = StrToInt(Edit3->Text);
Vck = StrToInt(Edit4->Text); N = StrToInt(Edit5->Text); Lm = StrToInt(Edit6->Text); Am = StrToInt(Edit7->Text);
Zpr = a*Lm*N*Am+b; // расчитываем мин.затраты
Label9->Caption = IntToStr(Zpr) + " руб."; // выводим результат
K = N*365; // расчитываем годовое кол-во ездок Label11->Caption = K; // выводим результат Label13->Caption = Am; // выводим результат
Ap = 300*10;
153
Продолжение прил. Г
Label15->Caption = Ap;
int Gpr; // определяем выполнение рейса
Gpr = Lm/Vck*N/Am;
if(Gpr<=24) {Label16->Caption = "Выполнение рейса";}
if(Gpr>24) // в случае отмены рейса указываем какие параметры необходимо изменить
Label16->Caption = "Отмена рейса"; Edit4->Color = clRed;
Edit5->Color = clRed; Edit7->Color = clRed; Edit4->ShowHint = true; Edit5->ShowHint = true; Edit7->ShowHint = true;
int Gncp; // определяем средний грузооборот
Gncp = (Gnd+(Gnw/7)+(Gny/365))/3; Label18->Caption = Gncp;
Ввод исходных данных для программы «Многоцелевая оптимизация»
Создаем переменные и функции:
float f1, f2, g, x, x1, x2, P, Fr, a, pi, m, sigma, Fs, Tr; //входные и выходные параметры float link, link2, d;
randomaze(); // ф-я случайной величины /* Для целевой функции ZDT3*/
double f1x(double x)
{
if(d-x < 1){return (d+x);} //устанавливаем условия if(d-x > 1){return (d-x);}
if(d-x == 1){return (x);}
}
double f2x(double x)
{
return (g*(1-sqrt(f1x(x)/g)-(f1x(x)/g)*sin(10*3.14*f1x(x))));
}
double RANG(double x)
{
154
Продолжение прил. Г
return (1+a);
}
/* Для целевой функции TNK*/ double f1t(double x)
{
return (x1);
}
double f2t(double x)
{
return (x2);
}
/* Для целевой функции DTLZ4*/ double f1d(double x)
{
return ((1+g)*cos(3.14*x1/2)*cos(3.14*x2/2));
}
double f2d(double x)
{
return ((1+g)*cos(3.14*x1/2)*sin(3.14*x2/2));
}
double f3d(double x)
{
return ((1+g)*sin(3.14*x1/2));
}
Код реализации алгоритма:
Series1->Clear(); //очищаем поля перед расчетами
ListBox1->Clear();
ListBox2->Clear();
ListBox3->Clear();
float nRANG=0; |
|
|
P = StrToInt(Edit1->Text); |
|
//вводим данные |
sigma = StrToFloat(Edit6->Text); |
||
d = StrToFloat(Edit2->Text); |
|
|
Tr = StrToFloat(Edit3->Text); |
|
|
a = random(P); |
|
|
Label8->Caption = random(P); |
|
|
for(int k=1;k<=RANG(x);k++) |
//рассчитываем ранг индивидов |
|
{ |
|
|
nRANG = nRANG+P; |
|
|
} |
|
|
Fr = 1+nRANG; //выводим критерий качества |
||
Label10->Caption = RANG(x); |
//выводим ранг |
|
for(x=0.1;x<=1;x+=Tr) |
//рассчитываем популяцию |
|
{ |
|
|
ListBox3->Items->Add(RoundTo(f1x(x), -4)); //строим ф-ю f1(x) for(int n=2;n<=30;n++)
{
g = 1+9*x/(n-1);
ListBox1->Items->Add(RoundTo(f2x(x), -4)); //строим ф-ю f2(x)
}
for(int zx=1;zx<ListBox3->Count;zx++)
{
link2 = StrToFloat(ListBox3->Items->Strings[zx]); //проводим анализ результатов полученных ф-й f1(x) и f2(x)
for(int z=1;z<ListBox1->Count;z++)
155
Окончание прил. Г
{
link = StrToFloat(ListBox1->Items->Strings[z]); Series1->Add(link,RoundTo(link2, -4)); //выводим на график
}
}
}
for(int z=1;z<ListBox1->Count;z++) // Расстояние между индивидуумами
{
pi = ListBox1->Items->Strings[z] - ListBox1->Items->Strings[z-1]; ListBox2->Items->Add(RoundTo(pi, -4));
}
m = 0;
int kk = 0;
for(int zz=0;zz<ListBox2->Count;zz++) //рассчитываем нишевое число
{
if(ListBox2->Items->Strings[zz] == 0)
{
kk = 1;
}
if(ListBox2->Items->Strings[zz] >= sigma)
{
kk = 0;
}
if(ListBox2->Items->Strings[zz] < sigma)
{
kk = (1-StrToFloat(ListBox2->Items->Strings[zz])/sigma);
}
m = m + kk; //суммируем нишевое число
}
Label13->Caption = m; //выводим нишевое число Fs = Fr*m; //рассчитываем ф-ю качества
Label4->Caption = Fs;
Фрагмент схемы концентрации транспортных потоков лесоматериалов на промежуточные склады
156
Научное издание
Артем Сергеевич Сушков Владимир Александрович Морковин
МЕТОДИЧЕСКИЕ ОСНОВЫ СОВЕРШЕНСТВОВАНИЯ ТРАНСПОРТНЫХ СВЯЗЕЙ В ПРЕДПРИЯТИЯХ ЛЕСНОГО КОМПЛЕКСА
Монография
Редактор Е.А. Богданова
Подписано в печать 01.07.2016. Формат 60×90 /16. Усл. печ. л. 9,75. Уч.-изд. л. 8,42. Тираж 500 экз. Заказ
ФГБОУ ВО «Воронежский государственный лесотехнический университет имени Г.Ф. Морозова»
РИО ФГБОУ ВО «ВГЛТУ». 394087, г. Воронеж, ул. Тимирязева, 8 Отпечатано в УОП ФГБОУ ВО «ВГЛТУ»
394087, г. Воронеж, ул. Докучаева, 10