Синтез СППР для оптимізації парку транспортних засобів та оптимізації маршрутів вантажних перевезень в умовах невизначеності

Автор: Пользователь скрыл имя, 23 Февраля 2013 в 16:00, курсовая работа

Описание работы

В даній курсовій роботі на прикладі розглянуто cинтез системи підтримки прийняття рішень (СППР) для оптимізації парку транспортних засобів та оптимізації маршрутів вантажних перевезень в умовах невизначеності. Для досліджень та аналізу в курсовій роботі було використано різні алгоритми формування маршрутів та різні критерії для прийняття рішень, для оптимізації парку транспортних засобів. Всі розрахунки проводились в декілька етапів :
Формування saving таблиці
Формування маршрутів на основі Saving алгоритму;

Работа содержит 1 файл

КР(Гнатовский В. 501м).doc

— 4.13 Мб (Скачать)

 

Згідно з результатами застосування BL(S)-критерію при Eдоп = 3000, 9 транспортних засобів є оптимальною кількістю транспортних засобів для перевезення вантажу.

 

5.5 Аналіз результатів застосування критеріїв прийняття рішень

В табл. 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 БЛОК-СХЕМИ АЛГОРИТМІВ

6.1 Формування маршрутів за saving – алгоритмом

На рис. 6.1 зображено блок-схему алгоритму для формування маршрутів за saving – алгоритмом.

Рис.6.1. Блок-схему алгоритму для формування маршрутів за saving – алгоритмом

 

6.2 Формування маршрутів за sweeping – алгоритмом

На рис. 6.2 зображено блок-схему алгоритму для формування маршрутів за sweeping – алгоритмом.

Рис. 6.2. Блок-схему алгоритму для формування маршрутів за sweeping – алгоритмом

 

 

 

6.3 Оптимізація маршруту

На рис. 6.3 зображено блок-схему алгоритму для оптимізації маршрутів за методом осереднених коєфіціентів.

Рис. 6.3. Блок-схема алгоритму для оптимізації маршрутів за методом осереднених коєфіціентів

6.4 Інтерфейс програми

До вже створеної  СППР розроблено дружній інтерфейс, який дає можливість систематизувати  програмне забезпечення даної СППР для реалізації режимів інтерактивної  взаємодії ЛПР та СППР.

Форма створеного інтерфейсу зображена на рис. 6.4

Рис.6.4. Інтерфейс для СППР

Меню:

  1. Представляє графічну візуалізацію простору вузлів;

  1. Будує маршрути для вибраної програми

 

  1. Будує Гамільтонові цикли за обраним алгоритмом.

 

 

  1. Виводити таблиці порівняння за загальної довжиною маршрутів та за значеннями показників ефективності для кожної програми за всіма алгоритмами.
  2. Відображає порівняння загальної довжини маршрутів для кожної програми до та після оптимізації.
  3. Відображає матрицю рішень та результати застосування всіх критеріїв прийняття рішень.

 

ДОДАТОК А

Програмний код середовища 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=TotalLengthROut;

handles.rout1=ROut1;

handles.lengthrout1=LengthROut1;

handles.totallengthrout11=TotalLengthROut(1, 1);

handles.d1=d1;

handles.rout2=ROut2;

handles.lengthrout2=LengthROut2;

handles.totallengthrout12=TotalLengthROut(1, 2);

handles.d2=d2;

handles.rout3=ROut3;

handles.lengthrout3=LengthROut3;

handles.totallengthrout13=TotalLengthROut(1, 3);

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','Draw Nodes','NumberTitle','Off');

  PlotNodes(handles.x, handles.y, handles.x0, handles.y0, handles.n0);

   

%    set(handles.text1,'String',handles.l);

 

 

% --- 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,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

    set(hObject,'BackgroundColor','white');

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,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

    set(hObject,'BackgroundColor','white');

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','Step4 - 1','NumberTitle','Off');

                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','Step4 - 2','NumberTitle','Off');

                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','Step4 - 3','NumberTitle','Off');

                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','Step5 - 1','NumberTitle','Off');

                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','Step5 - 2','NumberTitle','Off');

                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','Step5 - 3','NumberTitle','Off');

                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','Step78 - 1','NumberTitle','Off');

                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','Step78 - 2','NumberTitle','Off');

                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','Step78 - 3','NumberTitle','Off');

                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','Step8 - 1','NumberTitle','Off');

                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','Step8 - 2','NumberTitle','Off');

                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','Step8 - 3','NumberTitle','Off');

                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','Гамільтонів цикл для Saving алгоритму','NumberTitle','Off');

        PlotGamiltonCicle( handles.gx, handles.gy, handles.x, handles.y, handles.x0, handles.y0, handles.n0 );       

    elseif rb5Value == 1

        figure('MenuBar','None','Name','Гамільтонів цикл для Saving-модифікованого алгоритму','NumberTitle','Off');

        PlotGamiltonCicle( handles.gx, handles.gy, handles.x, handles.y, handles.x0, handles.y0, handles.n0 );

    elseif rb78Value == 1

        figure('MenuBar','None','Name','Гамільтонів цикл для Swipping алгоритму','NumberTitle','Off');

        PlotGamiltonCicle( handles.swx, handles.swy, handles.x, handles.y, handles.x0, handles.y0, handles.n0 );

    elseif rb8Value == 1

        figure('MenuBar','None','Name','Гамільтонів цикл для Swipping модифікованого алгоритму','NumberTitle','Off');

        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(hObject, eventdata, handles)

   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,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

    set(hObject,'BackgroundColor','white');

end

 

 

% --- Executes on button press in step10.

function step10_Callback(hObject, eventdata, handles)

    rb10Value = 1;

    if rb10Value == 1

Информация о работе Синтез СППР для оптимізації парку транспортних засобів та оптимізації маршрутів вантажних перевезень в умовах невизначеності