Автор: Пользователь скрыл имя, 23 Февраля 2013 в 16:00, курсовая работа
В даній курсовій роботі на прикладі розглянуто cинтез системи підтримки прийняття рішень (СППР) для оптимізації парку транспортних засобів та оптимізації маршрутів вантажних перевезень в умовах невизначеності. Для досліджень та аналізу в курсовій роботі було використано різні алгоритми формування маршрутів та різні критерії для прийняття рішень, для оптимізації парку транспортних засобів. Всі розрахунки проводились в декілька етапів :
Формування saving таблиці
Формування маршрутів на основі Saving алгоритму;
Згідно з результатами застосування BL(S)-критерію при Eдоп = 3000, 9 транспортних засобів є оптимальною кількістю транспортних засобів для перевезення вантажу.
В табл. 5.5.1 подано результати обробки матриці рішень за усіма критеріями прийняття рішень.
Таблиця 5.5.1. Результуюча таблиця обробки матриці рішень
F1 |
F2 |
F3 |
ZMM |
ZBL |
ZS |
ZHW |
ZHL |
ZG |
ZР |
ZBL(MM) |
ZBL(S) | |
E1 = 3 |
466480 |
726210 |
1496550 |
|||||||||
E2 = 4 |
470980 |
730710 |
1501050 |
+ |
+ |
|||||||
E3 = 5 |
467980 |
735210 |
1505550 |
|||||||||
E4 = 6 |
464980 |
739710 |
1510050 |
+ |
+ |
+ |
||||||
E5 = 7 |
461980 |
736710 |
1514550 |
|||||||||
E6 = 8 |
458980 |
733710 |
1519050 |
|||||||||
E7 = 9 |
455980 |
730710 |
1523550 |
+ |
+ | |||||||
E8 = 10 |
452980 |
727710 |
1528050 |
+ |
||||||||
E9 = 11 |
449980 |
724710 |
1532550 |
+ |
||||||||
E10 = 12 |
446980 |
721710 |
1537050 |
|||||||||
E11 = 13 |
443980 |
718710 |
1541550 |
|||||||||
E12 = 14 |
466480 |
726210 |
1496550 |
|||||||||
E13 = 15 |
470980 |
730710 |
1501050 |
+ |
Як видно з табл. 5.5.1 більшість критеріїв (BL, HL, P) прийняття рішень пропонують обрати 6 транспортних засоби для перевезення вантажу. Також за двома критеріями (MM, BL(MM)) пропонується обрати 4 транспортних засобів для перевезення вантажу. Критерії (BL(S), Z(S)) пропонується обрати 9 транспортних засобів. А критерії S, HW пропонують варіант обрати відповідно 9, 10 та 15 транспортних засобів.
На рис. 6.1 зображено блок-схему алгоритму для формування маршрутів за saving – алгоритмом.
Рис.6.1. Блок-схему алгоритму для формування маршрутів за saving – алгоритмом
На рис. 6.2 зображено блок-схему алгоритму для формування маршрутів за sweeping – алгоритмом.
Рис. 6.2. Блок-схему алгоритму для формування маршрутів за sweeping – алгоритмом
На рис. 6.3 зображено блок-схему алгоритму для оптимізації маршрутів за методом осереднених коєфіціентів.
Рис. 6.3. Блок-схема алгоритму для оптимізації маршрутів за методом осереднених коєфіціентів
До вже створеної СППР розроблено дружній інтерфейс, який дає можливість систематизувати програмне забезпечення даної СППР для реалізації режимів інтерактивної взаємодії ЛПР та СППР.
Форма створеного інтерфейсу зображена на рис. 6.4
Рис.6.4. Інтерфейс для СППР
Меню:
Програмний код середовища MatLab 7.10.0
А1 Головний модуль програми
handles.xy=output;
handles.x=X;
handles.y=Y;
handles.x0=X0;
handles.y0=Y0;
handles.n0=N0;
handles.coef=Coef;
handles.qp=QP;
handles.l=L;
handles.l0=L0;
handles.dmax=DMax;
handles.q=Q;
handles.s=S;
%
handles.g=G;
handles.gx=GX;
handles.gy=GY;
% 4 Етап
handles.r1=R1;
handles.r2=R2;
handles.r3=R3;
handles.data1=Data1;
handles.data2=Data2;
handles.data3=Data3;
handles.ltotal1=LTotal1
handles.ltotal2=LTotal2
handles.ltotal3=LTotal3
handles.e1=E(1);
handles.e2=E(2);
handles.e3=E(3);
% 5 Етап
handles.em=EM;
handles.rm1=RM1;
handles.rm2=RM2;
handles.rm3=RM3;
handles.datam1=DataM1;
handles.datam2=DataM2;
handles.datam3=DataM3;
handles.ltotalm1=LTotalM1;
handles.ltotalm2=LTotalM2;
handles.ltotalm3=LTotalM3;
handles.em1=EM(1);
handles.em2=EM(2);
handles.em3=EM(3);
% 6 Етап
handles.sw=SW;
handles.swx=SWX;
handles.swy=SWY;
% 7-8 Етап
handles.esw=ESW;
handles.rsw1=RSW1;
handles.rsw2=RSW2;
handles.rsw3=RSW3;
handles.datasw1=DataSW1;
handles.datasw2=DataSW2;
handles.datasw3=DataSW3;
handles.ltotalsw1=LTotalSW1;
handles.ltotalsw2=LTotalSW2;
handles.ltotalsw3=LTotalSW3;
handles.esw1=ESW(1);
handles.esw2=ESW(2);
handles.esw3=ESW(3);
handles.output = hObject;
% 8 Етап
handles.rmsw1 = RMSW1;
handles.rmsw2 = RMSW2;
handles.rmsw3 = RMSW3;
handles.rout1 = ROut1;
handles.rout2 = ROut2;
handles.rout3 = ROut3;
handles.datamsw1 = DataMSW1;
handles.datamsw2 = DataMSW2;
handles.datamsw3 = DataMSW3;
handles.ltotalmsw1 = LTotalMSW1;
handles.ltotalmsw2 = LTotalMSW2;
handles.ltotalmsw3 = LTotalMSW3;
handles.emsw1 = EMSW(1);
handles.emsw2 = EMSW(2);
handles.emsw3 = EMSW(3);
handles.ltotalmsw1 = LTotalMSW1;
handles.ltotalmsw2 = LTotalMSW2;
handles.ltotalmsw3 = LTotalMSW3;
handles.mswx = MSWX;
handles.mswy = MSWY;
handles.emsw = EMSW;
%10 Етап
handles.totallengthrout=
handles.rout1=ROut1;
handles.lengthrout1=
handles.totallengthrout11=
handles.d1=d1;
handles.rout2=ROut2;
handles.lengthrout2=
handles.totallengthrout12=
handles.d2=d2;
handles.rout3=ROut3;
handles.lengthrout3=
handles.totallengthrout13=
handles.d3=d3;
% 11-12 Етап
handles.f=F;
handles.rc1=rc1;
handles.rc2=rc2;
handles.rc3=rc3;
handles.nothing=nothing;
handles.rc=RC;
handles.ll=LL;
handles.ei=EI;
handles.eij=EIJ;
handles.z=Z;
handles.ee=E;
handles.es=ES;
set(handles.uitable1, 'Data', handles.q);
set(handles.uitable3, 'Data', handles.qp);
set(handles.text15, 'String', handles.dmax);
set(handles.uitable4, 'Data', handles.s);
set(handles.uitable7, 'Data', handles.xy);
set(handles.uitable5, 'Data', handles.l);
guidata(hObject, handles);
function varargout = MainForm_OutputFcn(hObject, eventdata, handles)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% handles structure with handles and user data (see GUIDATA)
figure('MenuBar','None','Name'
PlotNodes(handles.x, handles.y, handles.x0, handles.y0, handles.n0);
%
set(handles.text1,'String',
% --- Executes on button press in step4rb.
function step4rb_Callback(hObject, eventdata, handles)
% --- Executes on button press in step5rb.
function step5rb_Callback(hObject, eventdata, handles)
% --- Executes on selection change in step4pm.
function step4pm_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function step4pm_CreateFcn(hObject, eventdata, handles)
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'
set(hObject,'BackgroundColor',
end
% --- Executes on selection change in step5pm.
function step5pm_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function step5pm_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'
set(hObject,'BackgroundColor',
end
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% get value from 4 radio button
rb4Value = get(handles.step4rb,'Value');
rb5Value = get(handles.step5rb,'Value');
rb78Value = get(handles.step78rb,'Value');
rb8Value
= get(handles.popupmenu,'Value')
if rb4Value == 1
switch get(handles.step4pm,'Value')
case 1
set(handles.uitable6, 'Data', handles.r1);
figure('MenuBar','None','Name'
PlotRoute( handles.r1, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 1 );
case 2
set(handles.uitable6, 'Data', handles.r2);
figure('MenuBar','None','Name'
PlotRoute( handles.r2, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 2 );
case 3
set(handles.uitable6, 'Data', handles.r3);
figure('MenuBar','None','Name'
PlotRoute( handles.r3, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 3 );
end
elseif rb5Value == 1
switch get(handles.step5pm,'Value')
case 1
set(handles.uitable6, 'Data', handles.rm1);
figure('MenuBar','None','Name'
PlotRoute( handles.rm1, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 1 );
case 2
set(handles.uitable6, 'Data', handles.rm2);
figure('MenuBar','None','Name'
PlotRoute( handles.rm2, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 2 );
case 3
set(handles.uitable6, 'Data', handles.rm3);
figure('MenuBar','None','Name'
PlotRoute( handles.rm3, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 3 );
end
elseif rb78Value == 1
switch get(handles.step78pm,'Value')
case 1
set(handles.uitable6, 'Data', handles.rsw1);
figure('MenuBar','None','Name'
PlotRoute( handles.rsw1, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 1 );
case 2
set(handles.uitable6, 'Data', handles.rsw2);
figure('MenuBar','None','Name'
PlotRoute( handles.rsw2, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 2 );
case 3
set(handles.uitable6, 'Data', handles.rsw3);
figure('MenuBar','None','Name'
PlotRoute( handles.rsw3, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 3 );
end
elseif rb8Value == 1
switch get(handles.step78pm,'Value')
case 1
set(handles.uitable6, 'Data', handles.rmsw1);
figure('MenuBar','None','Name'
PlotRoute( handles.rmsw1, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 1 );
case 2
set(handles.uitable6, 'Data', handles.rmsw2);
figure('MenuBar','None','Name'
PlotRoute( handles.rmsw2, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 2 );
case 3
set(handles.uitable6, 'Data', handles.rmsw3);
figure('MenuBar','None','Name'
PlotRoute( handles.rmsw3, handles.x, handles.y, handles.x0, handles.y0, handles.n0, 3 );
end
end
% --- Executes on button press in drawGamCycle.
function drawGamCycle_Callback(hObject, eventdata, handles)
rb4Value = get(handles.step4rb,'Value');
rb5Value = get(handles.step5rb,'Value');
rb78Value = get(handles.step78rb,'Value');
rb8Value
= get(handles.popupmenu,'Value')
if rb4Value == 1
figure('MenuBar','None','Name'
PlotGamiltonCicle( handles.gx, handles.gy, handles.x, handles.y, handles.x0, handles.y0, handles.n0 );
elseif rb5Value == 1
figure('MenuBar','None','Name'
PlotGamiltonCicle( handles.gx, handles.gy, handles.x, handles.y, handles.x0, handles.y0, handles.n0 );
elseif rb78Value == 1
figure('MenuBar','None','Name'
PlotGamiltonCicle( handles.swx, handles.swy, handles.x, handles.y, handles.x0, handles.y0, handles.n0 );
elseif rb8Value == 1
figure('MenuBar','None','Name'
PlotGamiltonCicle( handles.mswx, handles.mswy, handles.x, handles.y, handles.x0, handles.y0, handles.n0 );
end;
guidata(hObject, handles);
% --- Executes on button press in swippingStep7.
function swippingStep7_Callback(
figure(103);
PlotE( handles.esw, 'E(F) для sweeping-алгоритму');
% --- Executes on selection change in step78pm.
function step78pm_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function step78pm_CreateFcn(hObject, eventdata, handles)
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'
set(hObject,'BackgroundColor',
end
% --- Executes on button press in step10.
function step10_Callback(hObject, eventdata, handles)
rb10Value = 1;
if rb10Value == 1