Главная страница

методы оптимизации. Методы оптимизации и принятия решений


Скачать 193.54 Kb.
НазваниеМетоды оптимизации и принятия решений
Анкорметоды оптимизации
Дата25.11.2019
Размер193.54 Kb.
Формат файлаdocx
Имя файла13541_1_Gorlyak_2_lab.docx
ТипДокументы
#97012
страница3 из 3
1   2   3

Построение уравнения Мейсона


Введём условное обозначение для компактности записи:

Петли первого порядка:

















Петель второго, третьего и т.д. порядков граф не содержит.

Тогда, уравнение Мейсона имеет вид:



И эквивалентная W-функция равняется:


  1. Вычисление искомых значений


Вычислим математическое ожидание и дисперсию:



Поскольку то , откуда следует, что



Вычисляя первую и вторую производные по s функции и, полагая s=0, находим математическое ожидание:



и дисперсию:

.

Вероятность выхода в завершающий узел графа:

.

Для использования метода аддитивной свертки необходимо выполнить нормировку критериев, с тем чтобы сделать их значения соизмеримыми, а единицы измерения – безразмерными. Нормировка производится делением функции критерия на модуль её минимума или максимума:



Программа для среды Matlab:

clear all;

close all;

clc;

format long g;
syms s;
P1 = 0.5; M1 = 7;

P2 = 0.5; M2 = 12;

P3 = 1; M3 = 19;

P4 = 0.6; M4 = 40;

P5 = 0.4; M5 = 28;

P6 = 0.3; M6 = 17;

P7 = 0.7; M7 = 11;

P8 = 0.2; M8 = 43;

P9 = 0.8; M9 = 19;
% W-functions

W12 = P1*(exp(s*0.4*M1) - exp(s*1.6*M1))/((0.4-1.6)*M1*s);

W13 = P2*(exp(s*0.4*M2) - exp(s*1.6*M2))/((0.4-1.6)*M2*s);

W24 = P3*(exp(s*0.4*M3) - exp(s*1.6*M3))/((0.4-1.6)*M3*s);

W31 = P4*(exp(s*0.4*M4) - exp(s*1.6*M4))/((0.4-1.6)*M4*s);

W35 = P5*(exp(s*0.4*M5) - exp(s*1.6*M5))/((0.4-1.6)*M5*s);

W43 = P6*(exp(s*0.4*M6) - exp(s*1.6*M6))/((0.4-1.6)*M6*s);

W45 = P7*(exp(s*0.4*M7) - exp(s*1.6*M7))/((0.4-1.6)*M7*s);

W51 = P8*(exp(s*0.4*M8) - exp(s*1.6*M8))/((0.4-1.6)*M8*s);

W56 = P9*(exp(s*0.4*M9) - exp(s*1.6*M9))/((0.4-1.6)*M9*s);
% We(s)

We = (W13*W35*W56 + W12*W24*W45*W56 + W12*W24*W43*W35*W56)/...

(1 - W13*W31 - W13*W35*W51 - W12*W24*W43*W31 -...

W12*W24*W43*W35*W51 - W12*W24*W45*W51);

% We = simplify(We);
We0 = limit(We, 's', 0)
% Me(s)

Me = We / We0
% me1

me1 = diff(Me, 's', 1);

me1 = limit(me1, 's', 0);

fprintf('me1 = %.3f\n', double(me1));
% me2

me2 = diff(Me, 's', 2);

me2 = limit(me2, 's', 0);

fprintf('me2 = %.3f\n', double(me2));
% D

D = - me1^2 + me2;

fprintf('D = %.3f\n', double(D));

Результаты выполнения:

We0 =1

Me = ((125*(exp((24*s)/5)/2 - exp((96*s)/5)/2)*((4*exp((38*s)/5))/5 - (4*exp((152*s)/5))/5)*((2*exp((56*s)/5))/5 - (2*exp((224*s)/5))/5))/(1378944*s^3) - (625*(exp((38*s)/5) - exp((152*s)/5))*(exp((14*s)/5)/2 - exp((56*s)/5)/2)*((7*exp((22*s)/5))/10 - (7*exp((88*s)/5))/10)*((4*exp((38*s)/5))/5 - (4*exp((152*s)/5))/5))/(36024912*s^4) + (3125*(exp((38*s)/5) - exp((152*s)/5))*(exp((14*s)/5)/2 - exp((56*s)/5)/2)*((3*exp((34*s)/5))/10 - (3*exp((136*s)/5))/10)*((4*exp((38*s)/5))/5 - (4*exp((152*s)/5))/5)*((2*exp((56*s)/5))/5 - (2*exp((224*s)/5))/5))/(9353377152*s^5))/((5*((3*exp(16*s))/5 - (3*exp(64*s))/5)*(exp((24*s)/5)/2 - exp((96*s)/5)/2))/(3456*s^2) - (125*(exp((24*s)/5)/2 - exp((96*s)/5)/2)*((2*exp((56*s)/5))/5 - (2*exp((224*s)/5))/5)*(exp((86*s)/5)/5 - exp((344*s)/5)/5))/(3120768*s^3) + (125*(exp((38*s)/5) - exp((152*s)/5))*(exp((14*s)/5)/2 - exp((56*s)/5)/2)*((3*exp(16*s))/5 - (3*exp(64*s))/5)*((3*exp((34*s)/5))/10 - (3*exp((136*s)/5))/10))/(23442048*s^4) + (625*(exp((38*s)/5) - exp((152*\\\r\ns)/5))*(exp((14*s)/5)/2 - exp((56*s)/5)/2)*((7*exp((22*s)/5))/10 - (7*exp((88*s)/5))/10)*(exp((86*s)/5)/5 - exp((344*s)/5)/5))/(81530064*s^4) - (3125*(exp((38*s)/5) - exp((152*s)/5))*(exp((14*s)/5)/2 - exp((56*s)/5)/2)*((3*exp((34*s)/5))/10 - (3*exp((136*s)/5))/10)*((2*exp((56*s)/5))/5 - (2*exp((224*s)/5))/5)*(exp((86*s)/5)/5 - exp((344*s)/5)/5))/(21168169344*s^5) - 1)

me1 = 128.684

me2 = 26456.858

D = 9897.176
  1. Методика анализа потокового графа


Для метода используем теорему 3, выводом которой является:



Разработаем программу для MATLAB:

clear all;

close all;

clc;

format long g;
syms s;

syms W61;
P1 = 0.5; M1 = 7;

P2 = 0.5; M2 = 12;

P3 = 1; M3 = 19;

P4 = 0.6; M4 = 40;

P5 = 0.4; M5 = 28;

P6 = 0.3; M6 = 17;

P7 = 0.7; M7 = 11;

P8 = 0.2; M8 = 43;

P9 = 0.8; M9 = 19;
% W-functions

W12 = P1*(exp(s*0.4*M1) - exp(s*1.6*M1))/((0.4-1.6)*M1*s);

W13 = P2*(exp(s*0.4*M2) - exp(s*1.6*M2))/((0.4-1.6)*M2*s);

W24 = P3*(exp(s*0.4*M3) - exp(s*1.6*M3))/((0.4-1.6)*M3*s);

W31 = P4*(exp(s*0.4*M4) - exp(s*1.6*M4))/((0.4-1.6)*M4*s);

W35 = P5*(exp(s*0.4*M5) - exp(s*1.6*M5))/((0.4-1.6)*M5*s);

W43 = P6*(exp(s*0.4*M6) - exp(s*1.6*M6))/((0.4-1.6)*M6*s);

W45 = P7*(exp(s*0.4*M7) - exp(s*1.6*M7))/((0.4-1.6)*M7*s);

W51 = P8*(exp(s*0.4*M8) - exp(s*1.6*M8))/((0.4-1.6)*M8*s);

W56 = P9*(exp(s*0.4*M9) - exp(s*1.6*M9))/((0.4-1.6)*M9*s);
Q = [0 W12 W13 0 0 0;

0 0 0 W24 0 0;

W31 0 0 0 W35 0;

0 0 W43 0 W45 0;

W51 0 0 0 0 W56;

0 0 0 0 0 0];
% A-matrix

A = eye(size(Q, 1)) - transpose(Q);

fprintf('Матрица А\n');

disp(A);
% MGF

A_inv = inv(A);

M61 = A_inv(6,1);

disp(M61);
% Me(s)

Me = M61;
% me1

me1 = diff(Me, 's', 1);

me1 = limit(me1, 's', 0);

fprintf('me1 = %.3f\n', double(me1));
% me2

me2 = diff(Me, 's', 2);

me2 = limit(me2, 's', 0);

fprintf('me2 = %.3f\n', double(me2));
% D

D = - me1^2 + me2;

fprintf('D = %.3f\n', double(D));

В результате её выполнения получим:

(1720*(exp((38*s)/5) - exp((152*s)/5))*(55*exp(62*s) + 55*exp(80*s) - 55*exp((142*s)/5) + 55*exp((184*s)/5) + 55*exp((244*s)/5) + 55*exp((256*s)/5) - 55*exp((286*s)/5) - 55*exp((298*s)/5) - 55*exp((352*s)/5) - 55*exp((358*s)/5) - 55*exp((412*s)/5) - 55*exp((424*s)/5) + 55*exp((454*s)/5) + 55*exp((466*s)/5) + 55*exp((526*s)/5) - 55*exp((568*s)/5) - 16660*s*exp(28*s) + 16660*s*exp(46*s) + 16660*s*exp((74*s)/5) - 16660*s*exp((116*s)/5) + 16660*s*exp((182*s)/5) - 16660*s*exp((188*s)/5) + 16660*s*exp((254*s)/5) - 16660*s*exp((296*s)/5) - 49742*s^2*exp(16*s) - 49742*s^2*exp(64*s) + 49742*s^2*exp((152*s)/5) + 49742*s^2*exp((248*s)/5)))/(19*(550*exp(102*s) - 550*exp(66*s) - 550*exp(54*s) - 550*exp(108*s) + 550*exp(120*s) - 550*exp(126*s) + 550*exp(162*s) + 550*exp(174*s) + 550*exp((228*s)/5) - 550*exp((342*s)/5) + 550*exp((372*s)/5) + 550*exp((384*s)/5) - 550*exp((396*s)/5) + 550*exp((438*s)/5) + 550*exp((444*s)/5) - 1100*exp((486*s)/5) + 550*exp((498*s)/5) + 550*exp((528*s)/5) - 550*exp((552\\\r\n*s)/5) + 550*exp((588*s)/5) - 550*exp((612*s)/5) - 550*exp((642*s)/5) + 1100*exp((654*s)/5) - 550*exp((696*s)/5) - 550*exp((702*s)/5) + 550*exp((744*s)/5) - 550*exp((756*s)/5) - 550*exp((768*s)/5) + 550*exp((798*s)/5) - 550*exp((912*s)/5) - 166600*s*exp(32*s) + 148995*s*exp(56*s) - 148995*s*exp(62*s) - 166600*s*exp(68*s) - 166600*s*exp(92*s) - 148995*s*exp(104*s) + 148995*s*exp(110*s) - 166600*s*exp(128*s) - 148995*s*exp((166*s)/5) + 166600*s*exp((202*s)/5) + 148995*s*exp((208*s)/5) + 166600*s*exp((226*s)/5) - 17605*s*exp((268*s)/5) + 166600*s*exp((274*s)/5) - 166600*s*exp((316*s)/5) - 148995*s*exp((322*s)/5) + 17605*s*exp((382*s)/5) + 148995*s*exp((406*s)/5) + 166600*s*exp((418*s)/5) + 148995*s*exp((424*s)/5) - 148995*s*exp((448*s)/5) - 166600*s*exp((484*s)/5) - 148995*s*exp((508*s)/5) + 166600*s*exp((526*s)/5) - 166600*s*exp((532*s)/5) + 148995*s*exp((562*s)/5) + 166600*s*exp((574*s)/5) + 166600*s*exp((598*s)/5) + 148995*s*exp((622*s)/5) - 148995*s*exp((664*s)/5) - 134751078*s^3*exp\\\r\n((104*s)/5) + 497420*s^2*exp((166*s)/5) + 134751078*s^3*exp((176*s)/5) - 497420*s^2*exp((238*s)/5) - 497420*s^2*exp((334*s)/5) + 134751078*s^3*exp((344*s)/5) + 497420*s^2*exp((406*s)/5) - 134751078*s^3*exp((416*s)/5) - 497420*s^2*exp((424*s)/5) + 497420*s^2*exp((496*s)/5) + 497420*s^2*exp((592*s)/5) - 497420*s^2*exp((664*s)/5) + 310466483712*s^5))

me1 = 128.684

me2 = 26456.858

D = 9897.176

И матрица А:

[ 1, 0, ((3*exp(16*s))/5 - (3*exp(64*s))/5)/(48*s), 0, (5*(exp((86*s)/5)/5 - exp((344*s)/5)/5))/(258*s), 0]

[ (5*(exp((14*s)/5)/2 - exp((56*s)/5)/2))/(42*s), 1, 0, 0, 0, 0]

[ (5*(exp((24*s)/5)/2 - exp((96*s)/5)/2))/(72*s), 0, 1, (5*((3*exp((34*s)/5))/10 - (3*exp((136*s)/5))/10))/(102*s), 0, 0]

[ 0, (5*(exp((38*s)/5) - exp((152*s)/5)))/(114*s), 0, 1, 0, 0]

[ 0, 0, (5*((2*exp((56*s)/5))/5 - (2*exp((224*s)/5))/5))/(168*s), (5*((7*exp((22*s)/5))/10 - (7*exp((88*s)/5))/10))/(66*s), 1, 0]

[ 0, 0, 0, 0, (5*((4*exp((38*s)/5))/5 - (4*exp((152*s)/5))/5))/(114*s), 1]

Результаты решения задачи двумя разными способами совпадают. В обоих способах не получилось рассчитать моменты с порядками больше второго, из-за высокой вычислительной сложности для оборудования.

  1. Вывод

В этой работе был изучен метод GERT для обработки вероятностных графов. При помощи известных значений вероятности переходов, математического ожидания и дисперсии каждой дуги можно рассчитать W-функции, которые используются в формуле Мейсона. При помощи формулы Мейсона можно рассчитать математическое ожидание и дисперсию.

Несмотря на то, что пути решения показали идентичный результат, метод анализа потокового графа предпочтительней, так как выполняется за более короткое время.
1   2   3


написать администратору сайта