Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
134
Добавлен:
31.01.2021
Размер:
390.14 Кб
Скачать

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

редактирования М-fіle Edіtor

Результаты расчетов в окне команд "Comand Wіndow"

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

задачи

2

 

x12

x25

5

1

 

x23

 

x13

 

x45

 

 

 

 

 

x34

3

4

x1,2x1,3

x2,3

x

x2,5

x3,4x4,5

 

 

1

 

 

0

 

 

 

 

 

0

 

 

1

 

 

 

 

 

0

 

 

0

 

 

 

 

 

 

 

 

 

3. Решение задач булевого

программирования (MatLab v7)

Решение задачи булевого программирования вида

при условии

где f, b и beq являются векторами, A и Aeq - матрицы, а x есть булевый вектор решения, то есть его компоненты должны принимать значения 0 или 1.

x = bintprog(f, A, b, Aeq, beq, x0)

Пример №2

Необходимо минимизировать функцию при наличии ограничений

где x1, x2, x3 и x4 являются бинарными целыми.

Выполним следующие команды: f = [-9; -5; -6; -4];

A = [6 3 5 2; 0 0 1 1; -1 0 1 0; 0 -1 0 1];

b = [9; 1; 0; 0]; x = bintprog(f,A,b) x = 1 1 0 0

4. Решение задач

квадратичного

программирования

x = quadprog(H,f,A,b) возвращает вектор х, который минимизирует 1/2*x'*H*x + f'*x при условии A*x <= b.

x = quadprog(H,f,A,b,Aeq,beq) решает указанную выше задачу с дополнительным выполнением ограничений типа равенства Aeq*x = beq.

x = quadprog(H,f,A,b,Aeq,beq,lb,ub) определяет набор нижних и верхних границ для проектируемой переменной х, так что бы решение находилось в диапазоне lb <= x <= ub.

x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) устанавливает стартовую точку как x0.

Пример №3

Найти значения х, которые минимизируют при условии, что

Сперва отметим, что данная задача в матичной записи будет сформулирована как

где Введем эти коэффициенты матриц

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

Что генерирует решение

x =0.6667 1.3333 fval = -8.2222

5. Решение задач нелинейного программирования

[x,fval]=fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon

);

1. Начинает с точки x0 и находит минимум от х для функции представленной как myfun при условии выполнения линейных неравенств A*x <= b, а так же Aeq*x = beq в диапазоне lb <= x <= ub.

2. Подчиняет минимизацию определенных в mycon fmincon нелинейных неравенств c(x) или равенств ceq(x) такому оптимуму, что c(x) <= 0 и ceq(x) = 0. 3. Устанавливается lb=[] и/илиr ub=[] в случае отсутствия ограничений. Устанавливается Aeq=[] and beq=[] в случае отсутствия равенств. Устанавливается A=[] и b=[] в случае отсутствия неравенств. x0 может быть скаляром, вектором или матрицей.

Выводы

Список функций Optimization Toolbox:

Нелинейная оптимизация функций

fminbnd – поиск функции одной переменной для фиксированного интервала

fmincon - поиск минимума нелинейной задачи с ограничениями

fminsearch или fminunc – поиск минимума функции нескольких переменных без ограничений

Минимизация матричных задач linprog – решение задачи линейного программирования

bintprog – решение задачи булевого целочисленного программирования

quadprog – решение квадратичной задачи математического программирования

Соседние файлы в папке .ppt