Курсовая работа: Выбор параметров контроля с использованием метода динамического программирования и метода ветвей и границ
элементами подмножества Ωl * , образованного на шаге Yk – c(xi ).
Если "i, j; R(xi )∩R(xj )= Æ, то Gi =0 и
f(Yk )=max {Qi + f[Yk – c(xi )]} (2)
iЄIY
Для решения интересующей нас задачи опишем простой численный метод, не требующий предварительного определения всех допустимых наборов и основанный на рекуррентных соотношениях (1). Для всех целых Υ = Υ0 , С по формуле (1) вычисляются величины f(Yk ) и при этом фиксируются индексы iYk * , на которых достигаются максимумы в (1). Искомый вектор Ω формируется последовательно включением в набор параметра iYk и подмножества Ωl * , зафиксированного на шаге Yk – c(xi ). При этом, если Yk Є Ωl *, то на данном шаге этот параметр исключается из рассмотрения, так как каждый параметр может включаться в набор не более одного раза. Если на некотором ν-м шаге окажется, что f(Yν )< f(Yν -1 ), то в качестве Ων * принимается подмножество Ων -1 * и фиксируется параметр iY ν -1 , причем за f(Yν )< принимается значение f(Yν -1 ). Заметим, что если в задаче P(Ω)=max при
∑xi ·c(xi )≤C
iЄΩ
принять более жесткое ограничение, а именно ∑c(xi )=C, то последнее не допустимо, iЄΩ так как в этом случае maxf(Yk ) может быть меньше maxf(Yk -1 ) из-за того, что он достигается на другом подмножестве параметров.
Общая сложность метода, очевидно, φ(n) ≤ c(n+1), т.е. экспоненциальная функция при переборе заменена линейной функцией. При этом для запоминания промежуточных значений необходимо k≤2c ячеек памяти. Если в качестве максимизируемого критерия использовать P(Ω)=∏(1-pi )/∏(1-pi ), то необходимо решить задачу динамического iЄR(S) iЄR(Ω) программирования с мультипликативным критерием. Для этого достаточно прологарифмировать это выражение и обозначить
V=lgP(Ω)=lgР0 -∑lg(1-pi ). (3)
iЄR(Ω)
Так как выражение, стоящее под знаком ∑ в (3), отрицательно, то, V= Vmax тогда, когда максимальна величина суммы, т.е. в этом случае получим новую целевую функцию
V=∑νi , где νi =lg (1-pi ),
iЄR(Ω)
обладающую свойством аддитивности и обращающуюся в максимум одновременно с P(Ω).
1.2 Практическая часть
Ручной счёт
Данные для расчета:
С≤16
Таблица 1
N | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Qi | 0.17 | 0.03 | 0.15 | 0.09 | 0.13 | 0.08 | 0.07 | 0.02 | 0.06 | 0.04 |
с(xi) | 5 | 1 | 4 | 2 | 6 | 3 | 2 | 3 | 1 | 1 |
Для удобства расчетов проранжируем таблицу1 следующим образом:
Таблица 2
N | 9 | 10 | 2 | 4 | 7 | 6 | 8 | 3 | 1 | 5 |
Qi | 0.06 | 0.04 | 0.03 | 0.09 | 0.07 | 0.08 | 0.02 | 0.15 | 0.17 | 0.13 |
с(xi) | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 5 | 6 |
Вычисления сведем в таблицу 3:
Таблица 3
Yk | f(Yk) | iYk | Ωl* |
1 | 0,06 | 9 | 9 |
2 | 0,1 | 10 | 9,10 |
3 | 0,15 | 4 | 4,9 |
4 | 0,19 | 4 | 4,10,9 |
5 | 0,22 | 7 | 7,4,9 |
6 | 0,26 | 7 | 7,4,10,9 |
7 | 0,3 | 3 | 3,4,9 |
8 | 0,34 | 3 | 3,4,10,9 |
9 | 0,37 | 3 | 3,7,4,9 |
10 | 0,41 | 7 | 7,3,4,10,9 |
11 | 0,44 | 2 | 2,7,3,4,10,9 |
12 | 0,47 | 1 | 1,3,4,9 |
13 | 0,51 | 1 | 1,3,4,10,9 |
14 | 0,54 | 2 | 2,1,3,4,10,9 |
15 | 0,58 | 7 | 7,1,3,4,10,9 |
16 | 0,61 | 1 | 1,2,7,3,4,10,9 |
Оптимальный набор включает параметры Ω* = {1,2,7,3,4,10,9} при этом
P(Ω) = 0,61+0,16 = 0,77 и С = 16.
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ToolWin, ComCtrls, mdCONTROLS, Grids, StdCtrls, ExtCtrls, Unit2,
Buttons;
type