Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who...

48
Инжњерски оптимизациони алгоритми Драган Олћан ([email protected] ) Јована Петровић ([email protected] ) Изборни предмет у 7. семестру Школска 2019/20. година http://mtt.etf.rs/si/ioa.htm Електротехнички факултет Универзитет у Београду

Transcript of Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who...

Page 1: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжњерски оптимизациони

алгоритми Драган Олћан ([email protected])

Јована Петровић ([email protected])

Изборни предмет у 7. семестру

Школска 2019/20. година

http://mtt.etf.rs/si/ioa.htm

Електротехнички факултет

Универзитет у Београду

Page 2: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 2/48

Шта је градиво курса?

• Увод. Преглед појмова и представљање основне теорије решавања система нелинеарних једначина на које се своде оптимизациони алгоритми у инжењерству

• Систематизација. Поделе оптимизационих алгоритама

• Оптимизациони алгоритми:

– случајно претраживање (енглески: random search)

– систематско претраживање (енглески: systematic search)

– градијентна метода (енглески: gradient method)

– симплекс алгоритам (енглески: Nelder-Mead simplex)

– Данцигов симплекс алгоритам (енглески: Dantzig simplex)

– генетички алгоритам (енглески: genetic algorithm)

– симулирано каљење (енглески: simulated annealing)

– кретање јата (енглески: particle swarm optimization)

– диференцијална еволуција (енглески: differential evolution)

• Оптимизација са више критеријума. Парето фронт и његово одређивање коришћењем оптимизационих алгоритама

• Рад на рачунару. Сагледавање особина и параметара оптимизационих алгоритама који су од значаја за практичну примену кроз програмирање и симулације на рачунару

Page 3: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 3/48

Зашто само основни алгоритми

оптимизације?

• Литература из оптмизационих алгоритама је

изузетно обимна • Употреба оптимизационих алгоритама је

изузетно р а с п р о с т р а њ е н а

• Изабрани су они алгоритми (или класе алгоритама) који се данас најчешће употребљавају у инжењерској пракси

• Специјализовани алгоритми за уске класе проблема неће бити посебно обрађивани (нпр: quick-sort, Dijkstra's algorithm, Chess Master…)

Page 4: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 4/48

Како је организован курс?

• Предавања: 30 часова предавања + 30 часова вежби +15 часова лабораторије

• Литература – Z. Michalewicz, D.B. Fogel, How to Solve It: Modern Heuristics, Springer, 2004

– Xin-SheYang, Engineering Optimization An Introduction with Metaheuristic Applications, University of Cambridge, Department of Engineering, Cambridge, United Kingdom, Wiley 2010

– D.E. Goldberg, Genetic Algorithms in Search, Optimization, and Machine Learning, Addison-Wesley Professional, 1989

• Оцењивање – Предиспитне обавезе (задаци на вежбама, носе до 5, колоквијуми 2 × 20) –

највише 100 поена, одсеца се на 70 поена

– Испит (задатак у првом року, усмени у осталим роковима) – у трајању до 180 минута, највише 40 поена, одсеца се на 30 поена

– Коначна оцена – укупан број поена се добија сабирањем поена добијених на основу предиспитних обавеза и испита. За полагање испита неопходно је освојити бар 51 поен. Оцене 6-10 су равномерно расподељене у опсегу од 51 до 100 поена

• Распоред (термини предавања и вежби): факултетски сервиси

Page 5: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 5/48

Како се изводе

предавања и вежбе?

• Предавања:

– слајдови

– табла & креда

– рачунар за илустрације и показе

• Вежбе:

– Ви радите на рачунару

– програмирање: C/C++ и Python

или према Вашем избору (MATLAB, Java, C#...)

битно је да програм (про)ради!

– коришћење постојећег софтвера

Page 6: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 6/48

Примери пројеката које су радили

студенти претходних година

• Оптимизација лог-периодичне антене

• Microwave imaging коришћењем оптимизационих алгоритама

• Оптимизација филтра

• Перформансе диференцијалне еволуције

• Провера оптимизационих алгоритама на скупу аналитичких (тест) функција

• Решавање нелинеарног електричног кола оптимизационим алгоритмима

• Вишекритеријмуска оптимизација ширине интерконекционих линија

• Оптимално рутирање у комуникационој мрежи

• Препознавање ручно написаних цифара коришћењем оптимизационих алгоритама

• Идентификација говорника коришћењем PSO алгоритма

• Управљање једноставном игром помоћу оптимизационог алгоритма

• Игра са логиком генетичког алгоритма

Page 7: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 7/48

Одакле овај курс о оптимизацији?

Page 8: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 8/48

Зашто курс о инжењерским

оптимизационим алгоритмима?

• Познавање модерних алгоритама за оптмизације је неопходно за све који се баве: инжењерством, науком и бизнисом

• Поред алгоритама, сагледаћемо могућности за решавање проблема данас

• Зашто једноставно не узмем рутину из неке од готових софтверских библиотека или комерциланог софтвера? – Познавање и разумевање алгоритама је од

изузетног значаја, чак и када се користе готова решења

– Често је случај да постојећи софтвер није оптимално решење за наш проблем

Page 9: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 9/48

Шта је “проблем” или задатак?

• Проблем (задатак) постоји онда када желимо нешто да решимо (постоји неслагање између текућег и жељеног стања) – Задатак на испиту: имам поставку, а желим решење

– Проблем у пракси: имам ситуацију, а желим да је изменим

• Реални проблеми се увек решавају ван јасно дефинисане области (на факултету, по правилу се решавају у оквиру области) – Велики и први корак ка решавању је знати одакле почети

• Решење је алоцирање доступних ресурса за постизање жељеног циља

• У пракси, најчешће мора да се решава више проблема истовремено, а ти проблеми често могу имати опречне захтеве

Page 10: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 10/48

Шта је оптимизација?

• Оптимизација је

проналажење најбољег (најбољих)

из дозвољеног скупа могућности,

за задате критеријуме

• Да ли знате неки пример оптимизације?

Page 11: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 11/48

Примери оптимизације из

наше струке

• Пројектовати електрично коло са одговарајућим особинама (преносне функције филтра, појачање појачавача, израда елемената кола у различитим технологијама, Q-фактор калема, пробојни напон кондензатора, итд.)

• Пројектовање антене према за задати дијаграм зрачења

• Проналажење оптималног рутирања у мрежама

• Проналажење оптималних кодова за пренос и запис према различитим критеријумима (могућност реконструкције информације у случају грешке током преноса, заштита података, брзина преноса итд.)

• Оптимално покривање географског подручја радио сигналом

• Оптимално искоришћење фреквенцијског спектра

• Минимизација површине чипа и максимизације његових рачунарских перформанси

• Минимизација времена извршавања рачунарског програма

• Проналажење функције која оптимално фитује задати скуп података

• Минимизација потрошње електричне енергије уређаја

• Максимизација капацитета батерије преносивих (покретних) уређаја

• Минимизација цене уређаја

• …

Page 12: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 12/48

Други примери оптимизације

• Оптималан избор изборног предмета на студијама

• Оптималан избор школе

• Оптималан избор (будућег) радног места

• Оптимално коришћење свог и туђег времена

• Оптимална расподела економских ресурса

• Најбржа путања за задату полазну и крајњу тачку

• Избор оптималног потеза у игри

• Максимизација учинка радника

• Минимизација цене производње

• Оптималан избор тима за пројекат

• Оптимална расподела информација за жељени циљ

• …

Page 13: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 13/48

Како је оптимизација повезана са

другим научним дисциплинама?

• Инжењери користе знања математике, логике, економије, искуство и интуицију да пронађу решење проблема

• Математика: решавање система нелинеарних једначина на континуалном или дискретном домену

• Pattern recognition / machine learning / data mining / knowledge discovery су уско повезани са оптимизацијом

• Оптимизација се врши алгоритмима који се данас по правилу реализују програмирањем

• Дарвин: еволуција ствара и чува особине које су боље за опстанак у условима у којима се одиграва природна селекција

• Економија је наука која се бави проучавањем како друштво управља ограниченим ресурсима

Математика

Оптимизација

Инжењерство Програмирање

Економија

Психологија

и

СоциологијаБиологија

Хемија

Page 14: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 14/48

Зашто је потребно познавати

оптимизационе алгоритме?

• Пројектовање се данас ради практично искључиво

коришћењем рачунара

• Практично решавање инжењерских проблема по

правилу захтева употребу оптимизације

• Познавање оптимизационих алгоритама је од

изузетне важности

[као и спознаја када и како их (не) користити]

• Потребно свима који се данас баве

инжењерством, науком, економијом...

Page 15: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 15/48

Који су циљеви овог курса?

• Курс је фокусиран на практично решавање оптимизационих проблема код којих не постоји предзнање о проблему (енглески: black-box optimization)

• Уколико имамо неко предзнање, искористићемо га тако да оно што решавамо остане као black-box

• Упознавање са детаљима и особинама оптимизационих алгоритмима који се најчешће користе у инжењерству

• Оспособљавање за практичну примену оптимизационих алгоритама у инжењерским проблемима и научно-истраживачком раду

Page 16: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 16/48

Black box

Модел црне кутије

• За задату побуду (x) познати одзиви (f)

• Одзиви нису познати унапред за све могуће побуде

(ако су сви одзиви познати, најбољи одзив је решење проблема)

• Унутрашња организација непозната

– због природе проблема

– сувише компликована за израчунавање (описивање)

– због наметнутих ограничења

Black box

x1

x2

xD

.

.

.

f1

fk

Dk

D

xxxf

xxxf

...,

...

...,

21

211

Page 17: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 17/48

Резултати црне кутије:

“The Blind Men and the Elephant” - John Godfrey Saxe (1816-1887) -

It was six men of Indostan To learning much inclined, Who went to see the Elephant (Though all of them were blind), That each by observation Might satisfy his mind.

The First approached the Elephant, And happening to fall Against his broad and sturdy side, At once began to bawl: "God bless me! but the Elephant Is very like a WALL!"

The Second, feeling of the tusk, Cried, "Ho, what have we here, So very round and smooth and sharp? To me 'tis mighty clear This wonder of an Elephant Is very like a SPEAR!“

The Third approached the animal, And happening to take The squirming trunk within his hands, Thus boldly up and spake: "I see," quoth he, "the Elephant Is very like a SNAKE!“

The Fourth reached out an eager hand, And felt about the knee "What most this wondrous beast is like Is mighty plain," quoth he: "'Tis clear enough the Elephant Is very like a TREE!“

The Fifth, who chanced to touch the ear, Said: "E'en the blindest man Can tell what this resembles most; Deny the fact who can, This marvel of an Elephant Is very like a FAN!“

The Sixth no sooner had begun About the beast to grope, Than seizing on the swinging tail That fell within his scope, "I see," quoth he, "the Elephant Is very like a ROPE!“

And so these men of Indostan Disputed loud and long, Each in his own opinion Exceeding stiff and strong, Though each was partly in the right, And all were in the wrong!

Page 18: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 18/48

Формализација

• Формално, сваки одзив је функција више променљивих (побуда)

• Одзив, или нека функција одзива, је мера колико је решење добро или лоше

• При оптимизацији (решавању проблема), за свако решење које желимо да разматрамо, потребно је израчунавати одзив(е)

• Подела модела (поставки) према броју одзива:

– са једним одзивом (један критеријум оптимизације)

– са више одзива (више критеријума оптимизације)

• Први део курса: посматрамо моделе са једним одзивом

Page 19: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 19/48

Оптимизација и функције

више променљивих

• Побуде ↔ оптимизационе променљиве

• Одзив ↔ оптимизациона функција (нумеричка мера квалитета решења)

• Оптимизациона функција је функција са једном или више променљивих

• Променљиве и резултат оптимизационе функције могу бити из скупа дискретних или континуалних бројева

Dxxxf ..., 21

Page 20: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 20/48

Основни типови оптимизационих

проблема (TSP, SAT, NLP)

• Проблем трговачког путника

(енглески: traveling salesman problem, TSP)

• Булова алгебра (дискретна стања)

(енглески: Boolean satisfiability, SAT)

• Нелинеарни проблеми

(енглески: Nonlinear programming, NLP)

• Домени основних типова проблема

(дискретан или континуалан)

Page 21: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 21/48

TSP: поставка

• За задати скуп D градова и позната растојања између

сваког пара градова, пронаћи најкраћи пут који пролази

кроз сваки град и завршава се у полазном граду

• Број могућих путања D!

– D = 15, број путања ≈ 1,3‧1012

– D = 150, број путања ≈ 57,1‧10261

• Приказана путања

5-3-4-1-2(-5)

• Подела:

– Симетричан: dist(p,q) = dist(q,p)

– Асиметричан: dist (p,q) ≠ dist(q,p)

12

3

4 5

Page 22: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 22/48

TSP: инжењерски проблеми

• Минимална путања

алата за бушење на

штампаним плочама

• Рутирање возила

• Путање у графовима

• Планирање и логистика

• Доношење одлука

Page 23: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 23/48

TSP класа проблема и поделе

• Сваки проблем који може да се сведе на проверу свих пермутација називаћемо проблем TSP класе

• Поделе TSP:

– растојања дискретни / континуални бројеви

– метрички (dAB ≤ dAC + dCB) и они који то нису

– ...

• Посебне поткласе могу имати једноставнија решења

Page 24: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 24/48

SAT: поставка

• За задати логички израз F(x1, x2,…xD) пронаћи комбинацију променљивих (x1, x2,…xD), xk∈{true (1), false (0)}, k=1,…D тако да је F(x1, x2,…xD) = TRUE

• Пример решење (x1, x2, x3, x4) = (1,0,1,0)

• Број могућих решења је 2D

– D = 15, број могућих решења 32768

– D = 150, број могућих решења ≈ 1,4‧1045

• Решење може да се запише као низ бита 100110...

))()(()( 432121 xxxxxxF x

Page 25: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 25/48

SAT: приказ помоћу графова

))()(()( 432121 xxxxxxF x

(1,?,?,?)(0,?,?,?)

(0,0,?,?) (0,1,?,?) (1,0,?,?) (1,1,?,?)

(0,0,0,?) (0,0,1,?) (0,1,0,?) (0,1,1,?) (1,0,0,?) (1,0,1,?) (1,1,0,?) (1,1,1,?)

(0,0,0,0)

(0,0,0,1)

(0,0,1,0)

(0,0,1,1)

(0,1,0,0)

(0,1,0,1)

(0,1,1,0)

(0,1,1,1)

(1,0,0,0)

(1,0,0,1)

(1,0,1,0)

(1,0,1,1)

(1,1,0,0)

(1,1,0,1)

(1,1,1,0)

(1,1,1,1)

Скуп свих могућих решења

Page 26: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 26/48

SAT класа проблема и поделе

• Сваки проблем који се своди на проверу свих комбинација са понављањем називаћемо проблем SAT класе

• Поделе (Karp's 21 NP-complete problems) – проблем ранца (knapsack)

– подела посла (job-sequencing)

– directed/undirected Hamiltonian cycle

– …

• Примери: свака манипулација битима може да претвори у проблем SAT класе – Откључавање ZIP архиве

– Пробијање RSA кодова

– ...

Page 27: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 27/48

NLP проблеми

• Сваки оптимизациони проблем са континуалним променљивима спада у NLP класу проблема

• Број могућих решења је (теоријски) бесконачан!

• Посебни случајеви – диференцијабилне и недиференцијабилне f

– линеарно програмирање

– квадратно програмирање

– конвексни/конкавни проблеми

– са ограниченим или неограниченим доменом

– ...

Page 28: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 28/48

NLP инжењерски примери

• Пројектовање ЕМ уређаја

• Решавање нелинеарних кола

• Фитовање резултата мерења

• Управљање нелинеарним

системима

• Максимизација профита

• ...

E

RE

RC

VCC

iC

iE

iB

E

RE

RB

VCC

iC2

iE2

iB2

iB1

iC1

Page 29: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 29/48

Класификација оптимизационих

проблема по домену променљивих

• Подела није јединствена

• Пермутације су специјалан случај варијација са

понављањем: TSP ⊂ SAT ?

• Све што радимо на рачунару је

са коначном тачношћу (64-бита): NLP ⊂ SAT ?

Оптимизацини

проблеми

Континуални

домен

Дискретни

домен

НедиференцијабилнеДиференцијабилне

SAT TSP

Линеарно

програмирање

Квадратно

програмирање

... Karp’s 21

problem

Метрички

Неметрички... ...

Page 30: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 30/48

Колико је брз мој рачунар?

• Колико времена могу да потрошим за решавање?

• Колико пута могу да проверим решења?

• Желим процену брзине: маскималан број позива (оптимизационе) функције

• Једноставан програм: прототип (пр)оцењивања решења проблема

Page 31: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 31/48

Колико времена је потребно

рачунару да реши проблеме?

• Претпоставимо да је свака провера 1ns (ред величине времена потребног за позив функције на рачунару)

• TSP 20 градова: 109 s ≈ 77 година!

• SAT 100 прекидача: 1021 s ≈ 40‧106 милиона година!

• NLP: потребно је теоријски бесконачно много времена!

Page 32: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 32/48

Реални проблеми су ТЕШКИ

• Број могућих решења је изузетно велики

• Описи проблема су сложени (или непознати), те

често морају да се користе упрошћени модели

• Процена квалитета решења може да

садржи шум, или да се мења током времена

• Постоји много ограничења тако да је тешко наћи

било какво решења (а не оптимално)

• Човек који решава проблем

није адекватно припремљен

Page 33: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 33/48

Како решити проблем када су потребни

огромни рачунарски ресурси?

• У пракси је често довољно наћи решење које је задовољавајуће

• Трагање у недоглед за најбољим (оптималним) решењем је можда занимљиво, али по правилу захтева недопустиво много ресурса (и/или времена)

• Оптимизационе алгоритме треба посматрати као што добар кувар посматра рецепте: то је могући приступ, али ако је потребно може да се измени (само да крајњи резултат буде довољно добар)

Page 34: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 34/48

Шта су хеуристике?

• ХЕУРИСТИКА:

грчки “Εὑρίσκω“ пронаћи или открити

• IEEE: All engineering is heuristic

• Технике решавања проблема засноване на искуству, учењу и откривању које доводе до решења (не мора нужно бити оптимално али је довољно добро у датим условима)

• Када год је немогуће или непрактично потпуно претраживање простора, користе се хеуристике (rule-of-thumb, educated guess, интуиција, стереотипи, здрав разум…)

• State-of-the-art проблеми се увек решавају хеуристички

Page 35: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 35/48

Вежбе на рачунару: Мотивација

• Упознавање са окружењима која ће бити

коришћена на вежбама

• Python 3.7 (Spyder Anaconda 3): приказ и обрада

резултата

• C/C++ (Visual Studio 2017): рачунарски захтевни

делови програма

• Друга окружења? Да, али не решавамо

проблеме.

• Студенти се охрабрују да користе своје

рачунаре.

Page 36: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 36/48

Python 3.7

(Spyder окружење са Anaconda 3)

Page 37: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 37/48

Библиотеке

• plt: figure(), plot(), plot_surface(),

set_xlabel(), plt.legend()

• np: arange(), meshgrid()

• Користан сајт: https://matplotlib.org/

Page 38: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 38/48

Дефинисање функција

Page 39: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 39/48

1D функција: plot

Page 40: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 40/48

Легенда

Page 41: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 41/48

2D функција:

plot_surface и meshgrid

Page 42: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 42/48

Означавање оса

Page 43: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 43/48

Учитавање података из

датотеке

Page 44: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 44/48

Пример минимизације

оптимизационе функције

минимум

Page 45: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 45/48

Visual Studio 2017

Отварање пројекта

45/14

Page 46: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 46/48

Рад са комплексним бројевима

Page 47: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 47/48

Уписивање у датотеку

Page 48: Инжњерски оптимизациони алгоритмиmtt.etf.rs/si/IOA/IOA01.pdf · Who went to see the Elephant (Though all of them were blind), That each by observation

Инжењерски оптимизациони алгоритми 48/48

Задатак за вежбе

• Задата је функција дефинисана на

скупу комплексних бројева

(карактеристична функција зрачења)

где је

• Написати програм који,

за задато n, δ, β, d, θ рачуна Fs.

• Користећи написани програм,

израчунати и уписати у датотеку |Fs| ако је

задато n = 5, β = 20π m−1, θ = π/4 и d = 1/20 m за

вредности δ из опсега [0, 2π] у бар 100 тачака.

• Нацртати |Fs| у функцији од δ.

• Одредити вредност δ у којој |Fs| има максимум.

cosd

1

0

j

s en

k

kF