Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч. пособие. ПТ.Сахаров, Андрианов.docx
Скачиваний:
13
Добавлен:
01.04.2025
Размер:
3.31 Mб
Скачать

9.Оптимальное распределение ресурсов между объектами порта по критериюмаксимального дохода.

Воспользуемся шаговой оптимизацией распределения ресурсов с использованием метода динамического программирования.

Решим задачу оптимального распределения 2-х ресурсов (доходов от совершенствования работы порта на 2-х причалах). В качестве исходных данных обозначим:

х - распределение бюджетных денег;

f1(x) - распределение дохода от совершенствования работы порта на первом причале;

f2(x) - распределение дохода от совершенствования работы порта на втором причале.

Составим таблицу:

Таблица 9.1

Распределение доходов от работы порта по причалам

х

400

800

1200

1600

2000

2400

2800

3200

f1(x)

80

100

110

120

180

210

230

260

f2(x)

60

90

110

130

150

190

230

250

Цель задачи - получение портом максимального дохода при совершенствовании технологии на двух причалах.

Решить такую задачу можно средствами МАТLАB.

Результатом расчета будет построение матрицы распределений:

  • максимального дохода порта;

  • финансирования работ на первом причале;

  • финансирования работ на втором причале;

  • бюджета порта.

Программа расчета приведена в файле pt11a.m

%File pt11a.m

%Исходные данные: бюджет порта (вектор распределения):

x=[0 400 800 1200 1600 2000 2400 2800 3200];

%Доход от совершенствования технологии на первом причале

%(вектор распределения):

f1=[0 80 100 110 120 180 210 230 260];

%Доход от совершенствования технологии на втором причале

%(вектор распределения):

f2=[0 60 90 110 130 150 190 230 250];

plot(x,f1,x,f2),grid %Графикx=f(f1,f2).

F12 = []; %Матрица распределений:

%суммарного дохода от двух причалов,

%бюджета первого причала;

%бюджета второго причала;

%бюджета порта.

forxR=1:9; %Диапазон распределения бюджета порта.

I=1:xR; %Вектор диапазона распределения бюджета.

L12=f1(I)+f2(xR-I+1); %Pасчет распределения суммарного

%дохода от двух причалов.

[Lopt,I]=max(L12); %Максимальный доход от двух причалов.

x1=I*400-400; %Pаспределение бюджета на первом причале.

x2=(xR-I)*400; %Pаспределение бюджета на втором причале.

Pacp=[Lopt;x1;x2;x1+x2]; %Матрица распределений:

%оптимального дохода от двух причалов;

%бюджета первого причала;

%бюджета второго причала;

%бюджета порта.

F12=[F12 Pacp]; %Матрица расчета распределений.

end

F12

pause

plot(x,F12(1,:)),grid %График зависимости распределений бюджета

%порта от суммарного дохода (прибыли).

Результат решения.

Матрица расчета распределений:

оптимального дохода от двух причалов;

бюджета первого причала;

бюджета второго причала;

бюджетапорта.

F12 =

Columns 1 through 4

0 80 140 170

0 400 400 400

0 0 400 800

0 400 800 1200

Columns 5 through 8

190 210 240 270

400 400 2000 400

1200 1600 400 2400

1600 2000 2400 2800

Column 9

310

400

2800

3200

Рис.9.1 График зависимости распределения доходов, получаемых приработе двух причалов, от бюджета порта.

Для понятия получения результата, необходимо использовать исходные данные (см. таблицу 9.1) и распределение бюджета по причалам (см. вторую и третью графы результата решения). Для каждого распределения бюджета по формуле: f1(x)+f2(x) определяем максимальный доход (первую графу результата), используя метод динамического программирования.

Рис.9.2 График зависимости распределений прибыли от бюджета порта.

Бюджет Доход 1 Доход 2 Суммарный доход

0 ==> 0 + 0 = 0

400 ==> 80 + 0 = 80

800 ==> 80 + 60 = 140

1200 ==> 80 + 90 = 170

1600 ==> 80 + 110 = 190

2000 ==> 80 + 130 = 210

2400 ==> 180 + 60 = 240

2800 ==> 80 + 190 = 270

3200 ==> 80 + 230 = 310

Для определения оптимального распределения шести ресурсов, с исходными данными, заданными в таблице 9.2, используем программу, приведенную в файле pt11.m.

Лабораторная работа №11. "Оптимальное распределение шести ресурсов"

Цель работы.

Получение максимального значения прибыли при совершенствовании работы порта на шести причалах, с помощью метода динамического программирования Беллмана.

Исходные данные:

Таблица 9.2

Распределение прибыли отработы порта по шести причалам

х

0

400

800

1200

1600

2000

2400

2800

3200

f1(x)

0

80

100

110

120

180

210

230

260

f2(x)

0

60

90

110

130

150

190

230

250

f3(x)

0

30

40

70

110

180

200

240

250

f4(x)

0

40

60

80

130

160

180

210

240

f5(x)

0

50

70

90

110

150

170

200

220

f6(x)

0

70

80

110

140

160

200

250

270

x - распределение бюджета порта;

f1(x), f2(x), f3(x), f4(x), f5(x), f6(x) – распределение дохода от совершенствования технологии порта для шести причалов.

Программа приведена в файле pt11.m

% File "pt11.m".

x=[0 400 800 1200 1600 2000 2400 2800 3200]; %Исходные данные

%распределений бюджета порта и

%доходов от работы шести причалов.

f1=[0 80 100 110 120 180 210 230 260];

f2=[0 60 90 110 130 150 190 230 250];

f3=[0 30 40 70 110 180 200 240 250];

f4=[0 40 60 80 130 160 180 210 240];

f5=[0 50 70 90 110 150 170 200 220];

f6=[0 70 80 110 140 160 200 250 270];

x=0:400:3200;

F=[f1;f2;f3;f4;f5;f6]; %Функция распределений доходов.

plot(x,F),grid

xlabel('Бюджет порта')

ylabel('Доходы от совершенствования работы причалов')

pause

% Динамическое программирование.

% xR=400;

% Решение для первых двух причалов f1 и f2:

FF=[]; %Матрица распределений:

%суммарного дохода от двух причалов,

%бюджета первого причала;

%бюджета второго причала;

%бюджета порта.

J=1;

forxR=1:9; %Диапазон распределений.

I=1:xR; %Вектор распределений.

L=F(J,I)+F(J+1,xR-I+1); %Расчет суммарного дохода.

[Lopt,I]=max(L); %Максимальный доход от двух причалов.

x1=I*400-400; %Pаспределение бюджета на первом причале.

x2=(xR-I)*400; %Pаспределение бюджета на втором причале.

Pacn=[Lopt;x1;x2;x1+x2]; %Матрица распределений:

%оптимального дохода от двух причалов;

%бюджета первого причала;

%бюджета второго причала;

%бюджета порта.

FF=[FF Pacn]; %Матрица расчета распределений.

end

D=FF(1,:) %Распределение бюджета порта.

% Расчет распределений для остальных причалов:

PP=[]; RRR=[];

for J=2:5;

DD=[]; RR=[];

forxR=1:9;

I=1:xR;

L=D(I)+F(J+1,xR-I+1);

[Lopt,I]=max(L);

x1=I*400-400;

x2=(xR-I)*400;

Pacn=[Lopt;x1;x2;x1+x2];

% Расчет распределений для других шагов:

DD=[DD Pacn(1,:)];

RR=[RR Pacn];

end

PP=[PP;DD(1,:)];

RRR=[RRR RR];

DD;

D=DD;

end

% Окончательный расчет:

RRR=[FF RRR]

Res1_2=RRR(:,1:9)

Res3=RRR(:,10:18)

Res4=RRR(:,19:27)

Res5=RRR(:,28:36)

Res6=RRR(:,37:45)

Результат расчета.

Рис.9.3 График зависимости доходов отдельных причалов от бюджета порта.

Матрица расчета распределений:

RRR =

Columns 1 through 4

0 80 140 170

0 400 400 400

0 0 400 800

0 400 800 1200

Columns 5 through 8

190 210 240 270

400 400 2000 400

1200 1600 400 2400

1600 2000 2400 2800

Columns 9 through 12

310 0 80 140

400 0 400 800

2800 0 0 0

3200 0 400 800

Columns 13 through 16

170 200 220 260

800 1200 1600 400

400 400 400 2000

1200 1600 2000 2400

Columns 17 through 20

320 350 0 80

800 1200 0 400

2000 2000 0 0

2800 3200 0 400

Columns 21 through 24

140 180 210 240

800 800 1200 1600

0 400 400 400

800 1200 1600 2000

Columns 25 through 28

270 320 360 0

800 2800 2800 0

1600 0 400 0

2400 2800 3200 0

Columns 29 through 32

80 140 190 230

400 800 800 1200

0 0 400 400

400 800 1200 1600

Columns 33 through 36

260 290 320 370

1600 2000 2400 2800

400 400 400 400

2000 2400 2800 3200

Columns 37 through 40

0 80 150 210

0 400 400 800

0 0 400 400

0 400 800 1200

Columns 41 through 44

260 300 330 360

1200 1600 2000 2400

400 400 400 400

1600 2000 2400 2800

Column 45

390

2800

400

3200

Матрицы результатов расчета.

Res1_2 =

Columns 1 through 4

0 80 140 170

0 400 400 400

0 0 400 800

0 400 800 1200

Columns 5 through 8

190 210 240 270

400 400 2000 400

1200 1600 400 2400

1600 2000 2400 2800

Column 9

310 - общий доход от совместной работы двух причалов;

400 - бюджет первого причала;

2800 - бюджет второго причала;

3200 - бюджетпорта.

Res3 =

Columns 1 through 4

0 80 140 170

0 400 800 800

0 0 0 400

0 400 800 1200

Columns 5 through 8

200 220 260 320

1200 1600 400 800

400 400 2000 2000

1600 2000 2400 2800

Column 9

350 - общий доход от работы трех причалов;

1200 - суммарный бюджет 1 и 2 причалов;

2000 - бюджет третьего причала;

3200 - бюджетпорта.

Res4 =

Columns 1 through 4

0 80 140 180

0 400 800 800

0 0 0 400

0 400 800 1200

Columns 5 through 8

210 240 270 320

1200 1600 800 2800

400 400 1600 0

1600 2000 2400 2800

Column 9

360 - общий доход от работы четырех причалов;

2800 - суммарный бюджет 1, 2, 3 причалов;

400 - бюджет четвертого причала;

3200 - бюджетпорта.

Res5 =

Columns 1 through 4

0 80 140 190

0 400 800 800

0 0 0 400

0 400 800 1200

Columns 5 through 8

230 260 290 320

1200 1600 2000 2400

400 400 400 400

1600 2000 2400 2800

Column 9

370 - общий доход от работы пяти причалов;

2800 - суммарный бюджет 1, 2, 3, 4 причалов;

400 - бюджет пятого причала;

3200 - бюджетпорта.

Res6 =

Columns 1 through 4

0 80 150 210

0 400 400 800

0 0 400 400

0 400 800 1200

Columns 5 through 8

260 300 330 360

1200 1600 2000 2400

400 400 400 400

1600 2000 2400 2800

Column 9

390 - общий доход от работы шести причалов;

2800 - суммарный бюджет 1, 2, 3, 4, 5 причалов;

400 - бюджет шестого причала;

3200 - бюджет порта.

Рис.9.4 Зависимость суммарного дохода от бюджета порта.

Вывод.

При решении задачи рассчитана оптимальная зависимость распределения суммарного дохода от бюджета порта для шести причалов.

ЗАКЛЮЧЕНИЕ

Учебное пособие выполнено применительно к среде программирования MATLAB и представлено в девяти разделах. Компьютерное моделирование выполнено в виде лабораторных работ, построенных на базе разработанных программ.

В первом разделе рассмотрены общие правила работы в среде MATLAB, даны примеры вычислений и способы построения графиков.

В качестве объекта проектирования рассмотрен портово – перегрузочный механизм, представленный двухзвенным роботом манипулятором.

Во втором разделе, при заданных значениях углов поворота манипулятора и координатах положения груза, рассчитаны параметры звеньев манипулятора и построены траектории их перемещения.

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

В четвертом разделе работы рассмотрено построение траекторий звеньев робота – манипулятора с формированием линейного массива узлов для заданного закона перемещения груза с использованием кубических сплайнов.

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

В шестом разделе работы рассмотрена параметрическая оптимизация конструкции механизма с подвижным силовым цилиндром. Оптимизация сведена к минимизации максимального усилия в цилиндре механизма во всем диапазоне его движения.

Параметрической оптимизации сопряжения деталей при их сборке с заданным допуском узла механизма посвящен седьмой раздел работы. В качестве критерия оптимальности принят минимум стоимости всех деталей входящих в узел механизма, с учетом определения оптимальных значений допусков всех деталей.

В восьмом разделе работы рассмотрена оптимизация процесса грузовой обработки судна в порту. Задача оптимизации сведена к определению последовательности обработки трюмов судна при минимизации суммарного времени простоя судна в порту при выгрузке и зачистке трюмов методом переборки различных сочетаний времени обработки трюмов судна разными бригадами.

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