Az intervallum matematika és alkalmazási területei Csallner András Erik SZTE JGYPK csallner@jgypk.u-szeged.hu
A lebegőpontos aritmetika 2 A lebegőpontos aritmetika 123 = 1,23·102 karakterisztika mantissza Összeadás: Karakterisztikák azonosítása Mantisszák összeadása Példa: 1,23·102 + 4,56·10-8 = =1,23·102 + 0,000000000456·102 = =(1,23 + 0,000000000456)·102 = =1,230000000456·102 8 értékes jegy 456
3 S.M. Rump példája Számítsuk ki a fenti függvény értékét a következő pontban: x = 77617; y = 33096! A függvény számított értéke különböző pontosság beállítása esetén: Single precision: f =+1,172603 Double precision: f =+1,1726039400531 Extended precision: f =+1,172603940053178 A függvény pontos értéke: f = Egyetlen számjegy, sőt, még az előjel sem egyezik! -0,827396059946…
4 Öböl-háborús példa 1991. február 25. Öböl-háború: egy Patriot nem találta el a megcélzott Scud rakétát. Következmény: 28 amerikai katona meghalt. Megállapítások a Patriot rakéták eredményességéről: A háború alatt: 80% A háború után röviddel: 70% Későbbi kongresszusi vizsgálat alapján: 10% alatt, de lehetséges, hogy 0%
Öböl-háborús példa Indoklás 5 Öböl-háborús példa Indoklás Egy Scud követéséhez a Patriot fedélzeti gépe egy időtényezőt ismételt 1/10-es szorzással számolt. Kettes számrendszerben az egy tized a következő: 1 : 10 = 1 : 1010 = = 0,000110011001100110011001100… végtelen, szakaszos kettedestört A kerekítési hibák halmozódása a cél következetes tévesztéséhez vezetett.
6 Pénzkidobás 1991. augusztus 23. a Sleipner A fúrósziget beton alapjának elhelyezése az Északi tengeren A lebegőpontos aritmetika hibás alkalmazása egy végeselem módszer algoritmusban Eredmény: az alap elsüllyedt, miközben a Richter skála szerinti 3-as erősségű földrengést okozott Költség: 700 millió dollár
Pénzkidobás 1996. június 4. az első Ariane-5 rakéta indítása. 7 Pénzkidobás 1996. június 4. az első Ariane-5 rakéta indítása. Átváltási hiba a lebegőpontos számoknál Eredmény: hibás önmegsemmisítés 39 másodperccel a kilövés után Költség: 7 milliárd dollár kutatási költség, 500 millió dollár áruteher
Egyszerű egyenletrendszer 8 Egyszerű egyenletrendszer 32,7 x1 – 49 x2 = 1 30 x1 – 45 x2 = 0 Megoldás 4 tizedesjegyű mantissza esetén Cramer szabály segítségével: x1 = 45 x2 = 30 Pontos megoldás: x1 = 30 x2 = 20
Miért épp az intervallumok? 9 Miért épp az intervallumok? Ötlet Pontatlanul tárolható számok helyett A számokat magukba foglaló pontosan tárolható végpontokkal megadott intervallumok. Pl. 1/3 0,33333333333333333333333 helyett 1/3 [0,33333333; 0,33333334]
Miért épp az intervallumok? 10 Miért épp az intervallumok? Nincsenek pontos mérések Nincsenek pontos számítások Nem kellenek pontos eredmények Nincsenek pontos mérések Nincsenek pontos mérések Nincsenek pontos számítások Nem kellenek pontos eredmények Nincsenek pontos mérések Nincsenek pontos számítások Nincsenek pontos számítások Nem kellenek pontos eredmények Nem kellenek pontos eredmények
Miért épp az intervallumok? 11 Miért épp az intervallumok? Egy mérés eredményeként általában intervallumot kapunk 0,32 kg = 0,4 kg 20 % 0,48 kg
Miért épp az intervallumok? 12 Miért épp az intervallumok? Egy eredmény csak adott pontossággal kell r = 2 m, T = r 2 3,1415 T 12,566 m2 r T 3,141 3,142 12,564 m2 T 12,568 m2
I = {X R2 | X = [XA; XF] ahol XA XF valósak} 13 Az intervallumok Intervallumoknak fogjuk nevezni azon mennyiségeket, amelyeknek csupán egy alsó és egy felső korlátját ismerjük A valós intervallumok halmaza formálisan: I = {X R2 | X = [XA; XF] ahol XA XF valósak} X XA XF
14 Az intervallumok Legyenek X = [XA; XF] és Y = [YA; YF] intervallumok Összeadás Z = X + Y = [XA + YA; XF + YF] XA XF YA YF ZA ZF + = ? [0,6; 0,7] liter + [0,3; 0,5] liter = [0,9; 1,2] liter
15 Az intervallumok Legyenek X = [XA; XF] és Y = [YA; YF] intervallumok Kivonás Z = X – Y = [XA – YF; XF – YA] XA XF YA YF ZA ZF – = ? [0,8; 0,9] liter – [0,1; 0,2] liter = [0,6; 0,8] liter
Az intervallumok Legyenek X = [XA; XF] és Y = [YA; YF] intervallumok 16 Az intervallumok Legyenek X = [XA; XF] és Y = [YA; YF] intervallumok H = {XAYA, XAYF, XFYA, XFYF} Szorzás Z = X Y = [min H; max H] Osztás Z = X / Y = X [1/YF; 1/YA ] ahol 0 Y
Az intervallumok A négy alapművelet definíciója éles 17 Az intervallumok A négy alapművelet definíciója éles Az összeadás és a szorzás műveletek kommutatívak és asszociatívak A [0, 0] egységelem az összeadásra, ill. zéruselem a szorzásra nézve Az [1, 1] egységelem a szorzásra nézve
Az intervallumok A kivonás az összeadásnak nem inverze 18 Az intervallumok A kivonás az összeadásnak nem inverze Pl. [0, 1] - [0, 1] = [-1, 1] [0, 0] (de [0, 0] [0, 1] - [0, 1] ) Az osztás a szorzásnak nem inverze Pl. [1, 2] / [1, 2] = [1/2, 2] [1, 1] (de [1, 1] [1, 2] / [1, 2]) A disztibutív szabály nem igaz (de X(Y + Z) XY + XZ, szubdisztributivitás)
Az intervallumok Gépi számok használata valós pontok ábrázolására: 19 Az intervallumok Gépi számok használata valós pontok ábrázolására: gépi alsó korlát gépi felső korlát pontos érték gépi számok ... Pl. 1,230000000456·102 [123,00000; 123,00001]
20 Az intervallumok Gépi számok használata műveletek eredményeinek ábrázolására: gépi alsó korlát gépi felső korlát kifelé kerekítés A következőkben mindig feltesszük, hogy számításaink során alkalmazzuk a kifelé kerekítést számított alsó korlát felső korlát
Az intervallumok Újra: 32,7 x1 – 49 x2 = 1 30 x1 – 45 x2 = 0 21 Az intervallumok Újra: 32,7 x1 – 49 x2 = 1 30 x1 – 45 x2 = 0 Pontos megoldás: Intervallumos megoldás: x1 = 30 x2 = 20 X1 = [22,5; 45] X2 = [15; 30] A befoglalás elve érvényesül
Számítás intervallumokkal 22 Számítás intervallumokkal Befoglaló függvények számítása -2 4 -5 5 x y f (x) = x2 - 2x - 3 f (x)=? ha x [0.25, 0.75] Intervallumokkal: F (X) = X2 - 2X - 3 = ? ha X = [0.25, 0.75]
Számítás intervallumokkal 23 Számítás intervallumokkal A probléma: számítsuk ki az f függvény X feletti értékkészletének egy befoglalását! f ebben a példában monoton X felett, így könnyű kiszámítani a pontos értékkészletét: Rangef (X) = [-3.9375, -3.4375]
Számítás intervallumokkal 24 Számítás intervallumokkal Általában igen nehéz probléma egy tetszőleges függvény értékészletének megadása. Ha kiszámítjuk az f függvény F1 befoglaló függvényét X felett: F1 (X) = [-4.4375, -2.9375] (Rangef (X) = [-3.9375, -3.4375]) Rangef (X) F1 (X)
Számítás intervallumokkal 25 Számítás intervallumokkal A szubdisztributivitás miatt pontosabb befoglalást kaphatunk a Horner elrendezés segítségével. Ha kiszámítjuk F2-t X felett, ahol F2 (X) = X(X - 2) - 3, akkor: F2 (X) = [-4.3125, -3.3125] (F1 (X) = [-4.4375, -2.9375] és Rangef (X) = [-3.9375, -3.4375]) Rangef (X) F2 (X) F1 (X)
Intervallumok felosztása 26 Intervallumok felosztása Ezek az úgynevezett naiv befoglaló függvények izoton tulajdonságúak, azaz ha X Y akkor F (X) F (Y).
Intervallumok felosztása 27 Intervallumok felosztása X XA XF X (1) X (2) X (4) X (3) F2 (X (1)) = [-3.65625, -3.40625] F2 (X (2)) = [-3.8125, -3.5625] F2 (X (3)) = [-3.9375, -3.6875] F2 (X (4)) = [-4.03125, -3.78125] -3.40625 -4.03125
Intervallumok felosztása 28 Intervallumok felosztása Ha a 4 egyenlő darabra osztással kapott függvényt F (4)-gyel jelölve kapjuk: Függvényértékek Szélesség Rangef (X) = [-3.9375, -3.4375] 0.5 F1 (X) = [-4.4375, -2.9375] 1.5 F2 (X) = [-4.3125, -3.3125] 1.0 F (4) (X ) = [-4.03125, -3.40625] 0.625
Intervallumok felosztása 29 Intervallumok felosztása Ugyanezt 8 darabra osztással is elvégezve (jelölés: F (8)) Függvényértékek Szélesség Rangef (X) = [-3.9375, -3.4375] 0.5 F1 (X) = [-4.4375, -2.9375] 1.5 F2 (X) = [-4.3125, -3.3125] 1.0 F (4) (X ) = [-4.03125, -3.40625] 0.625 F (8) (X ) = [-3.984375, -3.421875] 0.5625
Egy egyszerű felosztási módszer 30 Egy egyszerű felosztási módszer Alkalmazzuk a felosztás módszerét a következő érték egy alsó és felső korlátjának meghatározására: min Rangef (X) = min x X f (x), ami f globális minimuma X felett.
Egy egyszerű felosztási módszer 31 Egy egyszerű felosztási módszer Legyen X a keresési intervallum, L pedig egy üres lista! Helyezzük fel X-et a listára! Vegyük le a lista első, A elemét a listáról! Felezzük el A-t két részintervallumra! Helyezzük fel a listára az újonnan keletkezett intervallumokat úgy, hogy a lista az elemei fölött számított befoglaló függvény alsó korlátok szerint növekvő sorrendben rendezett legyen! Ha a legjobb felső és alsó korlát távolsága nagy, menjünk a 2. ponthoz! Vége, az optimum befoglalása leolvasható.
Egy egyszerű felosztási módszer 32 Egy egyszerű felosztási módszer Program
Egy SNS probléma (vegyipar) 33 Egy SNS probléma (vegyipar) S1 ABC A BC 1. típusú szeparátor Bemeneti anyagáram S Egy szeparátor költségfüggvénye S2 ABC AB C 2. típusú szeparátor
Egy SNS probléma (vegyipar) 34 Egy SNS probléma (vegyipar) S2 S1 ABC A C BC AB B
Egy SNS probléma (vegyipar) 35 Egy SNS probléma (vegyipar) A B C F1 100 1 1 F2 100 1 200 p1 200 0 0 p2 0 2 0 p3 0 0 201 Be- és kimeneti anyagáramok S2 S1 ABC A BC C B Optimális struktúra sejtés
Egy SNS probléma (vegyipar) 36 Egy SNS probléma (vegyipar) S2 S1 ABC A C AB BC B Optimális struktúra
37 Összegzés A lebegőpontos aritmetika alkalmatlan felelősségteljes számítások elvégzésére Az intervallumok bevezetése természetes, alkalmazása garantált pontosságú megoldásokat szolgáltathat A gyakorlati példák és ipari alkalmazások az intervallumok mindennapi tervezési feladatok megoldására való felhasználásának irányába mutatnak