50
Copyright © 2012, SAS Institute Inc. All rights reserved. SAS/OR: оптимизация и исследование операций Валентина Власова [email protected]

SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

SAS/OR: оптимизация и исследование операций

Валентина Власова[email protected]

Page 2: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Оптимизация

Page 3: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

ОПТИМИЗАЦИЯ

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

Page 4: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

ОПТИМИЗАЦИЯ

Задача оптимизации

Требуется найти такой вектор параметров , для которого целевая

функция минимальна (максимальна)

на допустимом множестве, заданном ограничениями:

при и при .

Условие называется критерием оптимальности.

Page 5: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

ОПТИМИЗАЦИЯ

Варианты решения

Найти хотя бы одну точку глобального минимума (максимума)• Нужно убедиться, что максимум глобальный• Если точек несколько, можно ввести дополнительный критерий

Показать, что допустимое множество пусто• Можно ослабить ограничения

Показать, что целевая функция не является ограниченной снизу (сверху) на допустимом множестве

• Можно ужесточить ограничения или выбрать другую целевую функцию

Page 6: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Переменные (массы):

ЛИНЕЙНАЯ ЗАДАЧА

Симплекс-метод (прямой, двойственный или сетевой); метод внутренней точки.

Процедуры: OPTLP, OPTMODEL.

Линейные ограничения (объем и цена):

Критерий (максимизация прибыли):

30

60

60

40

30

150

LP

Page 7: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Переменные (дискретные массы):

СМЕШАННО-ЦЕЛОЧИСЛЕННАЯ ЛИНЕЙНАЯ ЗАДАЧА

Метод ветвей и границ с секущими плоскостями, эвристикой, поиском конфликтов.

Процедуры: OPTMILP, OPTMODEL.

Линейные ограничения (объем и цена):

Критерий (максимизация прибыли):

MILP

40

60

60

40

20

20

0

Page 8: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Переменные (массы):

НЕЛИНЕЙНАЯ ЗАДАЧА

Метод внутренней точки с доверенной областью и линейным поиском; метод активного множества с доверенной областью и линейным поиском; метод сопряженных градиентов;последовательно квадратичное программирование.

Процедуры: NLP, OPTQP, OPTMODEL.

Линейные ограничения (объем и цена):

Критерий (максимизация прибыли):30

60

60

40

0

NLP

Нелинейные ограничения:

Page 9: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Задача коммивояжёра: найти кратчайший маршрут обхода

(известны попарные расстояния); каждая точка посещается один раз; возвращение в исходную точку.

Это сложная MILP задача.

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

Процедуры: OPTNET, OPTMODEL (SOLVE WITH NETWORK / MILP).

СЕТЕВАЯ ЗАДАЧА

TSP

Page 10: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Два независимых критерия оптимизации: минимизация времени; минимизация пути.

Множество оптимальных по Парето решений:для каждого его элемента не существуетрешения, лучшего по всем критериям.

Процедуры: OPTLSO (OBJECTIVE=, PARETOMAX=).

МНОГОЦЕЛЕВАЯ ОПТИМИЗАЦИЯ

0

Page 11: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL

Page 12: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Язык оптимизационного моделирования OPTMODEL: построение модели, вызов подходящего алгоритма решения.

OPTMODEL

Page 13: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ВЫРАЖЕНИЯ

Процедура OPTMODEL

Построение модели:• константы,• параметры,• целевая функция

Решение

Вывод результатов

Комментарии

proc optmodel;

quit;

num a = 42;

var x {1..2} >= -1 <= 1;

max f = a*x[1] - x[2]**2;

print x;

solve;

/* a comment */

Page 14: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ЗАДАЧА РОЗЕНБРОКА

Функция Розенброка для двух переменных:

В точке она имеет минимум, равный .

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

Поиск ее минимума — нетривиальная задача.Это стандартный пример тестовой функциидля локальных методов оптимизации.

Пусть .

Page 15: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ЗАДАЧА РОЗЕНБРОКА

/* Процедура OPTMODEL */

proc optmodel;

/* Объявляем константу */

num alpha = 100;

/* Объявляем параметры */

var x {1..2};

/* Критерий оптимальности */

min f = (1-x[1])**2 + alpha*(x[2]-x[1]**2)**2;

/* Решаем */

solve;

/* Выводим результат */

print x;

quit;

Page 16: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Problem Summary

Objective Sense Minimization

Objective Function f

Objective Type Nonlinear

Number of Variables 2

Bounded Above 0

Bounded Below 0

Bounded Below and Above 0

Free 2

Fixed 0

Number of Constraints 0

Solution Summary

Solver NLP

Algorithm Interior Point

Objective Function f

Solution Status Optimal

Objective Value 8.204873E-23

Optimality Error 9.704881E-11

Infeasibility 0

Iterations 14

Presolve Time 0.00

Solution Time 0.17

OPTMODEL: ЗАДАЧА РОЗЕНБРОКА

Отчеты о задаче и решении

[1] x

1 1

2 1

Решение

Page 17: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ВЫРАЖЕНИЯ

Построение модели:• множества,• инициализация,• типы переменных,• ограничения

Ввод/вывод:• чтение из файла,• запись в файл

Опции (выбор и настройка алгоритма решения)

con positive {i in 0..10, j in 0..10}:

z[i,j] >= 0;

solve with milp / maxtime = 600 loglevel = 2;

read data input into TOES=[_N_] name=toe len;

create data output from [i] name=cat colour;

var number_of_digits integer;

var missing {DIGITS} binary init 0;

set DIGITS = 1..5;

Page 18: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ВЫРАЖЕНИЯ

Функции (sum, prod, max, min; inter, union, setof, in, within, symdiff, diff, cross, slice; card, sqrt)

Логические операции (and, or), ветвление: (if–then–else)

Циклы (for, do, until, while) for {i in NUMBERS} next[i] = i + 1;

do i=1 to N;

s[i] = 10 + 2 * rand('poisson',p[i-1]);

end;

num z =

(if ((x ne 0) and (y ne 0)) then 1 else 0);

if u >= 1 then size = card(SET1 union SET2);

else size = 0;

num distance {i in POINTS, j in POINTS} =

sqrt(sum {k in 1..n} (x[i][k]-x[j][k])**2);

set PLANETS init setof {p in FORMER_PLANETS}

name[p] diff {"Pluto"};

Page 19: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Задача коммивояжера: найти наиболее выгодный маршрут, проходящий через все указанные городас возвращением в исходный город.

Это (NP-)сложная задача.

Алгоритмы решения: полный или случайный перебор; метод ближайшего соседа; метод эластичной сети; метод ветвей и границ . . .

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРА

Page 20: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРА

Воспользуемся формулировкой, известной как MTZ*. В полном графе будем искать кратчайший связный ориентированный подграф, в котором каждая вершина имеет степень 2.

Пусть ― полный граф; параметры ― индикаторы принадлежности ребра искомому маршруту, ; ― длины ребер.

Критерий оптимальности ― минимальность длины маршрута:

* Miller, Tucker, Zemlin (1960)

Page 21: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРА

Ограничения, обеспечивающие каждой вершине степень 2 (одно ребро входит в нее и одно ребро выходит из нее):

Ограничения, обеспечивающие связность маршрута, то есть отсутствие подциклов:

Page 22: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРА

Входные данные: таблица столиц штатов и их координат

State City Latitude Longitude

AL Montgomery 32,36154 86,27912

AR Little Rock 34,73601 92,33112

AZ Phoenix 33,52837 112,0763

CA Sacramento 38,55561 121,4689

CO Denver 39,72629 104,9655

... ... ... ...

VT Montpelier 44,26135 72,57276

WA Olympia 47,04242 122,8931

WI Madison 43,07461 89,39476

WV Charleston 38,3495 81,63329

WY Cheyenne 41,14555 104,802

Page 23: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

/* Процедура OPTMODEL */

proc optmodel;

/* Множество вершин */

set VERTICES;

/* Множество всех ребер */

set EDGES = {i in VERTICES, j in VERTICES: i ne j};

/* Координаты вершин */

num xc {VERTICES};

num yc {VERTICES};

/* Чтение данных из файла */

read data tspData into VERTICES=[_n_] xc=var2 yc=var3;

/* Округленные расстояния */

num c {<i,j> in EDGES}

init floor(sqrt(((xc[i]-xc[j])**2+(yc[i]-yc[j])**2))+0.5);

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРА

Page 24: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

/* Параметры */

var x {EDGES} binary;

var u {i in 2..card(VERTICES)} >= 2 <= card(VERTICES);

/* Ограничения на степень вершин маршрута */

con assign_i {i in VERTICES}: sum {j in VERTICES: i ne j} x[i,j] = 1;

con assign_j {j in VERTICES}: sum {i in VERTICES: i ne j} x[i,j] = 1;

/* Критерий оптимальности */

min obj = sum {<i,j> in EDGES} (if i > j then c[i,j] else c[j,i]) * x[i,j];

/* Ограничение, гарантирующее отсутствие подциклов */

con mtz {<i,j> in EDGES : (i ne 1) and (j ne 1)}:

u[i] - u[j] + 1 <= (card(VERTICES) - 1) * (1 - x[i,j]);

/* Решаем (не дольше 10 минут) */

solve with milp / maxtime = 600;

quit;

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРА

Page 25: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРАproc optmodel;

set<str,str> CAPPAIRS;

set<str> CAPITALS = union {<i,j> in CAPPAIRS} {i,j};

num distance{i in CAPITALS, j in CAPITALS: i < j};

read data CitiesDist into CAPPAIRS=[city1 city2] distance;

set<str,str> TOUR;

num order{CAPITALS};

solve with NETWORK /

loglevel = moderate

links = (weight=distance)

tsp

out = (order=order tour=TOUR)

;

put (sum{<i,j> in TOUR} distance[i,j]);

str CAPbyOrder{1..card(CAPITALS)};

for {i in CAPITALS} CAPbyOrder[order[i]] = i;

set TSPEDGES init setof{i in 2..card(CAPITALS)} <CAPbyOrder[i-1],CAPbyOrder[i]>

union {<CAPbyOrder[card(CAPITALS)],CAPbyOrder[1]>};

num distance2{<i,j> in TSPEDGES} = if i < j then distance[i,j] else distance[j,i];

create data TSPTourNodes from [node] tsp_order=order;

create data TSPTourLinks from [city1 city2]=TSPEDGES distance=distance2;

quit;

Page 26: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРАproc optmodel;

set<str,str> CAPPAIRS;

set<str> CAPITALS = union {<i,j> in CAPPAIRS} {i,j};

num distance{i in CAPITALS, j in CAPITALS: i < j};

read data CitiesDist into CAPPAIRS=[city1 city2] distance;

set<str,str> TOUR;

num order{CAPITALS};

solve with NETWORK /

loglevel = moderate

links = (weight=distance)

tsp

out = (order=order tour=TOUR)

;

put (sum{<i,j> in TOUR} distance[i,j]);

str CAPbyOrder{1..card(CAPITALS)};

for {i in CAPITALS} CAPbyOrder[order[i]] = i;

set TSPEDGES init setof{i in 2..card(CAPITALS)} <CAPbyOrder[i-1],CAPbyOrder[i]>

union {<CAPbyOrder[card(CAPITALS)],CAPbyOrder[1]>};

num distance2{<i,j> in TSPEDGES} = if i < j then distance[i,j] else distance[j,i];

create data TSPTourNodes from [node] tsp_order=order;

create data TSPTourLinks from [city1 city2]=TSPEDGES distance=distance2;

quit;

Page 27: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРА

Отчеты о задаче и решении

Problem Summary

Number of Nodes 49

Number of Links 1176

Graph Direction Undirected

Problem Type Traveling Salesman Problem

Solution Summary

Solver Network

Problem Type Traveling Salesman Problem

Solution Status Optimal

Objective Value 10627.754318

Solution Time 0.17

Page 28: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРА

City 1 City 2 Distance

Montgomery Tallahassee 177,1355

Tallahassee Columbia 311,2251

Columbia Raleigh 182,9923

Raleigh Richmond 135,5844

Richmond Washington 97,96186

... ... ...Springfield Indianapolis 186,4618

Indianapolis Frankfort 129,8982

Frankfort Nashville-Davidson 175,5813

Nashville-Davidson Atlanta 212,605

Atlanta Montgomery 145,3927

Выходные данные: оптимальный маршрут

Page 29: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OPTMODEL: ЗАДАЧА КОММИВОЯЖЕРА

картинка

Оптимальный маршрут на карте

Page 30: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Построение моделей: переменные, зависящие от параметров (impvar), несколько задач (problem, use problem, cofor), снятие и восстановление ограничений (drop, restore), фиксированные значения переменных (fix, unfix)

Ввод/вывод (save mps, save qps, file, put, expand)

Вызов внешних процедур и функций (call, fcmp) Выполнение внешнего кода (submit, endsubmit)

Макросы (&foo, %bar, %let, %macro–%mend, %if–%then–%else, %do)

OPTMODEL: ВЫРАЖЕНИЯ

Page 31: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Специальные методы

Page 32: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Сетевые алгоритмы: задача коммивояжера, поиск кратчайшего пути, поиск минимального потока, поиск компонент связности, задача о клике, поиск циклов, транзитивное замыкание, поиск минимального

покрывающего дерева.

Процедуры: OPTNET, OPTMODEL.

СПЕЦИАЛЬНЫЕ МЕТОДЫ: СЕТЕВЫЕ АЛГОРИТМЫ

Page 33: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Генетические алгоритмы ― это семейство алгоритмов локального поиска, применяющих принципы естественного отбора и эволюции.

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

Процедура: GA.

СПЕЦИАЛЬНЫЕ МЕТОДЫ: ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ

Инициализация

Мутация Скрещивание

Селекция

Новое поколение

Решение

Смерть

Вычисление целевой функции

Page 34: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

LSO (Local Search Optimization): решаются общие нелинейные задачи

(неизвестно устройство и характер поведения целевой функции или ограничений);

основа ― генетические алгоритмы; локальный и глобальный поиск; возможна многоцелевая оптимизация

(по Парето).

Процедуры: OPTLSO, HPLSO (высокопроизводительная версия).

СПЕЦИАЛЬНЫЕ МЕТОДЫ: LSO

Множество оптимальныхпо Парето решений

Page 35: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

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

Параллельные вычисления:многопоточные или распределенные.

СПЕЦИАЛЬНЫЕ МЕТОДЫ: ПРЕДВАРИТЕЛЬНАЯ ОПТИМИЗАЦИЯ И РАСПАРАЛЛЕЛИВАНИЕ

performance nthreads=8;

solve with milp / parallel=ON;

Performance Information

Execution mode Single-Machine

Number of Threads 8

proc optmodel presolver=aggressive;

Page 36: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Программирование в ограничениях: проверка согласованности и оптимизация для специальных классов ограничений. Процедура: CLP.

Декомпозиция: разложение линейной (LP или MILP)задачи на независимые подзадачи, которые сначаларешаются по отдельности, а затем объединяются.

СПЕЦИАЛЬНЫЕ МЕТОДЫ: ПРОГРАММИРОВАНИЕ В ОГРАНИЧЕНИЯХ И ДЕКОМПОЗИЦИЯ

proc optmodel;

. . .

solve with milp / decomp=(master_ip_freq=1)

subprob=(relobjgap=1e-&rog maxnodes=100000);

. . .

quit;

Матрицаограничений

Page 37: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

СПЕЦИАЛЬНЫЕ МЕТОДЫ: МУЛЬТИСТАРТ

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

proc optmodel;

. . .

solve with nlp / multistart;

. . .

quit;

Page 38: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Управление проектами: планирование проектов и ресурсов, интерактивный анализ решений, построение деревьев принятия решений, управление освоенными объемами, построение диаграмм Ганта, построение сетевых графиков проекта, управление спецификациями материалов.

Учитываемые факторы: календари, графики и дедлайны; иерархии и приоритеты процессов; взаимозаменяемость ресурсов, доступность ресурсов.

Процедуры: CPM, PM, DTREE, GANTT, NETDRAW,BOM.

СПЕЦИАЛЬНЫЕ МЕТОДЫ: УПРАВЛЕНИЕ ПРОЕКТАМИ

Page 39: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Примеры реальных задач

Page 40: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

ПРОИЗВОДСТВО ОПТИМИЗАЦИЯ ПРОИЗВОДСТВА

Задача: составление оптимального плана производства

Цель: максимизация дисконтированной прибыли

Параметры оптимизации:

Объемы потребления сырья, производства и продаж

по месяцам на 5 лет вперед

В каком месяце выполнять ремонт

Какой вид ремонта выполнять (капитальный, текущий и пр.)

Какое оборудование ремонтировать

Ограничения:

Рыночный спрос на уголь

Количество единиц оборудования и

их производительность

Необходимые объемы сырья для производства

Последствия выполнения ремонта Затраты на проведение ремонта

Остановка ремонтируемого оборудования

Полное или частичное восстановление износа оборудования

Полное или частичное восстановление надежности

Page 41: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

ПОРТФЕЛЬНЫЙ ОПТИМИЗАТОР

Задача: Управление портфелем размещений-заимствований по срокам

на основе вероятностного прогнозирования денежных потоков и ликвидности.

Цель: максимизация доходности

Задача решается с учетом неопределенности риск-факторов: валютные курсы

процентные ставки

цены ресурсов

рынок акций

Инструменты управления портфелем Размещение средств: депозиты, госбонды, векселя, облигации и т.д.

Овердрафты в случае возникновения кассового разрыва

Параметры оптимизации – программа действий по размещению свободных денежных средств

по месяцам на 5 лет: распределение портфеля на каждом шаге;

решение о досрочном расторжении депозитов на каждом шаге.

БАНКИ

ГОССЕКТОР

R(1,1)

R(2,1)

R(3,1)

R(3,2)

R(2,2) R(3,3)

Page 42: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

ПОРТФЕЛЬНЫЙ ОПТИМИЗАТОР

Моделирование процесса движения денежных средств, позволяющее

понять, как распределение портфеля влияет на прибыль, доходность и

другие целевые показатели

SAS Simulation Studio

Поиск оптимального распределения портфеля с помощью методов

математической оптимизации – многошагового стохастического

программирования с использованием: Монте-Карло симуляции;

Сценарные деревья решений;

Модели с переключающимися режимами.

SAS/OR

Возможные

подходы к

решению

БАНКИ

ГОССЕКТОР

Page 43: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

OIL&GAS

ПРОИЗВОДСТВОИНТЕГРИРОВАННОЕ ПЛАНИРОВАНИЕ

Задача: Синхронизация остановов годовых планов

Цель: Минимизация времени простоя скважин

Ограничения: Графики по отдельным типам работ

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

Время, на которое можно двигать работы

На входе – excel-файлы с графиками работ: КРС

ГДИ

план техобслуживания и ремонта станков-качалок

план техобслуживания и ремонта электрооборудования

На выходе: Интегрированный план работ

Список остановов, рекомендуемых к объединению

Результаты: Сокращение длительности остановов

Общее сокращение длительности простоя

Page 44: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

ПРОИЗВОДСТВО

Задача: Составить оптимальное расписание аудитов

Цель: Максимальное снижение уровня риска

Параметры оптимизации В каком из дочерних обществ?

Что проверить?

Когда?

Кто из специалистов?

Ограничения Рейтинги рисков по бизнес-процессам в дочерних обществах

Количество и специализация сотрудников, необходимых для проведения

аудитов

Количество и специализация существующих сотрудников

Длительности аудитов

Расположение дочерних обществ и время на перемещение между ними

Ограничения по работе специалистов (выходные и праздничные дни,

отпуска, ограничения по командировкам)

ОПТИМИЗАЦИЯ РАСПИСАНИЯ АУДИТОВ

Page 45: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

ОПТИМИЗАЦИЯ

РАСПИСАНИЙПОДХОД К РЕШЕНИЮ ЗАДАЧИ

II-й этап. Распределение работ между аудиторами

На входе

• Список и даты проведения аудитов

• Ограничения по ресурсам в привязке к конкретным людям (их отпуска, их возможности по командировкам)

На выходе

• Расписание работы каждого из аудиторов (где, когда, какой из бизнес-процессов)

I-й этап. Составление оптимального расписания аудитов

На входе

• Список всевозможных бизнес процессов с указанием дочернего общества, рейтингов рисков, количества и специализации необходимых аудиторов, длительности аудита

• Ограничения по ресурсам (без привязки к конкретным людям)

На выходе

• Список аудируемых бизнес процессов

• Даты проведения аудитов

Page 46: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

БАНКИ ОПТИМИЗАЦИЯ РАЗВОЗА ДЕНЕГ

Значение целевой функции Исходное После оптимизации

Количество кэшаутов 391 15

Количество пополнений 11,424 9,828

Задача: Составить расписание пополнения банкоматов

Построить оптимальные маршруты

Цель: минимизация периодов отсутствия наличности

Входные данные: История транзакций (снятие со счета, внесение на счет)

Прогноз: почасовой спрос для каждого банкомата

Ограничения: Дискретные ограничения нехватки наличности

Ограничения на пропускные способности,

бюджет, расписания

Результат: Оптимизация занимает 2 часа (требование по времени: ночь)

Ожидаемая экономия: $1.4 млн в год

Page 47: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

ОПТИМИЗАЦИЯ РАСПИСАНИЯ ДВИЖЕНИЯ ПОЕЗДОВ

Задача

Составление оптимального расписания движения поездов

Цель

Максимизация дохода от пассажирских перевозок на направлении Мск-СПб

Ограничения

Поезда и сегменты, по которым они могут ходить

Типы вагонов и их вместимость

Ограничения на длину поезда

Тарифы на перевозку пассажиров

Время движения поезда от станции до станции

Расписание Сапсана

(пересечение с поездами Сапсан возможно только на станциях)

Прогноз спроса на период оптимизации

Результаты

Увеличение доходов на 7%

Снижение расходов на 1%

ТРАНСПОРТ

Page 48: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

ТРАНСПОРТ ОПТИМИЗАЦИЯ ДОСТАВКИ ПОЧТЫ

Задача: Оптимизация почтовых перевозок

Цель: Минимизация стоимости перевозки и обработки почты

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

Неявные: входящие/исходящие потоки в узлах

Вспомогательные/временные: сортируемые,

выданные и оставшиеся посылки

Входные данные: Узлы: основная сеть, другие МСЦ, ОПС

Плечи: схема плюс дуги в другие МСЦ и ОПС

Места получения/выдачи и сортировки почты

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

Ограничения: На структуру сети: возможности слияние и разделение потоков

Возможности ручной сортировки в основных узлах и автоматической сортировки в АСЦ

Длительность сортировки – не больше 1 дня

Максимальный суммарный вес отправлений, вылетающих из АОПП

Приоритет того, что письма должны улететь из АОПП, если есть такая возможность

Page 49: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed .

Вариант 1

Вариант 2

Вариант 3

ЭНЕРГЕТИКАОПТИМИЗАЦИЯ БАЛАНСА НАГРУЗКИ МЕЖДУ

ОБЪЕКТАМИ СЕТИ

Справочник существующих

объектов и линий сети (ПЦ, РП,

ТП) с указанием:

• взаимосвязей между

объектами

• нормативного значения

мощности

• КПД объектов и

коэффициентов потерь на

линии

Объемы энергопотребления и

информация по потребителям

на уровне ВРУ

ИСХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ

Перечень предлагаемых

изменений соединений

между существующими

объектами сети

Оптимизация распределения

нагрузки между существующими

объектами сети с учётом

ограничений:

• Пользователи I и II категории

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

соединением с параметрами,

аналогичными основному

• Суммарная стоимость изменений

ограничивается пользователем и не

может превышаться

РАСЧЕТЫ

Результаты:

Снижение степени перегруженности ПС 56 (Беляево) более, чем в 2 раза

Увеличение нагрузки по недогруженным ПС, в том числе увеличение

нагрузки на ПС 561 (Сумская) с 21% до 62%

Page 50: SAS/OR: оптимизация и исследование операций · 2016-03-11 · Множество оптимальных по Парето решений: для каждого

C op yr i g h t © 2012 , SAS Ins t i t u te Inc . A l l r i g h ts r eser v ed . www.SAS.com

СПАСИБО ЗА ВНИМАНИЕ!