• Nem Talált Eredményt

AZ OPTIMALIZ ´AL ´AS ALKALMAZ ´ASAI

N/A
N/A
Protected

Academic year: 2022

Ossza meg "AZ OPTIMALIZ ´AL ´AS ALKALMAZ ´ASAI"

Copied!
244
0
0

Teljes szövegt

(1)

AZ OPTIMALIZ ´ AL ´ AS ALKALMAZ ´ ASAI

Csendes Tibor

Szeged, 2018.

(2)

El ˝osz ´o

A jelen jegyzet a Szegedi Tudom´anyegyetemen 2004-t˝ol tartott Az optimaliz´al´as alkalmaz´asai c´ım ˝u t´argy anyag´at tartalmazza. A t´argy heti k´et ´ora el˝oad´ast ´es egy ´ora gyakorlatot jelent.

A jegyzet az oper´aci ´okutat´as, line´aris algebra, kalkulus ´es numerikus matematika t´em´aira t´amaszkodik. Aktu´alis v´altozata egy r´esze, a hozz´a kapcsol ´od ´o feladatok, gyakorlatok ´es adataik el´erhet˝ok a

http://www.inf.u-szeged.hu/csendes/optalk.pdf c´ımen.

A t´argy olyan tud´ast k´ıv´an adni, amely elegend˝o egyszer ˝ubb optimaliz´al´asi, oper´aci ´okutat´asi munk´ak elv´egz´es´ehez, ´es amelyet ¨on´all ´o gyakorl´assal tov´abbfejlesztve egy-egy ilyen feladat teljes megold´as´at meg lehet tal´alni. Mivel az ´erintett elj´ar´asok, programcsomagok gyakran v´altoznak, az anyag f˝oleg az ´alland ´o vagy kev´esb´e v´altoz ´o ismereteket tartalmazza.

A rendelkez´esre ´all ´o r ¨ovid id˝o (kb. 14×3 ´ora) nem el´eg a teljes k ¨or ˝u t´argyal´as´ara, ez´ert a legfontosabb defin´ıci ´okat, ¨osszef ¨ugg´eseket ´es az elm´eletet az ´erintett elj´ar´asok t´argyal´asa el˝ott csak a felt´etlen ¨ul sz ¨uks´eges terjedelemben ismertetj ¨uk. A teljesen ¨on´all ´o optimaliz´al´ashoz ez persze nem elegend˝o. Ennek ellen´ere b´ızom benne, hogy a t´argyalt anyag seg´ıt a leggyakoribb hib´akat elker ¨ulni, ´es a viszonylag k ¨onnyen kezelhet˝o programok seg´ıts´eg´evel (t´amaszkodva a mind t ¨obb esetben rendelkez´esre ´all ´o readme f´ajlokra, s ´ug ´o, tan´acsad ´o var´azsl ´okra) ¨on´all ´o munk´aval is lehets´eges a tov´abbi sz ¨uks´eges modellek ´es elj´ar´asok megismer´ese. A teljes itt k ¨ozreadott anyag t ¨obb, mint amit egy f´el´eves kurzusban ´at lehet adni, ez n´emi rugalmass´agot k ¨ovetel az el˝oad ´ot ´ol, illetve a gyakorlatvezet˝ot˝ol.

Tov´abbi c´el seg´ıts´eget ny ´ujtani az optimaliz´al´asi, oper´aci ´okutat´asi vizsg´alatokhoz olyanok sz´am´ara is, akik ezt a hagyom´anyos k´epz´es keret´eben nem tanult´ak. ´Igy a jegyzet alapj´an az egyszer ˝ubb feladatok eset´en az olvas ´o elegend˝o ´utmutat´ast kap ahhoz, hogy a feladat´at ´ugy fogalmazza meg, illetve ´ırja ´at, hogy az a rendelkez´esre ´all ´o szoftverrel hat´ekonyan megoldhat ´o legyen.

A kreditrendszerre val ´o ´att´er´essel megv´altozott a tant´argyak teljes´ıt´es´enek felt´etele is. A f´elre´ert´esek, t´eved´esek elker ¨ul´ese c´elj´ab ´ol hasznos el˝ore ´attekinteni az Informatikai Int´ezet vend´egoldal´an hogy mi mindent kell ahhoz teljes´ıteni, hogy a vizsg´ara bocs´athat ´os´agi szintet el lehessen ´erni.

Itt mondok k ¨osz ¨onetet kor´abbi hallgat ´oimnak ´es munkat´arsaimnak a jegyzet l´etrej ¨ott´ehez, illetve a jav´ıt´as´ahoz ny ´ujtott seg´ıts´eg ¨uk´ert. V´arom a tov´abbi v´elem´enyeket ´es javaslatokat is. A tananyag az EFOP-3.5.1-16-2017-00004 p´aly´azat t´amogat´as´aval k´esz ¨ult.

Szeged, 2018. szeptember

a szerz˝o 3

(3)

4

(4)

Jel ¨ol´esek

Itt a legfontosabb, szinte mindig a megadott form´aban haszn´alatos jel ¨ol´eseket adjuk meg, de ezekt˝ol helyenk´ent – ahol a t´argyal´as ezt megk ¨oveteli – elt´erhet ¨unk.

AD automatikus differenci´al´as

α intervallum sorozatok konvergencia rendje c(X) a k ¨ozponti alak alappontja azX intervallumban f(x) a c´elf ¨uggv´eny

f(X) a c´elf ¨uggv´eny ´ert´ekk´eszlete azXintervallumon

F(X) a c´elf ¨uggv´eny befoglal ´o f ¨uggv´enye azXintervallumon F(X) az egyv´altoz ´os f ¨uggv´eny deriv´altja befoglal ´o f ¨uggv´enye f(x) a glob´alis minimum ´ert´eke

f˜ intervallumos optimaliz´al´asi m ´odszerben a glob´alis minimum ak- tu´alis fels˝o becsl´ese

gi(x) egy felt´eteli f ¨uggv´eny

H(x) a c´elf ¨uggv´eny Hesse-m´atrixa

H(X) a c´elf ¨uggv´eny Hesse-m´atrixa befoglal ´o f ¨uggv´enye

I a kompakt intervallumok halmaza

In azn-dimenzi ´os kompakt intervallumok halmaza m(X) azX intervallum k ¨oz´eppontja

∇f(x) a c´elf ¨uggv´eny gradiense

R a val ´os sz´amok halmaza

Rn azn-dimenzi ´os val ´os vektorok halmaza x, y, ... v´altoz ´ok

X, Y, ..., A, B, ... intervallumok vagy m´atrixok

X, X azX intervallum als ´o ´es fels˝o korl´atja,X = [X, X]

x a glob´alis minimumpont w(X) azXintervallum sz´eless´ege

5

(5)

6 Jel ¨ol´esek

(6)

1. fejezet Bevezet´es

Optimaliz´al´asi feladatok a mindennapi ´elet sz´amos ter ¨ulet´en el˝ofordulnak, f˝oleg a m´ern ¨oki, gaz- das´agi alkalmaz´asok ter ¨ulet´en, de term´eszetesen a tudom´anyos kutat´asban is. Ide tartoznak azok a probl´em´ak, amelyekben a k´erd´esfeltev´es a k ¨ovetkez˝o s´em´at k ¨oveti: mikor lesz minim´alis egy mennyis´eg, melyik esetben optim´alis egy be´all´ıt´as, milyen param´eterek mellett lesz maxim´alis egy egy ¨utthat ´o ´ert´eke stb. Gyakorlati esetben a hasonl ´o k´erd´esek ´ugy hangzanak p´eld´aul, hogy:

mikor lesz a legnagyobb a profit, ha k ¨ul ¨onben adott termel´esi felt´eteleknek elegettesz ¨unk, mely esetben lesz minim´alis a k ¨olts´ege egy beruh´az´asnak, mik ¨ozben el˝o´ırt mennyis´eget gy´artunk, ´es a lehets´eges megold´asainkat felt´etelek korl´atozz´ak.

Az optimaliz´al´as a matematika, azon bel ¨ul az oper´aci ´okutat´as, vagy m´as szempontb ´ol a numerikus matematika r´esze. ´Erintkezik a sz´am´ıt´astudom´annyal, ´es van sz´am´ıt´astechnikai vet ¨ulete is. Az oper´aci ´okutat´as mint ¨on´all ´o tudom´anyter ¨ulet a m ´ult sz´azad k ¨ozep´et˝ol l´etezik,

´es sz´amos k ¨oz ¨os r´eszter ¨ulete van az alkalmazott matematik´aval. Az OR Today c´ım ˝u szakmai foly ´oirat egy kor´abbi felm´er´ese szerint az Amerikai Egyes ¨ult ´Allamokban az oper´aci ´okutat´asi szakemberek ´all´askil´at´asa volt a negyedik legjobb a vizsg´alt nagyon sok szakma k ¨oz ¨ul.

A finomabb kategoriz´al´as szerint a glob´alis optimaliz´al´as a nemline´aris optimaliz´al´as, vagy m´as n´even a matematikai programoz´as t´emak ¨or´ehez tartozik. Az ut ´obbi n´ev a line´aris prog- ramoz´as anal ´ogi´aj´ara azt a ter ¨uletet jel ¨oli, amikor az optimaliz´aland ´o f ¨uggv´eny, vagy a felt´eteli halmazt kijel ¨ol˝o f ¨uggv´enyek valamelyike nem line´aris.

Az egyik, Hans-Paul Schwefel professzort ´ol hallott t ¨ort´enet szerint a SIEMENS c´eg sz´am´ara az atomer˝om ˝uvek f ˝ut˝oelemeinek elhelyez´es´et optimaliz´alt´ak egy (k´es˝obb t´argyalt) ´un. evol ´uci ´os al- goritmussal. A m´ern ¨ok ¨ok ´altal gyakorlati megfontol´asokon ´es szimmetria elven alapul ´o kor´abbi megold´ason kb. egy sz´azal´ekot siker ¨ult jav´ıtani a hat´ekonys´ag szempontj´ab ´ol. Ennek ellen´ere nem tudhat ´o, hogy mi lenne az optim´alis elhelyez´es, ´es az sem, hogy a jelen megold´as a c´el- f ¨uggv´eny ´ert´ek´eben mennyire t´er el att ´ol. M´egis, az ´uj elhelyez´esi javaslat akkora megtakar´ıt´ast jelentett, hogy a kutat ´o int´ezete n´emet M´ark´aban is 9 jegy ˝u t´amogat´asban r´eszes ¨ult.

Egy m´asik hasonl ´o, nagy volumen ˝u optimaliz´al´asi feladatban egy nagy eur ´opai multi sz´am´ara kellett a telephelyek optim´alis elhelyez´es´et meghat´arozni. Jellemz˝o m ´odon a feladat modellj´enek fel´all´ıt´asa nem volt trivi´alis, ´es a piacon kaphat ´o kereskedelmi optimaliz´al ´o szoftver nem volt alkalmas a feladat k ¨ozvetlen megold´as´ara. A tal´alt k ¨ozel´ıt˝o megold´as kb. 7%-os megtakar´ıt´ast jelentett, mik ¨ozben az ´erintett v´allalkoz´as ´eves p´enzforgalma Eur ´oban is t ¨obb sz´azmilli ´os volt.

A 2000-ben Budapesten rendezett EURO nev ˝u oper´aci ´okutat´asi konferenci´an (a konferencia internetes vend´egoldala ahttp://www.sztaki.hu/conferences/euro17/c´ımen ´erhet˝o el) George L. Nemhauser professzor Large-Scale Discrete Optimization in Airline Scheduling c´ım ˝u plen´aris el˝oad´as´aval arr ´ol sz´amolt be, hogy az amerikai l´egit´arsas´agok optimaliz´al´asi feladatai (pl. a szem´elyzet beoszt´asa, ¨utemez´esi, hozz´arendel´esi ´es sz´all´ıt´asi feladatok) az ´evi t ¨obb milli´ard

7

(7)

8 1. FEJEZET, BEVEZET ´ES Doll´aros k ¨olts´egek sz´azal´ekos nagys´agrendj´et is megtakar´ıthatj´ak.

Saj´at eset ¨unkben a K ´ESZ Kft. sz´am´ara kerest ¨unk egy olyan gyors algoritmust, amely k´epes a napi ´ep´ıt´esi feladatokhoz meghat´arozni azt, hogy a leszaband ´o munkadarabokat milyen sorrendben ´es milyen orient´al´assal v´agj´ak ki a rakt´aron lev˝o k ¨ul ¨onb ¨oz˝o profil ´u ac´el rudakb ´ol

´ugy, hogy a vesztes´eg minim´alis legyen. A teljes lesz´amol´as kb. annyi eset megvizsg´al´as´at ig´enyelte volna, ah´any elemi r´eszecske van az univerzumban (´es emiatt nyilv´an kivitelezhetetlen lett volna). A javasolt heurisztika a r´eszfeladatok nagy r´esz´en garant´altan optim´alis megold´ast szolg´altatott, a t ¨obbin pedig jobb eredm´enyeket tudott adni, mint a kor´abban haszn´alt elj´ar´as.

Az ilyen jelleg ˝u nyersanyagok felhaszn´al´as´anak ´eves volumene az ´erintett v´allalatn´al milli´ardos nagys´agrend ˝u.

Ezen p´eld´ak mindegyik´eben kimondatlanul is nyilv´an a legjobb megold´as megtal´al´as´aban vol- tunk ´erdekeltek, ´es nem csak egy olyant keres ¨unk, amely egy sz ˝uk k ¨ornyezet´eben a legjobb

´ert´eket adja. Emiatt ezek is a glob´alis optimaliz´al´as t´emak ¨or´ebe tartoznak. Ennek ellen´ere a glob´alis optimaliz´al´asi feladatok leggyakoribb kezel´esi m ´odja az ignor´al´as, teh´at a felhaszn´al ´o sokszor megel´egszik egy helyi keres˝o elj´ar´as ´altal adott k ¨ozel´ıt˝o megold´assal — ami nyilv´anval ´o m ´odon mind a c´elf ¨uggv´eny´ert´ekben, mind a tal´alt optimaliz´aland ´o v´altoz ´ok ´ert´ek´eben tetsz˝o- legesen messze lehet a val ´odi megold´ast ´ol.

1.1. Intervallum matematika

1.1.1. Intervallum-aritmetika ´es a befoglal ´o f ¨uggv´enyek

Legyen I a kompakt val ´os intervallumok tere. Az intervallum-aritmetika m ˝uveletei ezen a halmazon vannak ´ertelmezve. A m ˝uveleteket ´ugy kell defini´alni, hogy az A ◦ B eredm´enye egy olyan C intervallum legyen, amely pontosan azon c val ´os sz´amok halmaza, amelyekhez l´eteznek olyan a ∈ A ´es b ∈ B val ´osok, hogy c = a◦b. Itt ◦ a n´egy alapm ˝uvelet valamelyik´et jel ¨oli. Az ilyen aritmetika seg´ıts´eg´evel k ¨ovetni lehet a kerek´ıt´esi hib´akat, ´es az adatainkat terhel˝o bizonytalans´ag t ¨ukr ¨oz˝odhet az eredm´enyekben.

Az el˝oz˝o defin´ıci ´o mellett az intervallum-aritmetik´at lehet kiz´ar ´olag a val ´os aritmetik´ara t´amaszkodva is defini´alni. Az[a, b] ´es[c, d] intervallumokra legyen

[a, b] + [c, d] = [a+c, b+d], [a, b]−[c, d] = [a−d, b−c],

[a, b][c, d] = [min(ac, ad, bc, bd), max(ac, ad, bc, bd)], [a, b]/[c, d] = [a, b][1/d, 1/c].

Az oszt´ast csak akkor ´ertelmezz ¨uk, ha 0 ∈/ [c, d]. ´Erdemes megjegyezni, hogy ez ut ´obbi felt´etel j ´ol megfogalmazott gyakorlati feladatokban tapasztalataink szerint szinte kiv´etel n´elk ¨ul teljes ¨ul.

A val ´os m ˝uveleteknek ezt a kiterjeszt´es´et intervallumokra term´eszetes vagy naiv intervallum- kiterjeszt´esnek nevezik. Az ut ´obbi ´evekben vizsg´alj´ak az olyan intervallum-aritmetik´akat is, ame- lyek nem csak kompakt intervallumokon defini´altak. Ezeken a null´at tartalmaz ´o intervallummal val ´o oszt´as is ´ertelmezhet˝o.

B´ar az alapm ˝uveletek pontosak a fenti ´ertelemben, m´egis, a vel ¨uk kisz´am´ıtott bonyolultabb f ¨uggv´enyek durva becsl´esei is lehetnek a megfelel˝o ´ert´ekk´eszletnek. A gyakran emlegetett p´elda a k ¨ovetkez˝o: az x − x2 ´ert´ekk´eszlete a [0, 2] intervallumon [−2, 0,25]. Ezzel szemben az intervallum-kiterjeszt´essel ad ´od ´o intervallum [−4, 2].

(8)

1.1. INTERVALLUM MATEMATIKA 9 Az intervallum-aritmetika m ˝uveleteinek tulajdons´agaival foglalkozik az intervallum-algebra.

Sz´amos, a val ´os m ˝uveletekre ´erv´enyes tulajdons´ag v´altozatlanul teljes ¨ul az intervallum-m ˝uvele- tekre is (pl. a kommutativit´as, asszociativit´as az ¨osszead´asra ´es a szorz´asra), de ´altal´aban nincs inverz, ´es ´erv´enyes a szubdisztrib ´uci ´os tulajdons´ag: A(B+C)⊆AB +AC.

Az alapm ˝uveletekhez hasonl ´oan k ¨onnyen lehet defini´alni az elemi f ¨uggv´enyek intervallum- kiterjeszt´es´et is, teh´at a sz´am´ıt ´og´epen kisz´am´ıthat ´o f ¨uggv´enyeket szinte kiv´etel n´elk ¨ul meg lehet val ´os´ıtani term´eszetes intervallum-kiterjeszt´esben is.

Az intervallum-aritmetika alkalmaz´asa szempontj´ab ´ol alapvet˝o fogalom a befoglal ´o f ¨ugg- v´eny. Az F(X) :In→ Iaz f(x) n-v´altoz ´os val ´os f ¨uggv´eny befoglal ´o f ¨uggv´enye, haf(x)∈F(X)

´erv´enyes minden x ∈ X pontra ´es X ∈ In intervallumra. Az intervallum-matematika fontos eredm´enye, hogy az f(x) val ´os f ¨uggv´enyb˝ol term´eszetes (vagy naiv) intervallum-kiterjeszt´essel ad ´od ´o F(X)f ¨uggv´eny befoglal ´o f ¨uggv´eny.

A befoglal ´o f ¨uggv´enyekt˝ol term´eszetes azt elv´arni, hogy b˝ovebb argumentum-intervallumra ne adjanak sz ˝ukebb eredm´eny-intervallumot. Ezt a felt´etelt fogalmazza meg az izotonit´as: egy F(X) befoglal ´o f ¨uggv´eny akkor izoton, ha X ⊆ Y-b ´ol k ¨ovetkezik F(X) ⊆ F(Y). Az izotonit´as szinte minden intervallum-aritmetika implement´aci ´ora ´erv´enyes.

A befoglal ´o f ¨uggv´enyek min˝os´eg´enek fontos mutat ´oja a rend: azt mondjuk, hogy az F(X) befoglal ´o f ¨uggv´eny rendje α >0, ha l´etezik olyan c val ´os konstans, hogy w(F(X))−w(f(X))≤ cw(X)α teljes ¨ul minden X ∈ In-re, ahol w(X) az X intervallum sz´eless´ege, ´es X az X intervallum fels˝o korl´atja. A term´eszetes intervallum-kiterjeszt´essel ad ´od ´o befoglal ´o f ¨uggv´enyek els˝orend ˝uek, de kidolgozott a magasabbrend ˝u befoglal ´o f ¨uggv´enyek elm´elete is. Az egyn´el sz´ele- sebb intervallumokra a term´eszetes intervallum-kiterjeszt´est, a kisebbekre pedig a magasabb- rend ˝u befoglal ´o f ¨uggv´enyeket szokt´ak aj´anlani.

A sz´am´ıt ´og´epes megval ´os´ıt´as sor´an minden intervallum-m ˝uvelet v´egrehajt´asa ut´an a kapott intervallumot m ´odos´ıtani szok´as. Az intervallum als ´o hat´ar´at lefel´e, fels˝o hat´ar´at felfel´e kell kerek´ıteni a legk ¨ozelebbi ´abr´azolhat ´o sz´amra. Ezzel az ´ugynevezett kifel´e kerek´ıt´esi elj´ar´assal el lehet ´erni, hogy a befoglal´asi tulajdons´ag a kerek´ıt´esi hib´ak ellen´ere is fennmaradjon. Ezen a m ´odon sz´am´ıt ´og´eppel automatiz´alhat ´o a garant´alt megb´ızhat ´os´ag ´u befoglal ´o f ¨uggv´enyek el˝o´all´ıt´asa.

Az intervallum-aritmetik´ahoz haszn´alatos speci´alis kerek´ıt´eseket az IEEE szabv´any biztos´ıtja, ez´ert napjaink szinte minden processzora t´amogatja. A hetvenes ´evek k ¨ozep´et˝ol el´erhet˝ok olyan programoz´asi nyelvek, amelyek az INTERVAL adatt´ıpus haszn´alat´at t´amogatj´ak. Ilyen nyelveken m´eg az intervallum-aritmetik´at megval ´os´ıt ´o szubrutinokat sem kell meg´ırni: a megfelel˝o befog- lal ´o f ¨uggv´eny implement´al´as´ahoz elegend˝o a f ¨uggv´eny kisz´am´ıt´as´ahoz haszn´alt v´altoz ´ok t´ıpus´at megv´altoztatni.

A befoglal ´o f ¨uggv´enyekre t´amaszkod ´o numerikus algoritmusok ´erz´ekenyek a befoglal ´o f ¨uggv´eny min˝os´eg´ere, pontoss´ag´ara. A v´azolt term´eszetes intervallum-kiterjeszt´es mellett sz´amos m´as elj´ar´as is ismert a befoglal ´o f ¨uggv´enyek el˝o´all´ıt´as´ara, p´eld´aul a magasabbrend ˝u deriv´altakat is haszn´al ´o ´un. k ¨oz´epponti alakok, az automatikus deriv´al´asra ´es monotonit´as- vizsg´alatra ´ep ¨ul˝o strat´egi´ak a befoglal ´o f ¨uggv´eny jav´ıt´as´ara, illetve az optim´alis pontoss´ag ´u befoglal ´o f ¨uggv´enyt gener´al ´o elj´ar´as. Ezek a m ´odos´ıt´asok term´eszetesen n ¨ovelik az egy befog- lal ´o f ¨uggv´eny ki´ert´ekel´es´ehez sz ¨uks´eges sz´am´ıt´asok mennyis´eg´et.

Az intervallum matematik´at r´eszletesen t´argyal ´o jegyzet vagy magyar nyelv ˝u irodalom sajnos m´eg nincs. Angol ´es n´emet (esetleg orosz) nyelv ˝u bevezet˝o k ¨onyveket tudok aj´anlani:

1. G. Alefeld, J. Herzberger: Einf ¨uhrung in die Intervallrechnung, Bibliographises Institut AG, Mannheim, 1974.

(9)

10 1. FEJEZET, BEVEZET ´ES 2. G. Alefeld, J. Herzberger: Introduction to Interval Computations, Academic Press, New

York, 1983.

3. H. Ratschek, J. Rokne: Computer Methods for the Range of Functions, Ellis Horwood Ltd., Chichester, 1984.

4. S.A. Kalmikov, Yu.I. Sokin, Z.H. Yuldashev: Az intervallum-anal´ızis m ´odszerei (oroszul), Nauka, 1986.

5. H. Ratschek, J. Rokne: New Computer Methods for Global Optimization, Ellis Horwood Ltd., Chichester, 1988.

A jelenlegi numerikus elj´ar´asok szinte kiv´etel n´elk ¨ul helyi inform´aci ´on alapulnak: pl. a vizsg´alt f ¨uggv´enyt adott pontban ki´ert´ekel˝o szubrutin megad´as´at k´ıv´anj´ak meg. B´ar a sz ´obaj ¨ov˝o f ¨uggv´enyek pontos k´eplet´et, vagy legal´abb annak kisz´am´ıt´asi m ´odj´at ismerni kell, m´egis a legt ¨obb numerikus m ´odszer csak adott pontbeli f ¨uggv´eny´ert´ekre ´ep ¨ul. Sz´amos feladat ´es m ´odszer eset´en igazolhat ´o, hogy csak helyi inform´aci ´ora t´amaszkodva az illet˝o feladat v´eges sok l´ep´esben nem oldhat ´o meg, s˝ot, ilyen m ´odszer se l´etezhet (v ¨o. Cs. T., Acta Cybernetica, 1988). Az a paradox helyzet ´all fenn, hogy val ´oj´aban az illet˝o f ¨uggv´enyr˝ol l´enyegesen t ¨obbet tudunk, mint amennyit a legt ¨obb numerikus m ´odszer a megold´ashoz felhaszn´al. Ezek teh´at a fekete doboz elv´en m ˝uk ¨odnek.

Essz´e ´ır´asra a kapcsol ´od ´o v´alaszthat ´o t´em´ak a k ¨ovetkez˝ok:

• Affin aritmetika (Ronald van Iwaarden doktori dolgozata alapj´an)

• Back-boxing, illetve ǫ-infl´aci ´o (Ronald van Iwaarden doktori dolgozata alapj´an)

• Kiterjesztett intervallum aritmetik´ak, Kaucher-f´ele intervallum aritmetika (els˝osorban a Kearfott k ¨onyv alapj´an)

• Intervallumos Newton-iter´aci ´o, Prekond´ıcion´al´as (Kearfott k ¨onyve alapj´an)

• lejt˝o aritmetika (slope, Dietmar Ratz habilit´aci ´os disszert´aci ´oja alapj´an)

• v´altoz ´o pontoss´ag ´u aritmetik´ak

• Taylor-modellek (Martin Berz munk´ai alapj´an) Feladatok:

• ´Irjunk egy r¨ovid programot, amely h´arom val´os sz´amot ¨osszead, majd igazoljuk, hogy van h´arom sz´am, amelyre a program ´altal adott eredm´eny a t´enylegest˝ol legal´abb 2002-vel elt´er!

• M ´odos´ıtsuk a programot ´ugy, hogy az ut ´obbi h´arom sz´amra pontos legyen!

• Adjunk meg n´eh´any olyan ¨osszead ´o elj´ar´ast, amely a fenti probl´em´ara megold´ast jelenthet!

• Vizsg´aljuk meg az egyes algoritmusok m ˝uveletig´eny´et!

• Milyen m ´odszer felel meg a p´enz ¨ugyi sz´am´ıt´asokhoz, ahol l´enyeg´eben csak eg´esz sz´amok- kal sz´amolnak, de az´ert 100.˙3 + 100.˙3 + 100.˙3 = 301?

(10)

1.1. INTERVALLUM MATEMATIKA 11

• Mit lehet aj´anlani olyan alkalmaz´ashoz, ahol minden sz ´obaj ¨ov˝o sz´am racion´alis, ´es azt szeretn´enk, ha (xy)/y =x mindig teljes ¨ulne?

Postscript file-k´ent rendelkez´esre ´all ´o doktori dolgozatok, illetve k´eziratok:

1. S.L.P. Ferguson: Sphere Packings (a Kepler feladat megold´as´anak r´eszletei)

2. R.J. Van Iwaarden: An improved unconstrained global optimization algorithm, Denver, 1996.

3. F. Messine: Methodes d’Optimisation Globale basees sur l’Analyse d’Intervale pour la Resolution de Problemes avec Contraintes. Toulouse, 1997.

4. A. Wiethoff: Verifizierte globale Optimierung auf Parallelrechnern. Karlsruhe, 1997.

Alap ¨otlet: a val ´os sz´amokra v´egzett m ˝uveleteket ki lehet terjeszteni intervallumokra is, ´es ha valamely mennyis´egr˝ol nem egy konkr´et val ´os sz´ammal val ´o egyenl˝os´eg´et, hanem egy intervallumba val ´o tartoz´as´at ismerj ¨uk, akkor az intervallumokra v´egrehajtott m ˝uveletek c´elir´anyosnak t ˝unnek.

Halmazelm´eleti defin´ıci ´o: A◦B := {a◦b : a ∈ A, b ∈ B}; A, B ∈ I, ahol I a val ´os kompakt intervallumok halmaza (azaz olyan (i, j) p´arok´e, amelyekre i, j ∈R, ´es i≤j).

Aritmetikai defin´ıci ´o:

[a, b] + [c, d] = [a+c, b+d]

[a, b]−[c, d] = [a−d, b−c]

[a, b]∗[c, d] = [min(ac, ad, bc, bd),max(ac, ad, bc, bd)]

[a, b]/[c, d] = [a, b]∗[1/d,1/c], ha 0∈/ [c, d].

Megjegyz´es: az oszt´as defini´al´as´an´al a0∈/ [c, d]felt´etel gyakran el˝ofordul ´o megszor´ıt´asnak t ˝unik, de a tapasztalatok szerint nem az.

All´ıt´as:´ az aritmetikai defin´ıci ´o megfelel a halmazelm´eletinek, ´es viszont. Teh´at az intervallum- aritmetika ebben az ´ertelemben pontos.

Az intervallum-aritmetika algebrai tulajdons´agai:

• az + ´es a −, illetve az ∗ ´es a / nem inverzei egym´asnak, ha intervallumokra alkalmazzuk

˝oket. P´eld´aul [0,1]−[0,1] = [−1,1], ´es [1,2]/[1,2] = [1/2,2]. Valamint [0,0] + [0,1]−[0,1] = [−1,1] ´es az eredm´eny nem [0,0].

• ´erv´enyes az ´un. szubdisztrib ´uci ´os t ¨orv´eny, azaz A(B+C)⊆AB+AC. P´eld´aul[0,1]([1,1]− [1,1]) = [0,0] ⊂ [0,1][1,1]− [0,1][1,1] = [−1,1]. M´asr´eszt viszont az a ∈ R konstansra a(B +C) =aB+aC.

• ´erv´enyes az az ´altal´anos szab´aly is, hogy a 0-sz´eless´eg ˝u intervallumokra (amelyekrew(A) = 0, ahol w(A) = b − a, ha A = [a, b]) az intervallum-m ˝uveletek megegyeznek a val ´os sz´amokon szok´asos m ˝uveletekkel.

• az ¨osszead´as ´es a szorz´as kommutat´ıv ´es asszociat´ıv. Az egyetlen egys´egelem az [1,1], az egyetlen z´eruselem a [0,0].

(11)

12 1. FEJEZET, BEVEZET ´ES

• ´erv´enyes az intervallum-m ˝uveletek befoglal´asi izotonit´asa: A ⊆B, C ⊆D-b˝ol k ¨ovetkezik, hogy A◦C⊆B ◦D. (Persze csak akkor, ha az illet˝o m ˝uveletek defini´altak.)

• defini´aljuk az n-dimenzi ´os A ∈ In intervallum sz´eless´eg´et a koordin´at´ank´enti interval- lumok sz´eless´eg´enek maximumak´ent: w(A) := max(w(Ai) i = 1, . . . , n), ha A = (A1, A2, . . . , An)∈In. Ekkor teljes ¨ulnek a k ¨ovetkez˝ok:

1. haA ⊆B, akkor w(A)≤w(B)

2. w(C+D) =w(C) +w(D)(az egy dimenzi ´os esetben) 3. w(aB) =|a|w(B)

• Defini´aljuk az Aintervallum m(A) k ¨oz´eppontj´at a k ¨ovetkez˝ok szerint: m(A) = (a+b)/2, ha A ∈I, ´es m(A) = (m(A1), m(A2), . . . , m(An)), ha A∈In. Ekkor m(A±B) =m(A)±m(B), ha A, B ∈In.

1.1.2. Intervallum-feloszt´asi algoritmus

Az intervallum-feloszt´asi (Moore-Skelboe) algoritmus adott nemline´aris f ¨uggv´eny valamely intervallumon vett glob´alis minimum´anak als ´o- ´es fels˝obecsl´es´et adja meg. A kezdeti X intervallumban egy olyan X-t keres meg, hogy F(X) tartalmazza a glob´alis minimum ´ert´ek´et,

´es az F(X) intervallum sz´eless´ege kisebb legyen, mint egy el˝ore adott ε pozit´ıv konstans. Az algoritmus a k ¨ovetkez˝o:

1. Legyen Y :=X ´es y:= minF(X). Inicializ´aljuk az L= ((Y, y))list´at.

2. V´alasszunk egy olyan k koordin´at´at, amellyel p´arhuzamosan az Y = Y1 × · · · × Yn-nek maxim´alis hossz ´us´ag ´u ´ele van.

3. V´agjuk kett´e Y -t a k ir´any ment´en: ´ıgy olyan V1 ´es V2 boxokat kapunk, amelyekre Y =V1∪V2.

4. Sz´am´ıtsuk ki F(V1)-et ´es F(V2)-t, ´es legyen vi = minF(Vi) i= 1, 2-re.

5. T ¨or ¨olj ¨uk (Y, y)-t az L list´ab ´ol.

(a) Monotonit´asi-vizsg´alat: t ¨or ¨olj ¨uk a (Vi, vi) p´art, ha0∈/ Fj(Vi)valamelyj (1≤j ≤n)-re

´es i= 1, 2-re.

(b) Kiv´ag´asi-vizsg´alat: t ¨or ¨olj ¨uk a (Vi, vi) p´art, ha vi > δ (ahol δ adott elj´ar´as-param´eter,

´altal´aban a glob´alis minimum legjobb ismert fels˝o korl´atja) ´es i= 1, 2.

6. Tegy ¨uk a (V1, v1) ´es (V2, v2) p´arokb ´ol a megmaradtakat a list´aba. Ha a lista ¨ures, akkor STOP.

7. Jel ¨olj ¨uk a lista azon p´arj´at, amelynek m´asodik eleme a legkisebb, (Y, y)-al.

8. Ha F(Y) sz´eless´ege kisebb, mint ε, akkor nyomtassuk ki F(Y) ´es Y ´ert´ek´et, ´es STOP.

9. Folytassuk az algoritmust a 2. l´ep´esn´el.

(12)

1.1. INTERVALLUM MATEMATIKA 13 Az 5a pontbeli monotonit´asi teszt akkor t ¨or ¨ol valamely intervallumot, ha azon az f(x) f ¨uggv´eny szigor ´uan monoton. Ilyen esetben az adott intervallum nem tartalmazhat a belsej´eben mini- mumpontot. Ha az algoritmus azzal ´all le, hogy ¨ures lett a lista, akkor meg kell vizsg´alni, hogy nem lehetett-e minimumpont az eredetiX intervallum hat´ar´an (p´eld´aul ´ugy, hogy az algoritmust

´ujraind´ıtjuk egy Xˆ ⊃ X intervallummal. M´asik megold´as lehet, ha az 5a l´ep´esben a t ¨orl´es helyett az aktu´alis intervallumot helyettes´ıtj ¨uk a megfelel˝o lapj´aval. Ekkor nincs sz ¨uks´eg az Xˆ intervallummal val ´o ellen˝orz´esre.

Az 5b pontbeli kiv´ag´asi teszt olyan r´eszintervallumokat dob el, amelyekre az f(x) f ¨uggv´eny lehets´eges legkisebb ´ert´eke is nagyobb, mint δ. A δ ´ert´ek´et megv´alaszthatjuk a feladatra vonatkoz ´o el˝ozetes inform´aci ´oink alapj´an, de adapt´ıv m ´odon is: kezdetben legyenδ= maxF(X), majd minden v´ag´asn´al δ = min(δ, maxF(V1), maxF(V2)). Algoritmusunk 5b l´ep´ese az ut ´obbi elj´ar´assal biztos nem dob ki olyan r´eszintervallumot, amelyben glob´alis minimumpont van.

Teszteredm´enyek az 5a, 5b l´ep´esek n´elk ¨ul, illetve az 5a l´ep´essel:

S5 S7 S10 H3 H6 GP RB SHCB RCOS

STU 0.4 0.7 1.4 244.3 249.8 199.5 0.1 142.7 0.1

NFE 90 186 204 11453 11319 10499 56 9024 98

NDE – – – – – – – – –

LLI 48 137 166 5000 5000 5000 28 5000 47

EFF 0.3 0.6 0.5 97.5 49.0 52.8 0.3 77.5 0.8

S5 S7 S10 H3 H6 GP RB SHCB RCOS

STU 1.2 1.7 2.5 9.5 75.2 746.8 0.1 0.9 0.4

NFE 86 92 94 722 2288 34850 56 384 98

NDE 205 219 227 1158 8141 46355 63 540 149

LLI 3 5 10 361 1238 5000 9 194 29

EFF 1.0 1.0 0.9 16.0 45.1 408.1 0.6 7.9 2.1

Itt S5 - RCOS standard glob´alis optimaliz´al´asi tesztf ¨uggv´enyek, a hat´ekonys´agot jelz˝o mutat ´ok pedig: STU – standard id˝oegys´eg, NFE – A f ¨uggv´enyh´ıv´asok sz´ama, NDE – a deriv´alth´ıv´asok sz´ama, LLI – a maxim´alis listahossz, ´es EFF az intervallumos m ´odszer relat´ıv hat´ekonys´aga, a hagyom´anyos, sztochasztikus algoritmusokhoz k´epest.

1.1.3. Intervallumos Newton m ´odszer

Azf(x)f ¨uggv´eny befoglal´as´at kisz´am´ıtjuk. Felt´etelezz ¨uk, hogyf(x)folytonos f ¨uggv´eny az[a, b]

intervallumon, ´es

0∈ {/ f(x), x∈[a, b]}´esf(a)f(b)<0.

(13)

14 1. FEJEZET, BEVEZET ´ES Ha az f(x) z´erushely´enek egy Xn befoglal´asa ismert, egy jobb Xn+1 befoglal´ast a k ¨ovetkez˝o iter´aci ´os k´eplettel kaphatunk:

Xn+1 :=

m(Xn)− f(m(Xn)) F(Xn)

∩Xn,

ahol m(X) az X intervallum egy bels˝o pontja (p´eld´aul a k ¨oz´eppontja). Tekints ¨uk az f(x) =

√x+ (x+ 1) cos(x) f ¨uggv´enyt a [2,3]intervallumon. A kapott iter´aci ´os sorozat az intervallumok w(Xk)sz´eless´eg´evel egy ¨utt:

k Xk w(Xk)

1 [2,0, 3,0] 1,0

2 [2,0, 2,3] 0,3

3 [2,05, 2,07] 0,02

4 [2,05903, 2,05906] 0,00003

5 [2,059045253413, 2,059045253417] 0,000000000004

Optimaliz´al´asi feladatokra nyilv´an a c´elf ¨uggv´eny deriv´altj´ara kell a k´epleteinket alkalmazni, hiszen annak a z´erushelyeit keress ¨uk. Ekkor az iter´aci ´os formula a k ¨ovetkez˝o lesz:

Xn+1 :=

m(Xn)− f(m(Xn)) F′′(Xn)

∩Xn.

Ittf(x) a c´elf ¨uggv´eny deriv´altja, F′′(X) pedig a m´asodik deriv´alt befoglal ´o f ¨uggv´enye. Vegy ¨uk

´eszre, hogy az iter´aci ´os k´eplet ¨unk nem f ¨ugg k ¨ozvetlen ¨ul mag´at ´ol a c´elf ¨uggv´enyt˝ol. Ez rendben is van abb ´ol a szempontb ´ol, hogy nyilv´an azonos iter´aci ´os sorozatot v´arunk f(x)-re, ´es annak eltoltj´ara, f(x) +c-re.

Id´ezet a C-XSC Toolbox k ¨onyvb˝ol1 az intervallumos Newton m ´odszernek az adott p´eld´ara val ´o haszn´alat´aval:

#include "interval.h" /* include interval arithmetic package */

#include "imath.h" /* include interval standard functions */

interval F (real& x) {

return sqrt(x) + (x+1) * cos(x);

}

interval Deriv (interval& x) {

return (1 / (2 * sqrt(x)) + cos(x) - (x+1) * sin(x));

}

int Criter (interval& x) { /* computing F(a) * F(b) < 0 */

interval Fa, Fb; /* using point intervals */

Fa = Inf(x); /* operator <= is the relational */

Fb = Sup(x); /* operator ’element of’ */

return (Sup(Fa*Fb) < 0.0 && !(0 <= Deriv(x)));

}

1Hammer, R. M. Hocks, U. Kulisch, D. Ratz: C++ Toolbox for Verified Computing. Springer, Berlin, 1995

(14)

1.1. INTERVALLUM MATEMATIKA 15 main() {

interval y, y_old;

real mid (interval&); /* prototype of the midpoint function */

cout << "Please enter starting interval:"; cin >> y;

while (Inf(y) != Sup(y)) { if (Criter(y)) {

do {

y_old = y;

cout << "y = " << y << "\n";

y = (mid(y)-F(mid(y))/Deriv(y)) & y; /* The iteration formula */

} /* & is the intersection */

while (y != y_old);

} else {

cout << "Criterion not satisfied! \n";

}

cout << "Please enter starting interval: ";

cin >> y;

} }

1.1.4. P´eld´ak

1. Az intervallumos Newton m ´odszer m ˝uk ¨od´es´enek illusztr´al´as´ara tekints ¨uk az f(x) = x2 −x f ¨uggv´enyt. Ez egy egyszer ˝u parabola, amelynek tengelye p´arhuzamos az y tengellyel, ´es amelynek k´et z´erushelye a 0 ´es az 1. A f ¨uggv´eny minimumpontja a 0,5, ahol itt a f ¨uggv´eny´ert´ek -0,25. A c´elf ¨uggv´eny ¨unk deriv´altja azf(x) = 2x−1, m´asodik deriv´altja pedig f′′(x) = 2).

Tekints ¨uk el˝osz ¨or az X0 = [0,1] indul ´o intervallumot, az iter´aci ´o els˝o l´ep´ese erre:

X1 =

m(X0)− f(m(X0)) F′′(X0)

∩X0 =

0,5− 0,0 [2,2]

∩[0,1] = [0,5,0,5]∩[0,1] = [0,5,0,5].

Ez azt jelenti, hogy pontos aritmetik´aval az intervallumos Newton m ´odszer egy l´ep´esben meg tudja hat´arozni egy kvadratikus f ¨uggv´eny minimum´at abszol ´ut pontosan. A kifel´e kerek´ıt´es ezen nyilv´an ront, de ezzel egy ¨utt is nagyon hat´ekony eszk ¨oz ez az optimaliz´al´asban. Nyilv´an

´altal´aban nem kvadratikus f ¨uggv´enyt kell optimaliz´alnunk, de mivel a sima f ¨uggv´enyeknek egy pont kis k ¨ornyezet´eben a kvadratikus k ¨ozel´ıt´es tetsz˝olegesen j ´o, ez´ert az intervallumos Newton m ´odszert˝ol hasonl ´oan j ´o hat´ekonys´agot v´arhatunk sima nemline´aris optimaliz´al´asban.

Eml´ıt´esre m´elt ´o az is, hogy p´eld´ankban nem volt t ´ulbecsl´es az ´erintett f ¨uggv´enyekben, mert mind a line´aris, mind a konstans f ¨uggv´enyhez (a kifel´e kerek´ıt´est lesz´am´ıtva az implement´aci ´o- ban) pontos befoglal ´o f ¨uggv´enyt kapunk m´ar a term´eszetes intervallum kiterjeszt´essel is.

Tekints ¨uk most az X0 = [0,2]kezd˝ointervallumot, erre a k ¨ovetkez˝ot kapjuk:

X1 =

m([0,2])−f(m([0,2])) F′′([0,2])

∩X0 =

1− 1,0 [2,2]

∩[0,2] = [0,5,0,5]∩[0,2] = [0,5,0,5].

Ebb˝ol az l´atszik, hogy az el˝oz˝o nagyszer ˝u eredm´enyben nem volt annak szerepe, hogy a kiindul ´o intervallum k ¨oz´eppontja volt a keresett minimumpont. Tekints ¨unk most egy olyan intervallumot,

(15)

16 1. FEJEZET, BEVEZET ´ES amely nem tartalmaz minimumpontot,X0 = [1,2]:

X1 =

m([1,2])− f(m([1,2])) F′′([1,2])

∩[1,2] =

1,5− 2,0 [2,2]

∩[1,2] = [0,5,0,5]∩[1,2] =∅. Az intervallumos Newton m ´odszer teh´at igazolta, hogy a keres´esi tartom´anyban nincs minimum- pont.

2. Vegy ¨uk most az el˝oz˝o p´elda c´elf ¨uggv´eny´enek a n´egyzet´et: f(x) =x4−2x3+x2. Ennek nyilv´an a 0 ´es az 1 pontok a minimumpontjai. Az els˝o ´es a m´asodik deriv´alt f ¨uggv´eny: f(x) = 4x3−6x2+2x, illetvef′′(x) = 12x2−12x+2. Els˝o keres´esi intervallumk´ent tekints ¨uk azX0 = [0,2]intervallumot, ami teh´at mindk´et minimumpontot (´es k ¨ozt ¨uk az egyetlen maximumpontot is) tartalmazza. Erre az intervallumos Newton m ´odszerrel a k ¨ovetkez˝o eredm´enyt kapjuk:

X1 =

m(X0)− f(m(X0)) F′′(X0)

∩X0 =

1− 0,0 [−22,50]

∩[0,2] = [−∞,∞]∩[0,2] = [0,2].

Ez a p´elda azt mutatja, hogy ha a kiindul´asi intervallumban t ¨obb sz´els˝o´ert´ek is van, akkor az intervallum nem v´altozik. Figyelj ¨uk meg, hogy a metszetk´epz´es kellett ahhoz, hogy a keres´esi intervallum ne n˝oj ¨on. A m´asodik deriv´alt most egy kvadratikus f ¨uggv´eny, amihez a befoglal ´o f ¨uggv´eny ´altal´aban csak t ´ulbecsl´essel adhat ´o meg. Eset ¨unkben az ´ert´ekk´eszlet, [−1,26]

l´enyegesen kisebb, mint a kapott befoglal´as: [−22,50]. Ennek ellen´ere az ´ert´ekk´eszlettel is a fenti eredm´enyt kaptuk volna, mivel az ´ert´ekk´eszlet is tartalmazza a null´at.

A m´asodik deriv´alt befoglal´as´ara a k ¨ovetkez˝o ´ert´ekeket kapjuk:

F′′([0,9,1,1]) = [−1,48,6,02], illetve

F′′([0,99,1,01]) = [1,6412,2,3612].

Sajnos ez a p´elda se igazolja azt a k ¨ozkelet ˝u v´eleked´est, hogy az intervallumos Newton m ´od- szert akkor ´erdemes haszn´alni, ha az argumentum intervallum sz´eless´ege egyn´el kisebb. Az elmondottak miatt csak a m´asodik esetben sz´am´ıthatunk arra, hogy a keres´esi intervallumunk m´eret´et cs ¨okkenteni tudjuk. Ekkor az eredm´eny ¨unk az [1, 1] intervallum. Ennek a magyar´azata pedig az, hogy a keres´esi intervallum k ¨oz´eppontj´aban az els˝o deriv´alt ´ert´eke nulla, m´asr´eszt a m´asodik deriv´alt ´ert´ekei minden ¨utt pozit´ıvak, ´ıgy a sz´els˝o´ert´eket a f ¨uggv´eny csak a k ¨oz´eppont- ban veheti fel.

Tekints ¨unk akkor most egy olyan intervallumot, amelynek felez˝opontja nem megold´as: [0,98, 1,01]. Erre az intervallumos Newton m ´odszerrel azt kapjuk, hogy

X1 =

m(X0)− f(m(X0)) F′′(X0)

∩X0 =

0,995− −0,0098505 [1,4048, 2,4812]

∩[0,98,1,01] =

= (0,995 + [0,003970, 0,007012])∩[0,98,1,01] = [0,99897,1,002012]∩[0,98,1,01] =

= [0,99897,1,002012].

Ezzel a megold´asunkra egy meglehet˝osen sz ˝uk intervallumot kaptunk: a keres´esi intervallum kb. tized´ere (a sz´eless´ege 0,03-r ´ol 0,003042-re) cs ¨okkent, ´es ezzel egy ¨utt a bizonytalans´agunk is a minimum hely´et illet˝oen.

(16)

1.2. AUTOMATIKUS DIFFERENCI ´AL ´AS 17 P ´ELDA. A SIAM (Ipari ´es Alkalmazott Matematikai) T´arsas´ag 2002-ben 10 numerikus feladatot t ˝uz ¨ott ki2. Feladatonk´ent 10 helyes decim´alis jeggyel 100 doll´art lehetett nyerni. A negyedik megadott feladat a k ¨ovetkez˝o f ¨uggv´eny minimaliz´al´asa volt:

exp(sin(50x)) + sin(60ey) + sin(70 sin(x)) + sin(sin(80y))−

−sin(10(x+y)) + 1

4(x2+y2).

A feladat megold´as´ara egy intervallum aritmetik´ara alapul ´o korl´atoz´as ´es sz´etv´alaszt´as m ´odszert haszn´altunk. A kapott eredm´eny a [−10.0,10.0] keres´esi tartom´anyon a glob´alis minimum ´ert´ek´ere a k ¨ovetkez˝o als ´o- ´es fels˝o korl´atokat adta:

[−3.306868647475316,−3.306868647475196].

Az eredm´enyben a kiemelt els˝o 13 jegy matematikai bizony´ıt ´oer˝ovel igazoltan helyes. Ehhez 0.26 m´asodperc CPU-id˝o, minim´alis mem ´oriaig´eny (75 r´eszintervallum t´arol´as´ara volt sz ¨uks´eg), 1975 c´elf ¨uggv´eny-, 1158 gradiens- ´es 92 Hesse-m´atrix ki´ert´ekel´es kellett mind ¨ossze.

1.2. Automatikus differenci´al´as

Ahogy a kor´abbiakban l´attuk, a differenci´al-h´anyadosoknak fontos szerep ¨uk van a nemline´aris optimaliz´al´asban, de a numerikus matematika sz´amos ter ¨uleten is szinte elengedhetetlen a hasz- n´alatuk. Ide tartoz ´o probl´em´ak vannak a nemline´aris egyenletmegold´asban, az ir´any´ıt´aselm´elet- ben ´es az ´erz´ekenys´eg-vizsg´alatban is. Tal´an a legismertebb eset a f ¨uggv´enyek z´erushely´enek megkeres´ese, itt a deriv´alt haszn´alat´aval m ˝uk ¨od˝o Newton-Rawson elj´ar´as konvergencia-sebess´e- ge l´enyegesen jobb, mint a deriv´altakat nem haszn´al ´o szel˝o- vagy h ´urm ´odszer´e.

Ma m´ar egyes programoz´asi nyelvek (pl. a PASCAL-XSC3) is t´amogatj´ak az automatikus differenci´al´ast megfelel˝o adatt´ıpussal ´es m ˝uveletekkel, ´es sz´amos szoftver is haszn´alja ezt a deriv´al´asi m ´odszert4.

1.2.1. Deriv´altak a sz´am´ıt ´og´epeken

A leggyakrabban haszn´alt k´et m ´odszer a deriv´alt´ert´ekek el˝o´all´ıt´as´ara azok numerikus k ¨ozel´ıt´ese

´es a ”k´ezzel” val ´o deriv´alt-meghat´aroz´as a deriv´al´asi szab´alyok alkalmaz´as´aval. A legt ¨obb numerikus matematikai monogr´afia ´es a professzion´alis numerikus programcsomagok t ¨obbs´ege is ezt a k´et utat javasolja. Mindk´et m ´odszernek vannak azonban olyan gyeng´ei, amelyek sz´amos feladatban lehetetlenn´e vagy ´ertelmetlenn´e teszik alkalmaz´asukat. A ritka kiv´etelek egyike Skeel

´es Keiper k ¨onyve5, amely a szimbolikus differenci´al´assal szemben is az automatikus deriv´al´ast javasolja.

´Erdekes ¨osszef ¨ugg´esek vannak a deriv´al´as ´es az integr´al´as analitikus, illetve numerikus meg- hat´aroz´asa k ¨oz ¨ott is. Az analitikus deriv´al´as k ¨onnyen, csaknem mechanikusan v´egrehajthat ´o,

2Nick Trefethen: A Hundred-Dollar, Hundred-digit Challenge. SIAM News 35(2002)

3Klatte, R., U. Kulisch, M. Neaga, D. Ratz, Ch. Ullrich: PASCAL-XSC, Springer-Verlag, Berlin, 1991.

4Pl. a D. Ratz: Automatische Ergebnisverifikation bei globalen Optimierungsproblemen. (Doktori ´ertekez´es, Karlsruhei Egyetem, 1992.) c´ım ˝u disszert´aci ´oban le´ırt optimaliz´al´asi elj´ar´as, amely csak a c´elf ¨uggv´eny megad´as´at ig´enyli.

5Skeel, R.D., J.B. Keiper: Elementary Numerical Computing with MATHEMATICA. McGraw-Hill Inc., New York, 1993.

(17)

18 1. FEJEZET, BEVEZET ´ES m´ıg az analitikus integr´al´as neh´ez vagy ak´ar lehetetlen is lehet. Ezzel szemben a numerikus k ¨ozel´ıt´es a deriv´altra gyakran pontatlan, m´ıg az integr´alra ´altal´aban pontosabb.

A numerikus differenci´al´as viszonylag k ¨onnyen programozhat ´o, sokszor a k ¨onyvt´ari program maga ´all´ıtja ˝oket el˝o, ha a felhaszn´al ´o nem adott meg szubrutint az analitikus deriv´altak kisz´am´ıt´as´ara. A numerikus deriv´alt haszn´alat´anak el˝onye, hogy

+ nincs el˝ozetes munkar´aford´ıt´as a deriv´altak ”k´ezzel” t ¨ort´en˝o el˝o´all´ıt´as´ara, + emiatt jav´ıtani sem kell az azok programoz´asa sor´an elk ¨ovetett hib´akat, ´es

+ akkor is m ˝uk ¨odik, ha az illet˝o f ¨uggv´eny k´eplet´et nem ismerj ¨uk, csak a kisz´amol´as´ara szolg´al ´o szubrutin adott.

H´atr´anya viszont, hogy

– a lev´ag´asi hiba miatt sok ´ert´ekes jegy veszik el. Ez a jelens´eg csak bonyolult, ´es nem is minden sz´am´ıt ´og´epes k ¨ornyezetben rendelkez´esre ´all ´o eszk ¨oz ¨okkel cs ¨okkenthet˝o (v´altoz ´o m´eret ˝u sz´am´abr´azol´as, racion´alis aritmetika stb.),

– a gyorsan v´altoz ´o deriv´altak becsl´es´ere alkalmatlan.

A h ¨uvelykszab´aly szerint – hacsak lehets´eges – ´erdemes el˝o´all´ıtani a deriv´altakat sz´am´ıt ´o szubrutinokat. Ezen elj´ar´as el˝onye, hogy

+ a lev´ag´asi hiba nem jelentkezik, a kisz´am´ıtott deriv´alt´ert´ekek ´altal´aban csak nagyon kis kerek´ıt´esi hib´aval terheltek, ´es

+ a gyorsan v´altoz ´o deriv´alt´ert´ekek is j ´ol meghat´arozhat ´ok.

A h´atr´anya ezzel szemben, hogy

– a deriv´altak k´eplet´enek meghat´aroz´asa munkaig´enyes, ´es a ”k´ezzel” val ´o el˝o´all´ıt´as eset´en gyakran komoly hibaforr´as, valamint

– csak a k´eplettel adott f ¨uggv´enyek deriv´altja hat´arozhat ´o meg ilyen m ´odon, teh´at a kiz´ar ´olag algoritmussal adottakat ´altal´aban nem lehet ´ıgy deriv´alni.

Itt kell megjegyezni, hogy a sz´am´ıt ´og´epes algebrarendszerek (mint p´eld´aul a Mathematica, a Maple vagy a Derive) szimbolikus manipul´aci ´oval el˝o tudj´ak ´all´ıtani a k´eplettel adott f ¨uggv´enyek deriv´altjait. ´Igy ez az el˝ok´esz´ıt˝o munka legal´abb sz´am´ıt ´og´epes´ıthet˝o, teh´at nem felt´etlen ¨ul kell

”k´ezzel” v´egrehajtani. Az ilyen szimbolikus deriv´al´as, a vele j´ar ´o egyszer ˝us´ıt´es ´es a programoz´asi nyelvre val ´o alak´ıt´as id˝oig´enye nagyon v´altoz ´o, mindenesetre a sz´am´ıt ´og´epes algebrarendszerek sokat fejl˝odtek ezen a t´eren az ut ´obbi id˝oben6.

Az automatikus differenci´al´as egyszer ˝uen abb ´ol az ig´enyb˝ol fakadt, hogy az el˝oz˝o m ´odszerek el˝onyeit kell egyes´ıteni a h´atr´anyok elhagy´as´aval. Olyan elj´ar´ast kerestek teh´at, amely

6L´asd Iri, M.: History of automatic differentiation and rounding error estimation, in: Griewank, A., G. Corliss (Eds.): Automatic Differentiation of Algorithms: Theory, Implementation, and Application. SIAM, Philadelphia, 1991. 3-16.

(18)

1.2. AUTOMATIKUS DIFFERENCI ´AL ´AS 19 1.. t´abl´azat. N´eh´any alapm ˝uvelet ´es elemi f ¨uggv´eny differenci´al´asa

y=f(x) a±x a∗x a/x √

x log(x) exp(x) cos(x) f(x) ±1 a −y/x 0.5/y 1/x y −sin(x)

+ l´enyeg´eben nem ig´enyel el˝ozetes r´aford´ıt´ast a deriv´altak ”k´ezzel-” vagy ak´ar sz´am´ıt ´og´epes algebrarendszerrel, szimbolikus manipul´aci ´oval val ´o meghat´aroz´as´ara,

+ emiatt nem is kell a megfelel˝o szubrutinokat programozni ´es jav´ıtani,

+ akkor is m ˝uk ¨odik, ha csak az illet˝o f ¨uggv´eny kisz´amol´as´ara szolg´al ´o szubrutin adott, de a f ¨uggv´eny k´eplete nem ismert,

+ a lev´ag´asi hiba miatt nem vesznek el ´ert´ekes jegyek,

+ a gyorsan v´altoz ´o deriv´altak meghat´aroz´as´ara is alkalmas, ´es

+ a deriv´altak kisz´am´ıt´as´anak m ˝uveletig´enye ´altal´aban kisebb, mint a numerikus deriv´al´as´e, illetve az analitikus deriv´altakat kisz´am´ıt ´o szubrutinok´e.

Maga az ¨otlet nem nagyon bonyolult, ´es jellemz˝o m ´odon t ¨obben egym´ast ´ol f ¨uggetlen ¨ul r´atal´altak7. Ha valaki kedvet ´erez hozz´a, maga is megpr ´ob´alhatja az automatikus differenci´al´ast

´ujra felfedezni: az el˝oz˝o felt´eteleket teljes´ıt˝o elj´ar´ast kell megadni (eddig nem ´arultunk el semmi l´enyegeset a tr ¨ukkb˝ol).

1.2.2. Az ¨otlet.

A tr ¨ukk mind ¨ossze annyi, hogy haszn´aljuk az adott f ¨uggv´enyre ismert kisz´am´ıt´asi elj´ar´ast az egyes m ˝uveletekhez tartoz ´o deriv´al´asi szab´alyokkal egy ¨utt. P´eld´aul haf(x) =f1(x)∗f2(x), akkor legyen f(x) ´ert´eke f1(x)∗f2(x) +f1(x)∗f2(x), ahol f1(x) ´es f2(x) ´ert´eke m´ar ismert. Minden egyes r´eszletsz´am´ıt´assal egy ¨utt teh´at a r´a vonatkoz ´o, az aktu´alis v´altoz ´o- ´es konstans´ert´ekekhez tartoz ´o deriv´alt´ert´eket is meghat´arozzuk. A kiindul´ashoz a v´altoz ´o deriv´altja term´eszetesen 1, a konstans´e nulla. Az 1. T´abl´azat egyes alapm ˝uveletek ´es elemi f ¨uggv´enyek differenci´al´as´anak form´alis le´ır´as´at tartalmazza, itt x v´altoz ´o, a pedig konstans.

Az automatikus differenci´al´as implement´al´asa sor´an c´elszer ˝u olyan adatszerkezetet v´alasz- tani, hogy minden, az illet˝o f ¨uggv´eny kisz´am´ıt´as´aban szerepet j´atsz ´o v´altoz ´o ´es konstans sz´am´ara egy rendezett p´art haszn´alunk, amelynek els˝o tagja a szok´asos ´ert´eket tartalmazza majd, a m´asodik tag pedig a hozz´a tartoz ´o deriv´alt´ert´eket. Ilyen adatstrukt ´ur´aval az ´uj m ˝uveleteket egyszer ˝u fel´ırni szubrutinok seg´ıts´eg´evel, vagy egyes ´ujabb programoz´asi nyelvekben (pl.

C++ vagy FORTRAN-90) az eredeti m ˝uveletek ´es standard f ¨uggv´enyek defin´ıci ´oj´anak az ´uj adatszerkezetre val ´o kiterjeszt´es´evel (operation overloading). Az ut ´obbi esetben a m´ar m ˝uk ¨od˝o, az eredeti f ¨uggv´enyt kisz´am´ıt ´o programban csak az adatt´ıpust kell kicser´elni (pl. ”real” helyett

”derivative” vagy ”gradient”), ´es m´aris rendelkez´esre ´allnak a k´ıv´ant deriv´alt´ert´ekek.

7Ostrovskij, G.M., Ju. M. Wolin, W.W. Borisov: ¨Uber die Berechnung von Ableitungen, Wissenschaftliche Zeitschrift der Technischen Hochschule f ¨ur Chemie, Leuna-Merseburg 13(1971) 382-384 ´es Wengert, R.E.: A simple automatic derivative evaluation program, Communications of the ACM 7(1964) 463-464.

(19)

20 1. FEJEZET, BEVEZET ´ES Tekints ¨unk egy egyszer ˝u p´eld´at az automatikus differenci´al´as haszn´alat´ara: hat´arozzuk meg az f(x) = (x−1)2 f ¨uggv´eny deriv´altj´at az x = 2 pontban! A differenci´alh´anyados-f ¨uggv´eny f(x) = 2(x−1), a keresett deriv´alt´ert´ek pedig 2.

A v´altoz ´onkhoz tartoz ´o p´ar(2,1), a f ¨uggv´enyben szerepl˝o konstanshoz tartoz ´o pedig(1,0). A z´ar ´ojelen bel ¨uli kifejez´es f(x) k´eplet´eben a (2,1)−(1,0) = (1,1)p´art eredm´enyezi. A n´egyzetre- emel´est szorz´assal ´ertelmezve az (1,1)∗(1,1) = (1,2) p´art kapjuk, amelyb˝ol kiolvashat ´o, hogy f(2) = 1, ´es f(2) = 2.

1.2.3. Kiterjeszt´esek.

A k´eplettel megadott f ¨uggv´enyek differenci´al´as´aval szemben szok´as kiemelni az ”algoritmusok differenci´al´as´at”. Ezen az automatikus differenci´al´as egyszer ˝u kiterjeszt´es´et ´ertik felt´eteles utas´ıt´asokat is tartalmaz ´o elj´ar´asokkal megadott f ¨uggv´enyek deriv´al´as´ara. Az ut ´obbiakkal kapcsolatban persze felvet˝odik, hogy differenci´alhat ´ok-e ezek egy´altal´an. Szerencs´ere ez a probl´ema ink´abb matematikai jelleg ˝u, ´es a technikai megold´ast nem nagyon befoly´asolja.

A magasabbrend ˝u deriv´altak el˝o´all´ıt´as´ahoz k´et ´ut k ¨oz ¨ott v´alaszthatunk: vagy k ¨ozvetlen ¨ul az egyes m ˝uveletekhez tartoz ´o magasabbrend ˝u deriv´al´asi k´epleteket haszn´aljuk (p´eld´aul, haf(x) = g(x)+h(x), akkorf′′(x) =g′′(x)+h′′(x)), vagy az alacsonyabbrend ˝u deriv´altak kisz´am´ıt´as´ara m´ar megl´ev˝o algoritmusra alkalmazzuk ism´etelten az algoritmusok differenci´al´as´at.

A t ¨obbv´altoz ´os f ¨uggv´enyek differenci´al´as´ara a bevezetett automatikus differenci´al´asi m ´odszer minden tov´abbi n´elk ¨ul alkalmazhat ´o, az egyes parci´alis deriv´altak meghat´aroz´asakor csak a v´altoz ´o-konstans viszonyt kell mindig megfelel˝oen tiszt´azni. Ez is k ¨onnyen programozhat ´o, ´es

´ıgy a gradiens, a Hesse- ´es a Jacobi-m´atrix kisz´am´ıt´asa is nagyon k´enyelmess´e tehet˝o.

1.2.4. Az automatikus differenci´al´as k´et v´altozata.

Az automatikus differenci´al´as legegyszer ˝ubb megval ´os´ıt´asa az, amikor a k ¨ul ¨onben m´ar rendelke- z´esre ´all ´o, az adott f ¨uggv´enyt kisz´am´ıt ´o programot kib˝ov´ıtj ¨uk az egyes m ˝uveletekhez tartoz ´o elemi deriv´al´asi l´ep´esekkel - megtartva az eredeti algoritmus szerkezet´et. Ezt a m ´odszert a tov´abbiakban sima algoritmusnak fogjuk nevezni. Az angol nyelv ˝u szakirodalomban nincs m´eg kialakult egys´eges elnevez´ese, a ”forward”, ”contravariant” vagy ”bottom-up” jelz˝okkel szo- k´as megk ¨ul ¨onb ¨oztetni (a m´asik, ford´ıtott elj´ar´as angolul ”reverse”, ”backward”, ”covariant”

vagy ”top-down”). A k´et elj´ar´as l´enyeg´eben az ¨osszetett f ¨uggv´enyek deriv´al´as´ahoz haszn´alatos l´ancszab´aly v´egrehajt´asi ir´any´aban k ¨ul ¨onb ¨ozik.

A sima elj´ar´as p´eld´aul azy=f(g(h(x), k(x))) f ¨uggv´eny automatikus differenci´al´asa sor´an a

du = h(x)dx, dv = k(x)dx,

dw = [gu(u, v)h(x) +gv(u, v)k(x)]dx, dy = f(w)[gu(u, v)h(x) +gv(u, v)k(x)]dx sorrendet k ¨oveti.

A ford´ıtott elj´ar´as az ellent´etes ir´anyban alkalmazza a l´ancszab´alyt:

dy = f(w)dw,

(20)

1.2. AUTOMATIKUS DIFFERENCI ´AL ´AS 21 dy = f(w)[gu(u, v)du+gv(u, v)dv],

dy = f(w)[gu(u, v)du+gv(u, v)k(x)dx], dy = f(w)[gu(u, v)dh(x) +gv(u, v)k(x)]dx.

A ford´ıtott algoritmus el˝onye abban van, hogy ez a v´egrehajt´asi sorrend lehet˝ov´e teszi t ¨obbv´altoz ´os f ¨uggv´enyek differenci´al´asa sor´an bizonyos sz ¨uks´egtelen m ˝uveletek elhagy´as´at.

Ennek az az ´ara (amit a k ¨ovetkez˝o szakasz adatai is al´at´amasztanak), hogy a ford´ıtott algoritmus t´arig´enye magasabb, ´es a sima algoritmus egymenetes v´egrehajt´as´aval szemben k´et menetet ig´enyel.

A k´et v´altozat k ¨oz ¨otti k ¨ul ¨onbs´eg megvil´ag´ıt´asa c´elj´ab ´ol tekints ¨uk az f(x) = x1(1 − x2)2 f ¨uggv´enyt az x = [2,1]T pontban. A sima elj´ar´as az egyes v´egrehajtott m ˝uveletekkel egy ¨utt a megfelel˝o deriv´alt´ert´ekeket is meghat´arozza:

f1 =x1 = 2 d1 = (1,0), f2 =x2 = 1 d2 = (0,1), f3 = 1 d3 = (0,0),

f4 =f3−f2 = 0 d4 =d3−d2 = (0,−1), f5 =f42 = 0 d5 = 2f4d4 = (0,0), f6 =f1f5 = 2 d6 =f1d5+d1f5 = (0,0).

A sima elj´ar´as ek ¨ozben esetleg t ¨obbsz ¨or is v´egrehajtja ugyanazt a m ˝uveletet, viszont nem ig´enyli a kisz´am´ıt´asi fa l´etrehoz´as´at ´es t´arol´as´at. A ford´ıtott algoritmus ezzel szemben el˝osz ¨or meghat´arozza azfi ´ert´ekeket ´es a kisz´am´ıt´asi f´at, majd ennek seg´ıts´eg´evel el˝o´all´ıtja adi =∂f /∂fi

´ert´ekeket:

d6 = 1 d5 =d6∂f6

∂f5 =d6f1 = 2, d4 =d5∂f5

∂f4 =d52f4 = 0, d3 =d4∂f∂f4

3 =d41 = 0, d2 =d4∂f∂f42 =d4(−1) = 0, d1 =d6∂f6

∂f1 =d6f5 = 0.

A gradiens ´ert´ek´et a [d1, d2]T vektor adja.

1.2.5. M ˝uvelet- ´es t´arig´eny.

A 2. T´abl´azat az automatikus differenci´al´as k´et v´altozat´anak m ˝uvelet- ´es t´arig´eny´et adja meg n´eh´any gyakori deriv´al´asi feladatra. A legmeglep˝obb adat tal´an az, hogy egy t ¨obbv´altoz ´os f ¨uggv´enynek ´es gradiens´enek meghat´aroz´asa a ford´ıtott algoritmussal legfeljebb n´egyszerannyi m ˝uveletet ig´enyel mint az illet˝o f ¨uggv´eny kisz´am´ıt´asa. A fels˝o korl´at teh´at nem is f ¨ugg k ¨ozvetlen ¨ul az illet˝o f ¨uggv´eny v´altoz ´oinak sz´am´at ´ol.

Az automatikus differenci´al´as m ˝uveletig´enye nagyj´ab ´ol megfeleltethet˝o egy ciklusmentes gr´afban a legr ¨ovidebb ´ut megkeres´ese m ˝uveletig´eny´enek, hozz´aadva a kisz´am´ıt´asi gr´af l´etre- hoz´as´anak m ˝uveletig´eny´et. A t´arig´eny nagy r´esz´et a kisz´am´ıt´asi gr´af t´arol´asa okozza. A t´ar- ´es m ˝uveletig´eny jav´ıt´asa ter´en m´eg v´arhat ´ok tov´abbi eredm´enyek, de az is l´atszik, hogy a t´arig´eny ink´abb csak a m ˝uveletig´eny rov´as´ara cs ¨okkenthet˝o (´es viszont).

(21)

22 1. FEJEZET, BEVEZET ´ES 2.. t´abl´azat. A fontosabb automatikus differenci´al´asi feladatok m ˝uvelet- ´es t´arig´enye. Magya- r´azat: f: egy n-v´altoz ´os f ¨uggv´eny, f: m darab n-v´altoz ´os f ¨uggv´eny, ∇f: az f gradiense, H: az f Hesse-m´atrixa, J: az f Jacobi-m´atrixa, L(.): az argumentumok meghat´aroz´as´anak m ˝uveletig´enye a {+,−,∗, /,√,log,exp,sin,cos} alapm ˝uveletek felett, ´es S(.): az argumentumok meghat´aroz´as´anak t´arig´enye.

Feladat Algoritmus

sima ford´ıtott L(f,∇f) ≤4nL(f) ≤4L(f) L(f,∇f, H) O(n2L(f)) ≤(10n+ 4)L(f)

L(f, J) O(nL(f)) ≤(3m+ 1)L(f) S(f,∇f) O(S(f)) O(S(f) +L(f)) S(f,∇f, H) O(S(f)) O(S(f) +L(f)) S(f, J) O(S(f)) O(S(f) +L(f))

1.2.6. Az automatikus differenci´al´as vesz´elyei.

Az el˝oz˝oek alapj´an ´ugy t ˝unhet, hogy az automatikus differenci´al´as sz´am´ıt ´og´epes megval ´os´ıt´asa probl´emamentes. Sajnos nem eg´eszen ez a helyzet, ´ıme n´eh´any p´elda:

1. A z´erus gy ¨ok ¨ok esete. Tekints ¨uk az f(x) = p

x41+x42 f ¨uggv´enyt. Ez differenci´alhat ´o, ´es a gradiense a (0.,0.)T pontban (0.,0.)T. Az automatikus differenci´al´as a n´egyzetgy ¨ok m ˝uvelethez azonban nem tud ´ert´eket rendelni, ha a gy ¨ok argumentuma nulla. A felhaszn´al ´o sz´am´ara ilyen esetekben az a leghasznosabb, ha az illet˝o implement´aci ´o felh´ıvja a figyelmet erre a hibalehet˝os´egre, pl. az IEEE aritmetik´at t´amogat ´o sz´am´ıt ´og´epekben a NaN (Not a Number) ´ert´ek hozz´arendel´es´evel.

2. A programel´agaz´as esete. Tekints ¨uk az al´abbi utas´ıt´ast:

if x= 1 then f(x) = 1 else f(x) =x2

Vil´agos, hogy az ´ıgy defini´alt f ¨uggv´eny folytonosan differenci´alhat ´o, m´egis az automatikus differenci´al´as a hamis f(1) = 0 ´ert´eket adja. A p´elda kicsit er˝oltetettnek t ˝unik, de viszony- lag gyakran el˝ofordul, hogy adott f ¨uggv´eny kisz´am´ıt´as´ara hasonl ´o m ´odon az argumentumok

´ert´ek´et˝ol f ¨ugg˝oen m´as ´es m´as elj´ar´ast adunk meg. Val ´odi megold´ast erre a probl´em´ara nem le- het javasolni, legfeljebb azt, hogy a jelens´eg tudat´aban (k ¨ul ¨on ¨osen az egyenl˝os´eg-felt´etellel adott programel´agaz´as eset´en) a felhaszn´al ´o ellen˝orizze, hogy ilyen hiba fell´ephet-e.

3. A hat´ar´ert´ekkel adott f ¨uggv´eny esete. Eddig a f ¨uggv´enyek megad´as´ara mindig v´eges elj´ar´ast haszn´altunk. Mi t ¨ort´enik akkor, ha ez a le´ır´as v´egtelen? K ¨onny ˝u olyan alkalmaz´asi p´eld´at mutatni, ahol a differenci´alni k´ıv´ant f ¨uggv´enyt csak egy iterat´ıv sorozattal tudjuk jellemezni.

A klasszikus anal´ızis szerint viszont a differenci´al´as ´es a hat´ar´ert´ekk´epz´es nem cser´elhet˝ok fel.

Tekints ¨uk a k ¨ovetkez˝o egyszer ˝u f ¨uggv´enysorozatot:

f1(x) =xe−x2, f2(x) =xe−x2e−x2, . . . , fk=x(e−x2)k, . . .

Automatikus differenci´al´assal (is) limk→∞fk(0) = 1, hab´ar a val ´odi f(x) hat´arf ¨uggv´enyre f(0) = 0. Ebben az esetben is csak azt lehet tan´acsolni, hogy a jelens´eg ismeret´eben az

(22)

1.2. AUTOMATIKUS DIFFERENCI ´AL ´AS 23 automatikus differenci´al´assal nyert ´ert´ekeket ellen˝orizni kell. Ehhez viszonylag k´enyelmesen haszn´alhat ´o elm´eleti eredm´enyek is rendelkez´esre ´allnak8.

1.2.7. Az automatikus differenci´al´as implement´al´asa.

A m´ar eml´ıtett PASCAL-XSC be´ep´ıtett adatt´ıpusainak ´es kiterjesztett alapm ˝uveleteinek a haszn´a- lata a legegyszer ˝ubb. A felhaszn´al ´onak mind ¨ossze a megfelel˝o adatt´ıpusokat kell megv´altoztat- nia. A FORTRAN-90 ´es C++ nyelvekben ezek az ´uj adatt´ıpusok ´es a kiterjesztett m ˝uveletek meg- val ´os´ıt´asa ut´an ugyanolyan k´enyelmesen lehet az automatikus differenci´al´as sima algoritmus´at alkalmazni, mint a PASCAL-XSC t´amogat´as´aval.

A k ¨ovetkez˝o egyszer ˝u p´eld´aban az f(x) = 25(x−1)/(x+ 2) f ¨uggv´eny ´es deriv´altja ´ert´ek´et hat´arozzuk meg automatikus differenci´al´assal azx= 2 pontban. A PASCAL-XSC implement´aci ´o

´erdekesebb r´eszleteit adjuk csak meg.

program pelda (input,output); type df_type = record f,df: real; end;

operator + (u,v: df_type) res: df_type; begin res.f:=u.f+v.f;

res.df:=u.df+v.df; end;

...

operator * (u,v: df_type) res: df_type; begin res.f:=u.f*v.f;

res.df:=u.df*v.f+u.f*v.df; end;

...

function df_var (h: real) : df_type; begin df_var.f:=h; df_var.df:=1.0; end;

var x,f: df_type;

h: real;

begin h:=2.0;

x:=df_var(h);

f:=25*(x-1)/(x+2);

writeln(’f, df:’,f.f,f.df);

end.

Sz´amos kev´esb´e eleg´ans, de ann´al hat´asosabb sz´am´ıt ´og´epes eszk ¨oz (preprocesszor, precom- piler, keresztford´ıt ´o ´es m´as programcsomag) ´erhet˝o el az automatikus differenci´al´as megval ´os´ıt´a- s´ara. Mintak´ent n´eh´any h´ıresebbnek az adatai:

• A JAKEF egy FORTRAN precompiler, amit az Argonne National Laboratory fejlesztett ki.

Inputk´ent egy skal´ar vagy vektorf ¨uggv´enyt kisz´am´ıt ´o szubrutint haszn´al, ´es eredm´enyk´ent egy a gradienst, illetve a Jacobi-m´atrixot el˝o´all´ıt ´o szubrutint ad. A ford´ıtott algoritmusra

´ep ¨ul. A dokument´aci ´ot ´es a forr´assz ¨oveget is meg lehet kapni. A NETLIB nev ˝u adatb´azis- ban tal´alhat ´o, b˝ovebb inform´aci ´ot ´ugy kaphatunk, hogy a netlib@research.att.com E-mail c´ımre egy ”send index” ¨uzenetet k ¨uld ¨unk.

8Fischer, H.: Special problems in automatic differentiation, in: Griewank, A., G. Corliss (Eds.): Automatic Differentiation of Algorithms: Theory, Implementation, and Application. SIAM, Philadelphia, 1991, 43-50.

(23)

24 1. FEJEZET, BEVEZET ´ES

• A FORTRAN programok sima algoritmussal val ´o automatikus differenci´al´as´ara szolg´al ´o GRAD programcsomag a k ¨ovetkez˝o c´ımen ´erhet˝o el: Larry Husch, Dept. Mathematics, University of Tenessee, Knoxville TN, USA, illetve husch@WUARCHIVE.WUSTL.EDU az elektronikus post´aval.

• Az ADOL-C egy C++ nyelven ´ırt rendszer, amely C vagy C++ nyelv ˝u algoritmusok differenci´al´as´ara alkalmas sima ´es ford´ıtott elj´ar´assal is. A forr´ask ´od ´es a dokument´aci ´o Andreas Griewank c´ım´en ´erhet˝o el (Argonne National Labs, Argonne, IL 60439, USA, illetve elektronikus post´aval griewank@antares.mcs.anl.gov).

• A MAPLE nev ˝u sz´am´ıt ´og´epes algebrarendszer az 5.1-es v´altozat´at ´ol kezdve a szimbolikus deriv´al´as mellett k´epes az automatikus differenci´al´asra is (a sima algoritmussal). Az

”optimize” rutinja cs ¨okkentheti a m ˝uveletig´enyt, ´es az eredm´enyt FORTRAN vagy C nyelven is ki tudja adni.

Meg kell m´eg eml´ıteni, hogy az automatikus differenci´al´ashoz term´eszetes m ´odon kapcsol- hat ´o a kerek´ıt´esi hib´ak becsl´ese ´es a sz´am´ıtott deriv´altak als ´o- ´es fels˝okorl´atjainak meghat´aroz´asa is. Az ut ´obbi feladatok (r´eszben az intervallum-aritmetik´ara t´amaszkodva) szint´en k´enyelmesen megoldhat ´ok sz´am´ıt ´og´epen. Az automatikus differenci´al´asnak b˝o irodalma ´erhet˝o el, eml´ıt´esre m´elt ´o a k ¨ovetkez˝o k´et cikk, illetve k ¨onyv:

• Kedem, G.: Automatic differentiation of computer programs, ACM Transactions on Mathe- matical Software 6(1980) 150-165.

• Rall, L.B.: Automatic Differentiation: Techniques and Applications. Lecture Notes In Computer Science, Vol. 120, Springer-Verlag, Berlin, 1981.

1.3. Ellen ˝orz ˝o k´erd´esek ´es gyakorl ´o feladatok

1. Ki lehet-e terjeszteni a n´egy alapm ˝uveletek val ´os sz´amokr ´ol intervallumokra?

2. Igaz-e, hogy k´et intervallum ¨osszege pontosan azokat a pontokat tartalmazza, amelyek el˝o´allnak a k´et argumentum-intervallumbeli pontok ¨osszegek´ent?

3. Milyen inform´aci ´ora t´amaszkodik a monotonit´asi teszt?

4. Mi okozza a befoglal ´o f ¨uggv´enyek durva becsl´es´et?

5. Mi a kifel´e-kerek´ıt´es?

6. H´any f´ele kerek´ıt´est enged meg az IEEE processzor-szabv´any?

7. Igaz-e, hogy egy szigor ´uan monoton f ¨uggv´eny deriv´altj´anak befoglal ´o f ¨uggv´enye nem tartalmazza a null´at?

8. Igaz-e, hogy az intervallumos befoglal ´o f ¨uggv´eny sz´am´ıt´asa mindig tov´abb tart, mint az eredeti val ´os f ¨uggv´eny´e?

9. Melyik elj´ar´assal kapjuk a legjobb befoglal ´o f ¨uggv´enyt az X*X-X f ¨uggv´enyre a [-1,1]

intervallumra? (X*X nem n´egyzetreemel´es, azonos pontoss´ag eset´en a gyorsabb elj´ar´as a jobb)

(24)

1.3. ELLEN ˝ORZ ˝O K ´ERD ´ESEK ´ES GYAKORL ´O FELADATOK 25 10. Melyik elj´ar´assal kapjuk a legrosszabb befoglal ´o f ¨uggv´enyt az X*X-X f ¨uggv´enyre a [-1,1]

intervallumra? (X*X nem n´egyzetreemel´es, azonos pontoss´ag eset´en a lassabb elj´ar´as a rosszabb)

11. Melyik elj´ar´assal kapjuk a legjobb befoglal ´o f ¨uggv´enyt az X*X-X f ¨uggv´enyre a [1,10]

intervallumra? (X*X nem n´egyzetreemel´es, azonos pontoss´ag eset´en a gyorsabb elj´ar´as a jobb)

12. Melyik elj´ar´assal kapjuk a legrosszabb befoglal ´o f ¨uggv´enyt az X*X-X f ¨uggv´enyre a [1, 10]

intervallumra? (X*X nem n´egyzetreemel´es, azonos pontoss´ag eset´en a lassabb elj´ar´as a rosszabb)

13. Melyik elj´ar´assal kapjuk a legjobb befoglal ´o f ¨uggv´enyt az X*X-X f ¨uggv´enyre a [0.4, 0.6]

intervallumra? (X*X nem n´egyzetreemel´es, azonos pontoss´ag eset´en a gyorsabb elj´ar´as a jobb)

14. Melyik elj´ar´assal kapjuk a legrosszabb befoglal ´o f ¨uggv´enyt az X*X-X f ¨uggv´enyre a [0.4, 0.6] intervallumra? (X*X nem n´egyzetreemel´es, azonos pontoss´ag eset´en a lassabb elj´ar´as a rosszabb)

15. Mutassunk p´eld´at arra az esetre, amikor w(X) +w(Y)6=w(X+Y)!

16. Mi a szubdisztrib ´uci ´os szab´aly?

17. Invert´alhat ´o-e az intervallumos ¨osszead´as?

18. Azonos-e az X intervallum n´egyzete X * X -el?

19. Reprezent´alhat ´ok-e mindig a val ´os m ˝uveletek intervallum-m ˝uveletekkel?

20. Igaz-e, hogy ha X r´esze Y-nak, akkor minden befoglal ´o f ¨uggv´enyre F(X) is r´esze F(Y)-nak?

21. Milyen programoz´asi nyelvek alkalmasak intervallum aritmetik´aval val ´o sz´amol´asra?

22. Igazoljuk, hogy a v´azolt elj´ar´as kerek´ıt´es n´elk ¨uli aritmetika eset´en pontosan a deriv´alt

´ert´ek´et adja.

23. Adjunk becsl´est arra, hogy az automatikus differenci´al´as ´es az analitikusan megadott deriv´alt m ˝uveletig´enye hogyan viszonyul egym´ashoz!

24. Hogyan m ˝uk ¨odik a bels˝of ¨uggv´eny deriv´al´asa eset ¨unkben?

25. Hogyan lehet elj´ar´asunkat t ¨obbv´altoz ´os f ¨uggv´enyek parci´alis deriv´al´as´ara kiterjeszteni?

(Mit kell konstansnak, ´es mit v´altoz ´onak tekinteni?)

26. Hat´arozzuk meg a m´asodrend ˝u deriv´altak el˝o´all´ıt´as´ahoz sz ¨uks´eges aritmetik´at!

27. Vizsg´aljuk meg annak lehet˝os´eg´et, hogy az automatikus differenci´al´ashoz hasonl ´oan fel´ep´ıt- het˝o (?) optimaliz´al´asi aritmetik´at milyen feladatokra lehet alkalmazni!

28. Az intervallumokra defini´alt m ˝uveletek pontosak, de pontosak-e az ezekkel fel´ep´ıtett f ¨uggv´enyek ? Mutassunk p´eld´at!

(25)

26 1. FEJEZET, BEVEZET ´ES 29. Milyen f ¨uggv´enyek intervallumon vett ´ert´ekk´eszlete sz´am´ıthat ´o puszt´an az intervallum

v´egpontjaiban felvett f ¨uggv´eny´ert´ekekkel?

30. Mit mondhatunk a konvex, ´es a konk´av f ¨uggv´enyek befoglal ´o-f ¨uggv´enyeir˝ol?

31. Pr ´ob´aljuk meg a val ´os sz´amokra ismert n´egy alapm ˝uveletet ´altal´anos´ıtani kompakt val ´os intervallumokra!

32. Igaz-e, hogy ha X r´esze Y-nak, akkor minden befoglal ´o f ¨uggv´enyre F(X) is r´esze F(Y)-nak?

33. Igaz-e, hogy egy szigor ´uan monoton f ¨uggv´eny deriv´altj´anak befoglal ´o f ¨uggv´enye nem tartalmazza a null´at?

34. Milyen intervallumot kapunk eredm´eny ¨ul, ha az f(x) = (2x − 1) ∗ (x2 − x) f ¨uggv´eny term´eszetes intervallum-kiterjeszt´es´et a [−1,1]intervallumon ki´ert´ekelj ¨uk?

35. Milyen inform´aci ´ora t´amaszkodik az intervallumos korl´atoz´as ´es sz´etv´alaszt´as t´ıpus ´u glob´alis optimaliz´al´asi algoritmusban a monotonit´asi teszt?

36. Defini´alja a term´eszetes intervallum kiterjeszt´est, ´es mutasson r´a p´eld´at!

37. Ismertesse az intervallum aritmetika n´eh´any, a val ´os aritmetik´a´et ´ol elt´er˝o algebrai tulaj- dons´ag´at!

38. ´Irja meg az automatikus differenci´al´as szubrutinjait, ´es tesztelje n´eh´any f ¨uggv´enyen!

(26)

2. fejezet

A h´atizs´ak feladat

Adottak sz´all´ıtand ´o t´argyak s ´ullyal (vagy t´erfogattal) ´es ´ert´ekkel (vagy fontoss´aggal). A feladat az, hogy meghat´arozzuk a h´atizs´akba beteend˝o holmiknak azt a r´eszhalmaz´at, amelyek az el˝oz˝o

´ertelemben a leghasznosabbak, ´es egy ¨utt bef´ernek a korl´atozott kapacit´as ´u h´atizs´akba.

Haszn´aljuk a k ¨ovetkez˝o jel ¨ol´est:

m a t´argyak sz´ama,

ai azi. t´argy s ´ulya,i= 1,2, . . . , m, ci azi. t´argy ´ert´eke,i= 1,2, . . . , m,

b a rakom´any megengedett maxim´alis ¨osszs ´ulya.

Legyen xi ´ert´eke 1, ha azi-edik t´argy beker ¨ult a h´atizs´akba, ´es 0, ha nem (i= 1,2, . . . , m).

A megoldand ´o feladat ezekkel fel´ırva:

max

m

X

i=1

cixi, felt´eve, hogy

m

X

i=1

aixi ≤b, ´es xi ∈ {0,1}, i= 1,2, . . . , m.

A h´atizs´ak feladat teh´at egy eg´esz´ert´ek ˝u, bin´aris line´aris programoz´asi feladat. Egy egyszer ˝u kiterjeszt´ese ad ´odik akkor, ha az elhelyezend˝o t´argyak k ¨oz ¨ott vannak azonosak. Ekkor az optimaliz´aland ´o v´altoz ´ok ´ert´ekei nemnegat´ıv eg´eszek lehetnek.

A feladat jellege miatt a kiindul´asi feladatra legt ¨obbsz ¨or fel lehet tenni azt, hogy a s ´ulyok ´es a s ´ulyhat´ar nemnegat´ıvak. Ennek ellen´ere mind azai, mind a ci ´ert´ekek el˝ojele tetsz˝oleges.

2.1. A h´atizs´ak feladat megold´asa teljes lesz´amol´assal

A h´atizs´ak feladatot megoldhatjuk a durva er˝o m ´odszer´evel (brute force, enumeration). Ennek l´enyege, hogy felsoroljuk az ¨osszes v´altoz ´o-kombin´aci ´ot, meghat´arozzuk a lehets´eges megold´a- sokra a c´elf ¨uggv´eny ´ert´ek´et, ´es kiv´alasztjuk ez alapj´an az optim´alisat.

27

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

T¨ or¨ olj¨ uk a tranzakci´ o azon elemeit, melyek nem elemei egyetlen olyan jel¨ oltnek sem, amit a tranzakci´ o tartalmaz. Ugyanis, ezek az elemek nagyobb m´ eret˝ u

Ez´ ert G b´ armely minv´ ag´ asa olyan, hogy megkaphat´ o a kit¨ untetett v-t egy alkalmas u cs´ ucst´ ol szepar´ al´ o minim´ alis v´ ag´ ask´ ent

Az X -beli oszlopokon ε-nal cs¨ okkentj¨ uk, az N(X )-beli sorokon pedig ε-nal n¨ ovelj¨ uk a s´ ulyozott lefog´ ast.. A lehet˝ o legnagyobb olyan ε-t v´ alasztjuk, ami m´ eg

Legyen adva egy hM v stabil f´el-p´aros´ıt´as egy egyoldali p´aros´ıt´as-piacon, majd l´epjen be egy ´ uj, v szerepl˝o, ´es vizsg´aljuk meg, milyen

Az eredm´ enyekb˝ ol l´ atszik, hogy az ¨ osszehasonl´ıt´ asban szerepeltetett minde- gyik (k¨ ul¨ onb¨ oz˝ o alapelven m˝ uk¨ od˝ o) vonalk´ od detekt´ al´ o

Mivel minden feloldhat´ o primit´ıv permut´ aci´ o- csoport affin tipus´ u, Seress eredm´ enye ekvivalens azzal, hogy ha G egy v´ eges feloldhat´ o csoport, amely h˝ uen ´

A B´ ır´ al´ o k´ erd´ ese (3.a): Jel¨ olt ´ erdeme, hogy a m´ agneses t´ ersz´ am´ıt´ asba illesztett hiszter´ ezis- modell a gyakorl´ o m´ ern¨ ok sz´ am´ ara lehet˝

Vajon mi annak az oka, hogy a disszert´ aci´ o t¨ obb t´ emak¨ or´ eben a v´ eges test feletti algebrai g¨ orb´ ekre vonatkoz´ o m´ elyebb eredm´ enyek, a Hasse-Weil t´ etel,