Задача распределения ресурсов — КиберПедия 

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Задача распределения ресурсов

2018-01-07 330
Задача распределения ресурсов 0.00 из 5.00 0 оценок
Заказать работу

Постановка задачи.

Задана функция

.

Найти максимум этой функции при ограничениях:

 

 

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

,

где

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


Алгоритм решения задачи

1) ,

2)

3)

4)

5)

6)

7) ?, если условие выполняется, то переход к пункту 8, иначе переход к пункту 9.

8)

9)

10) , если условие выполняется, то переход к пункту 11, иначе к пункту 6.

11) ,

12)

13) , если условие выполняется, то переход к пункту 14, иначе переход к пункту 4.

14) Вывод и

15) Перенос блока

16)

17) , если условие выполняется, то переход к пункту 18, иначе переход к пункту 3.

18)

19)

20)

21) Печать и

22)

23)

24) , если условие выполняется, то переход к пункту 25, иначе переход к пункту 20.

25) Stop.

Проиллюстрируем изложенный алгоритм на следующей тестовой задаче:

Максимизировать

при условиях

Сформулированная задача часто встречается в различных экономических приложениях и характеризует процесс распределения ресурсов.

Пусть необходимо распределить однотипных автомобилей для выполнения перевозок у клиентов. Считаются известными вероятности выполнения требуемых объемов перевозок одним автомобилем у каждого из клиентов и относительно важности этих перевозок.

Пусть - количество автомобилей, выделяемые - му клиенту, тогда вероятность выполнения всех перевозок -го клиента составляет

,

а математическое ожидание выполненного объема перевозок с учетом их важности у всех клиентов будет

Требуется распределить автомобили так, что бы максимизировать математическое ожидание .


Текст программы.

Решение задачи методом динамического программирования на алгоритмическом языке PASCAL.ABC.

Program dp;

const

h=3;

M=9;

var

x:array[1..1000] of integer;

k:array[0..1000] of integer;

p,w:array[1..1000] of real;

F:array[0..1000,0..1000] of real;

Ps:array[0..1000,0..1000] of integer;

j,i,N,g:integer;

T,R:real;

Begin

p[1]:=0.4; p[2]:=0.2; p[3]:=0.3;

w[1]:=0.5; w[2]:=0.2; w[3]:=0.3;

for i:=1 to h do

begin

for j:=0 to M do

F[i,j]:=0;

end;

j:=1;

repeat

N:=0;

repeat

T:=-1000000;

x[j]:=0;

repeat

begin

R:=p[j]*(1-power(1-w[j],x[j]))+F[j-1,N-x[j]];

if R>T then begin

T:=R;

g:=x[j];

end;

x[j]:=x[j]+1;

end;

until x[j]>N;

F[j,N]:=T;

ps[j,N]:=g;

N:=N+1;

until N>M;

j:=j+1;

until j>h;

writeln (' N',' |','F1(x1) ','|','Ps1(x1)','|','F2(x2) ','|','Ps2(x2)','|','F3(x3) ','|','Ps3(x3)','|');

for j:=0 to M do

begin

write (j:2,' |');

for i:=1 to h do

begin

write (F[i,j]:7:5,'|');

write (ps[i,j]:4,' |');

end;

writeln;

end;

j:=h;

k[j]:=M;

repeat

j:=j-1;

k[j]:=k[j+1]-Ps[j+1,k[j+1]];

until j=0;

T:=0;

for j:=1 to h do

if T<F[j,k[j]] then T:=F[j,k[j]];

writeln('F(x1опт,x2опт,x3опт)=',T:7:5);

for j:=1 to h do

write('x',j,'опт= ',Ps[j,k[j]],'; ');

end.


Контрольный расчет

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

0.5 0.4
0.2 0.3
0.3 0.3

 

Все промежуточные вычисления по предыдущему алгоритму сведены в таблицу 1: Табл.1

N F1(x1) Ps1(x1) F2(x2) Ps2(x2) F3(x3) Ps3(x3)
  0.00000   0.00000   0.00000  
  0.20000   0.20000   0.20000  
  0.32000   0.32000   0.32000  
  0.39200   0.39200   0.41000  
  0.43520 0.45200   0.48200  
  0.46112   0.49520   0.54500  
  0.47667   0.53720 0.60500  
  0.48600   0.56660   0.64910  
  0.49160   0.59252   0.69230  
  0.49496   0.61310   0.73430

 

Хопт = {4;2;3}.

Математическое ожидание равно 0.7343.

 

Применение программы для исходной задачи. Вариант 2821

Исходные данные для данного варианта:

N = 12 J = 3
0.291 0.496
0.192 0.297
0.893 0.198

 

Ниже приведена таблица 2, на которой показаны все промежуточные вычисления программы для поставленной задачи.

Таблица результатов: Табл.2

N F1(x1) Ps1(x1) F2(x2) Ps2(x2) F3(x3) Ps3(x3)
  0.00000   0.00000   0.00000  
  0.41818   0.58548   0.58548  
  0.62100   1.00366   1.00366  
  0.71936 1.20648   1.20648  
  0.76707   1.37392   1.37392  
  0.79021   1.47229 1.48221  
  0.80143   1.52018   1.58058  
  0.80687   1.56789   1.67598  
  0.80951   1.59103   1.76003  
  0.81079   1.60472   1.83408  
  0.81142   1.61595   1.89932  
  0.81172   1.62139   1.95679  
  0.81186   1.62531   2.00743
                 

Хопт = {3;2;7}.

Математическое ожидание равно 2.00743.

В таблице 3 показаны результаты вычислений, когда .

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

0.812 0.715
0.82 0.714
0.91 0.119

 

Таблица результатов: Табл.3

N F1(x1) Ps1(x1) F2(x2) Ps2(x2) F3(x3) Ps3(x3)
  0.00000   0.00000   0.00000  
  0.58058   0.58548   0.58548  
  0.74605 1.16606   1.16606  
  0.79320   1.33351   1.33351  
  0.80664   1.49897   1.49897  
  0.81047   1.54686   1.60726  
  0.81156   1.59402 1.70267  
  0.81188   1.60772   1.78672  
  0.81196   1.62116   1.86077  
  0.81199   1.62507   1.92600  
  0.81200   1.62890   1.98348  
  0.81200   1.63002   2.03411  
  0.81200   1.63112   2.08200
                   

Хопт = {2;3;7}.

Математическое ожидание равно 2.08200.

 

В таблице 4 показаны результаты вычислений, когда .

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

0.812 0.915
0.82 0.714
0.91 0.119

 

Таблица результатов: Табл.4

N F1(x1) Ps1(x1) F2(x2) Ps2(x2) F3(x3) Ps3(x3)
  0.00000   0.00000   0.00000  
  0.74298   0.74298   0.74298  
  0.80613 1.32846   1.32846  
  0.81150   1.49591   1.49591  
  0.81196   1.55906   1.60420  
  0.81200   1.60695 1.69960  
  0.81200   1.62065   1.78365  
  0.81200   1.62602   1.85770  
  0.81200   1.62993   1.92294  
  0.81200   1.63105   1.98609  
  0.81200   1.63151   2.04356  
  0.81200   1.63183   2.09420  
  0.81200   1.63192   2.14209

Хопт = {2;3;7}.

Математическое ожидание равно 2.14209.

 


Поделиться с друзьями:

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.043 с.