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

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

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

2018-01-07 324
Задача распределения ресурсов 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.

 


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

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

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...



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

0.007 с.