- •1.1.Методика проведения авс анализа
- •1.2.Методика проведения xyz анализа
- •2.1.Метод анализа иерархий при оценке альтернатив
- •2.2.Определение места расположения распределительного центра.
- •5.1.Теоретические сведения о постановке распределительных задач.
- •5.2.Методика решения распределительных задач лп в программе ms excel
- •1. Ввести условие задачи:
- •2. Решить задачу:
- •5.3.Формализация распределительных задач производственной логистики
- •6.1.Задача управления запасами при случайном спросе.
- •6.2. Управление запасами с фиксированным размером заказа
- •Описание системы управления запасов с фиксированным интервалом времени
- •6.4. Сравнение основных систем управления запасами.
- •6.5. Прочие суз .
- •6.5.1.Система с установленной периодичностью пополнения запасов до установленного уровня
- •6.5.2.Система "минимум - максимум" (мин-мах).
- •7.1. Замена оборудования с учетом приведения затрат к текущему моменту времени.
- •7.2.Замена оборудования с целью предупреждения отказа.
- •9.1.Транспортная задача: планирование грузоперевозок
- •9.2.Разработка графика работы служащих: задача о назначении.
- •9.3.Методика решения тз в ms excel.
- •1. Выбор лучшей альтернативы месторасположения производства.
- •1.Фрагменты кода программы – определения координат склада.
- •2.Фрагменты кода программы – определения лучшего поставщика.
- •1.Примеры пользовательского интерфейса
1. Выбор лучшей альтернативы месторасположения производства.
Программа на языке системы Maple
Рис.П.1 Программа расчета рейтинга альтернатив (начало)
135
Рис.П.1 Программа расчета рейтинга альтернатив (продолжение)
136
Рис.П.1 Программа расчета рейтинга альтернатив (окончание)
137
ПРИЛОЖЕНИЕ 2
1.Фрагменты кода программы – определения координат склада.
Реализация в на языке СИ.
Ниже приведены фрагменты кода программы для трех заданий работы.
Задание 1
На территории района имеется ряд магазинов, торгующих продовольственными товарами. Методом определения центра тяжести грузопотоков найти ориентировочное место для расположения склада, снабжающего магазины.
Фрагмент кода программы для данной задачи:
CFont font; font.CreateFontIndirect(&logfon); CFont* oldfo=pDC->SelectObject(&font);
pDC->TextOut(140,20,"Невозможно выполнить поставленную
задачу .");
pDC->SelectObject(oldfo);
pDC->MoveTo(10,60); pDC->LineTo(1100,60);
pDC->SelectObject(oldpen); pDC->SelectObject(&oldc);
char str[10];
int d=0,f=0,g=0,i,j;
float f1=0.0,g1=0.0,m1=10000,m2=10000,r1=0,r2=0; for(i=0;i<3;i++)
for(j=0;j<2;j++)
a[i][j]=0;
for(i=0;i<magazin;i++)
{
d+=v[i]*x[i];
g+=v[i]*y[i];
f+=v[i];
}
a[0][0]=d/f;
138
a[0][1]=g/f;
a[1][0]=x[0];
Задание 2
Определить узел транспортной сети прямоугольной конфигурации, в котором размещение распределительного склада обеспечит минимум грузооборота транспорта по доставке грузов в обслуживаемую сеть.
Фрагмент кода программы для данной задачи:
for(i=0;i<magazin;i++)
{
f1=g1=0.0;
for(j=0;j<i;j++)
{
f1+=v[j];
}
for(j=i+1;j<magazin;j++)
{
g1+=v[j];
}
if(m1<fabs(f1-g1)) {a[1][0]=x[i-1]; i=72;} m1=fabs(f1-g1);
}
int i1,u[30]; for(i1=0;i1<magazin;i1++)
u[i1]=y[i1]; int ymin,ym;
for(i=0;i<magazin;i++)
{
ymin=u[i];
for(j=i;j<magazin;j++)
if(u[j]<ymin)
{
ymin=u[j];
ym=u[j];
u[j]=u[i];
u[i]=ym;
v1[i]=v[j];
v1[j]=v[i];
}
139
}
a[1][1]=u[0];
for(i=0;i<magazin;i++)
{
f1=g1=0.0;
for(j=0;j<i;j++)
{
f1+=v1[j];
}
for(j=i+1;j<magazin;j++)
{
g1+=v1[j];
}
if(m2<fabs(f1-g1)) {a[1][1]=u[i-1]; i=72;} m2=fabs(f1-g1);
}
Задание 3
Методом частичного перебора найти узел транспортной сети, рекомендуемый для размещения склада, снабжающего магазины.
Фрагмент кода программы для данной задачи:
int grmin=30000,l1=0,l2=0,l3=0,l4=0;
for(j=0;j<2;j++)
{
for(i=0;i<magazin;i++)
{
char stre[10]; l2=0; l1=a[j][0]-1;
if(j==0) l1=a[j][0]+1;
{
itoa(l2=pow((x[i]-l1)*(x[i]-l1)+(y[i]-a[j][1])*(y[i]-
a[j][1]),0.5),stre,10);
pDC->TextOut(364+j*220,po+160+i*30,stre); itoa(l4=v[i]*l2,stre,10);
pDC->TextOut(474+j*220,po+160+i*30,stre); l3+=l4;
}
}
140
char stre[10]; pDC->TextOut(334+j*220,po+160+magazin*30,"x,y=[");
itoa(l1,stre,10); pDC->TextOut(369+j*220,po+160+magazin*30,stre);
pDC->TextOut(387+j*220,po+160+magazin*30,","); itoa(a[j][1],stre,10);
pDC->TextOut(394+j*220,po+160+magazin*30,stre);
pDC->TextOut(414+j*220,po+160+magazin*30,"]"); if(l3<=grmin)
{
grmin=l3;
a[2][0]=l1;
a[2][1]=a[j][1];
}
itoa(l3,stre,10); pDC->TextOut(474+j*220,po+160+magazin*30,stre);
l3=0;
}
for(j=0;j<2;j++)
{
for(i=0;i<magazin;i++)
{
char stre[10]; l2=0; l1=a[j][1]-1;
if(j==0) l1=a[j][1]+1;
{
itoa(l2=pow((x[i]-l1)*(x[i]-l1)+(y[i]-a[j][1])*(y[i]-
a[j][1]),0.5),stre,10);
pDC->TextOut(804+j*220,po+160+i*30,stre); itoa(l4=v[i]*l2,stre,10);
pDC->TextOut(914+j*220,po+160+i*30,stre); l3+=l4;
}
}
char stre[10]; pDC->TextOut(774+j*220,po+160+magazin*30,"x,y=[");
itoa(a[j][0],stre,10); pDC->TextOut(809+j*220,po+160+magazin*30,stre);
pDC->TextOut(829+j*220,po+160+magazin*30,",");
141
itoa(l1,stre,10); pDC->TextOut(836+j*220,po+160+magazin*30,stre);
pDC->TextOut(854+j*220,po+160+magazin*30,"]");
if(l3<=grmin)
{
grmin=l3;
a[2][0]=a[0][j];
a[2][1]=l1;
}
itoa(l3,stre,10); pDC->TextOut(914+j*220,po+160+magazin*30,stre);
l3=0;
}
for(i=0;i<magazin+2;i++)
{
pDC->MoveTo(20,po+150+i*30); pDC->LineTo(1205,po+150+i*30);
}
pDC->MoveTo(20,po+60); pDC->LineTo(20,po+150+(magazin+1)*30); pDC->MoveTo(257,po+60); pDC->LineTo(257,po+150+magazin*30); for(i=0;i<9;i++)
{
pDC->MoveTo(324+i*110,po+60); pDC->LineTo(324+i*110,po+150+(magazin+1)*30);
}
pDC->TextOut(55,po+160+magazin*30,"Итого");
po=po+270+magazin*30;
CBrush* br;
br=new CBrush(RGB(190,190,190)); CBrush* oldbr=pDC->SelectObject(br); pDC->Rectangle(100,po+20,980,po+500);
pDC->SelectObject(oldbr); delete br; pDC->MoveTo(100,po+500); pDC->LineTo(100,po-10); pDC->LineTo(105,po);
pDC->MoveTo(100,po-10); pDC->LineTo(95,po);
142
pDC->MoveTo(100,po+500); pDC->LineTo(1080,po+500);
pDC->LineTo(1070,po+505); pDC->MoveTo(1080,po+500); pDC->LineTo(1070,po+495); for(i=0;i<10;i++)
{
pDC->MoveTo(180+i*80,po+500); pDC->LineTo(180+i*80,po+20);
}
