Backtrack módszer A backtrack módszer kombatorkus programozás eljárás, mely emleárs függvéy mmumát keres feltételek mellett, szsztematkus kereséssel. A módszer előye, hogy csak dszkrét változókat kezel, így az eredméyek azoal haszálhatók. A backtrack módszer általáos leírása megtalálható Walker (1960), Golomb & Baumert (1965) és Bter & Regold (1975) művebe. Ezt a módszert alkalmazta hegesztett acéltartó tervezésére Lews (1968) és Aamala (1970). Farkas & Szabó (1980) a módszert mmáls költségű hegesztett hbrd I-tartók tervezésére haszálták. A backtrack programozás hatékoyságáak megbecslésére Kuth (1975) javasolt módszert. Farkas (1984) köyvébe a következő problémák kerültek megoldásra a backtrack módszerrel: hajlított hegesztett I-tartók, yomásak ktett égyszög-szelvéyű csőszelvéyek, rácsos csőszerkezetek, hbrd I-tartók egy hegesztett llesztéssel az övekbe, hajlított-yírt hegesztett szekréyszelvéyű tartók, aszmmetrkus I-szelvéyű darupályatartók, hegesztett szekréyszelvéyű zárt préskeretek. Az egycélfüggvéyes emleárs optmálás feladat általáos megfogalmazása a következő: mmálja az f ( x) x 1, x 2,..., x N célfüggvéyt, gj( x) 0, j = 12,,..., P h ( x ) = 0 = P + 1,..., P + M feltételek eseté, f(x) egy többváltozós emleárs függvéy, g j (x) és h (x) emleárs egyelőtleség és egyelőség feltételek. Az egyelőség feltételeket át kell alakíta egyelőtleségvé, hogy az eljárás kezel tudja őket: h ( x) ε 0 = P+ 1,..., P+ M (1.49) h ( x) ε 0 ε adott kcsy szám. Az algortmus alkalmas olya optmum-keresésre, ahol a célfüggvéy mooto övekvő, vagy csökkeő jellegű. Az optmáls megoldás a változók értékeek csökkeésével kerül elérésre. Eredetleg a módszer mmum-keresésre alkalmas, kdulva a változók maxmáls értékeből. 1.8.1.1 Itervallum felező eljárás
Egyváltozós függvéy optmumáak megkeresésére agyo sok eljárás smert. Nagyo hatékoy és megbízható eljárás az tervallum-felező eljárás, mely lecsökket a keresés dőt. Feltételezzük, hogy a célfüggvéy mooto csökkeő, ha a változó értéke csökke. A voalmet keresésél, amkor egy változó értéke változk a cél a változó mmáls megfelelő értékéek a megkeresése, kdulva a változó maxmáls értékéből. A kezdőpotak, vagys a változó maxmáls értékéek k kell elégítee a feltételeket. Másodk lépés a mmáls érték vzsgálata. Ha kelégít a feltételeket, akkor a megoldást találta meg. Ha em, akkor a tartomáyt két részre osztja a középső értékél. Ha a feltételek teljesülek a középső értékél, akkor a tartomáy felső fele megfelelő potokat tartalmaz. Ebbe az esetbe az alsó részt kell vzsgál, hogy megtaláljuk a határt a megfelelő és a em megfelelő tartomáy között. A [ jel a megfelelést, a { jel a em megfelelést jelet. A felező eljárás a következőképpe dolgozk: Tételezzük fel, hogy a következő dszkrét értéksor adott a lemezvastagságra: 6 8 10 12 15 18 20 25 30 mm {...] Tovább feltételezés, hogy a maxmáls érték megfelelő, a mmáls em megfelelő. Ha a középső érték megfelelő, akkor a továbbakba vzsgált tartomáy a következő: 6 8 10 12 15 {......] A tartomáy felső részé már em lehet megoldást talál, vagys megtalál a legksebb, még megfelelő értéket, csak a tartomáy alsó részé. A vzsgálatot az alsó rész középső potjával folytatjuk. Ha em megfelelő, akkor a maradék tartomáy az eredet egyede csupá égy pot elleőrzése utá. 10 12 15 {......] Ha a középső pot megfelelő, akkor az megadja a megoldást. 12 ] Az összes és a megvzsgált dszkrét potok aráya 9/5. Ha 1025 dszkrét értékük va, akkor az aráy sokkal jobb, mert már az első felezés utá elhagyható 512 dszkrét érték tovább vzsgálat élkül. A felező eljárás akkor áll meg, ha a lépésméret ksebb, mt két dszkrét érték között távolság. A lépésméretek em szükséges álladóak le mde
dszkrét érték között, de praktkus okokból általába álladóak vesszük, ha lehet. A dszkrét értékek száma 2 k +1 kell legye, ahol k egy egész érték. Egy dszkrét értéksor ematt kegészíthető az alábbak szert: Alapszám: 1 2 3 4 5 6 7 8 9 Kegészített: 4 6 8 10 12 14 16 16 16 A backtrack módszerél a változók vektor alakba szerepelek x = {x } T ( = 1,...,) melyekhez a célfüggvéy f(x) mmuma tartozk majd és kelégít a méretezés feltételeket g(x) 0 (j = 1,...,P). A változókra dszkrét értéksor adott, övekvő sorredbe. Specáls esetbe az értéksor x k,m, xk,max értékekkel és egy álladó lépéstávval Δx k -el lehet megadva. A módszer folyamatábráját az 1.15 ábra tartalmazza. Először részleges keresését folytat mde egyes változóra és ha mde lehetséges varácót megvzsgált, akkor ugrk vssza (backtrack) egy új részleges keresésre az előző változóál. Ha a vzsgált változó az első, akkor em kell több varácót megvzsgála (számos vsszaugrást végrehajtott már). A számítás fő fázsa a következők: 1. A változók kostas értékcsoportja mellett ( = 2,...,) az mmáls értékét keres a x,t méretezés feltételek teljesülése mellett. Az tervallum-felező eljárást alkalmazza. Ezt a módszert akkor alkalmazhatja, ha a célfüggvéy mooto a változók függvéyébe. 2. Az első fázs eseté a felező eljárást kostas változóértékek eseté haszálja és mmum értéke meghatározására a feltételek kelégülése mellett. 3. A legksebb érték x, m meghatározása a célfüggvéyre f(x) voatkozó egyeletből törték f ( x,..., x ) f 1, m, m = o x,m x 1,m ahol f a célfüggvéy értéke a maxmáls x-értékek behelyettesítésével. Az voatkozásába a következő három eset lehetséges: x,m értékek (3a) Ha csökketjük x -1 értékét lépésről-lépésre mdaddg, amíg a feltételek teljesülek, x,m x akkor elérjük a mmáls értéket. Ha mde lehetséges varácóját (a felező eljárás vzsgálatszám-csökketését khaszálva) megvzsgáltuk, akkor ugrk a program az előző változóra x -1 -re és csökket lépésről-lépésre mdaddg, amíg a feltételek x re teljesülek és elér x -1, m értékét.
(3b) Ha x < x, akkor vsszaugrk -re.,m,1 x -1 x,m (3c) Ha em elégít k a feltételeket, akkor vsszaugrk.-re. Ha a feltételek megfelelek, akkor folytatja a számítást (3a) szert. x -1,m Az összes lehetséges varácó t = 1, ahol t az egyes változók dszkrét értéke száma. A módszer csak egy ks részét vzsgálja meg eek, a felező eljárásak köszöhetőe. Az eljárás hatékoysága sok téyezőtől függ (a változók száma, a dszkrét értékek száma, az optmáls értékek helye az értéksorba, a célfüggvéy és/vagy a méretezés feltételek komplextása), ezért ehéz megjósol a futásdőt. A módszer fő hátráya az, hogy a futásdő expoecálsa övekszk a változók számáak övekedésével. A program átalakításra került C programyelve úgy, hogy már em függ a struktúrája a változók számától, mt korábba. Mde változó mmáls értéke a felező eljárással kerül meghatározásra, kvéve az utolsót, mely a célfüggvéy értékéből kerül meghatározásra. Az algortmus ANSI C forrásyelv programja a Farkas, Járma (1997) köyv C függelékbe található az ott smertetett egyszerű posta probléma megoldására. A módszer előye, hogy dszkrét értékekkel dolgozk, így az eredméy azoal haszálható, továbbá hogy a szsztematkus keresés matt globáls optmumot ad. 1.8.1.2 Kombatorka probléma megoldása a backtrack módszerrel Egyszerű kombatórka feladat krályők elhelyezése sakktáblá úgy, hogy em ütk egymást. A feladatot 4*4-es sakktáblá oldjuk meg. A célfüggvéy tehát a kráyők számáak maxmálása. A feltételek arra voatkozak, hogy a krályők em ütk egymást, tehát cseek azoos sorba, oszlopba, vagy átlóba. Mde sorba egy krályő helyezhető tehát el, tehát a maxmum 4 lehet. Az elhelyezett krályőket sorok szert számozzuk. Az 1.16.a ábráak megfelelőe elhelyezhetjük az első krályőt, találuk helyet a másodkak, de a harmadk már em helyezhető el, vagys cs megoldás. Ha cs lehetőség a harmadk krályő (változó) elhelyezésére, akkor vsszaugruk a másodkhoz és új pozícót keresük ek. Új helyet találva elhelyezhetjük a harmadk krályőt s. Sajos a egyedk krályőek már em találuk helyet (1.16.b ábra).
(a) (b) (c) (d) 1.16. ábra Az első és másodk krályők elhelyezése (a), első, másodk és harmadk krályők elhelyezése (b), megoldások égy krályőre (c, d) Ha megvzsgáljuk a harmadk változó összes lehetséges helyét, akkor vssza kell ugrauk a másodk sorba. Mvel ott scs tovább lehetőség, ezért a vsszaugrás az első sorba törték. Itt változtatva a krályő helyzetét megoldást találuk a feladatra, az összes sorba el tuduk helyez krályőt, elérve a maxmáls számot, kelégítve a feltételeket s, tehát em ütk egymást (1.16.c ábra). Természetese lehet és ez esetbe va több megoldás s (1.16.d ábra). Az eljárás dszkrét jellegét mutatja, hogy a krályők csak a tábla kocká állhatak, cs közbeső helyük, lletve a lehetséges helyük számos. 1.8.1.3 Hegesztett I-szelvéy optmáls méretezése backtrack módszerrel A feladat megkeres a hegesztett I-szelvéy mmáls tömegét, a kéttámaszú, hajlítottyomott tartóál (1.17 ábra). Változók a gercmagasság h = x 1, a gercvastagság t w = x 2 és az övlemez területe A f = x 3.
start stop változók dszkrét értéke x max, x m, lépésközök f 0 (x max ), =1,... N kezdő függvéyértékek számítása eredméyek kyomtatása =1 x m változó számítása felező eljárással a változó értékéek övelése következő változó = +1 <= N-1? az első változó ksebb mt a maxmum? utolsó változó számítása az f 0 célfüggvéyből a változó értékéek övelése az előző változó = -1 x > x max x < x max az előző változó ksebb, mt a maxmum? > 1? x = x max feltételek teljesülek? f 0 = f(x ) új legksebb függvéyérték csökketjük az x értékét x = x max - Δx feltételek teljesülek? x > x m x = x + Δx javulás a célfüggvéybe? 1.15 ábra A backtrack módszer folyamatábrája
Célfüggvéy a tartó tömege. A fesztáv adott, az ayag szté smert (Fe 360-as acél), így a mmáls tömeg aráyos a mmáls keresztmetszet-területtel. f( x)= x x + 2x 1 2 3, (1.50) A f t w h 1.17 ábra A hegesztett I-tartó szelvéye A tervezés feltételek a következők: Mb N f g 1 (x) a ormálfeszültség feltétel σ b + σ c = + W A γ ahol M b a hajlítóyomaték, N a yomóerő, W x a keresztmetszet téyező, A a keresztmetszet-terület, f y a folyáshatár, γ M1 a részbztoság téyező. x y M 1, (1.51) g 2 (x) a hely gerchorpadás feltétel h t w = 145 4 σ 1+ σ b σ 1+ 173 σ c 2 ( ) c 2 ( ) b, (1.52) Megjegyezzük, hogy az Eurocode 3 más számítás módszert ad meg. Az adatok a következők: M b = 320 knm; N = 128 kn; f y = 240 MPa, γ M 1 =1.2. A változók alsó- és felső határértéket, valamt a lépéstávolságokat az 1.1 táblázat adja meg. A számítás eredméyek az 1.2 táblázatba találhatók.
1.1 táblázat A változók alsó és felső határértéke Felső Alsó Lépéstáv h 740 660 20 t w 9 5 1 A f 2200 1400 100 1.2 táblázat A példa számítás eredméye a backtrack módszerrel x 1 x 2 x 3 f g 1 g 2 Megjegyzések 740 9 2200 11060 + + f o = 11060 mm 2 660 9 2200 10340 + + x 1m megfelelő, felező eljárás x 2 -re 660 5 2200 7700 + - 660 7 2200 9020 + + 660 6 2200 8360 + + 660 6 2200 8360 + + x 3 = (11060-660*6) / 2 = 3550 660 6 2100 8160 + + 3550 > x 3max f o = 7960 660 6 2000 7960 + + backtrack x 2 -re 660 6 1900 7760 - + 660 7 1600 7820 - + x 3 = (7960-660*7) / 2 = 1670 660 8 1300 1670 < x 3max backtrack x 2 -re 680 9 2200 10520 + + felező eljárás x 2 -re 680 5 2200 7800 + - 680 7 2200 9160 + + 680 6 2200 8480 + + 680 6 1900 7880 + + x 3 = (7960-680*6) / 2 = 1940 680 6 1800 - + f o = 7880 backtrack x 2 -re 680 7 1500 7680 - + x 3 = (7880-680*7) / 2 = 1560 680 8 1200 7760 1560 < x 3m backtrack x 1 -re 700 9 2200 10700 + + felező eljárás x 2 -re 700 5 2200 7900 + - 700 7 2200 9300 + +
700 6 2200 8600 + + 700 6 1800 7800 + + x 3 = (7880-700*6) / 2 = 1840 700 6 1700 7600 - + f o = 7800 backtrack x 2 -re 700 7 1400 7700 - + x 3 = (7800-700*7) / 2 = 1450 700 8 1100 1450 < x 3m backtrack x 1 -re 720 9 2200 10880 + + felező eljárás x 2 -re 720 5 2200 8000 + - 720 7 2200 9440 + + 720 6 2200 8720 + - 720 7 1300 x 3 = (7800 720*7) / 2 = 1380 1380 < x 3m backtrack x 1 -re 740 9 2200 11060 + + felező eljárás x 2 -re 740 5 2200 8100 + - 740 7 2200 9580 + + 740 6 2200 8840 + - 740 7 1300 x 3 = (7800-740*7) / 2 = 1310 1310 < x 3m cs backtrack Az eredméy x 1 = 700; x 2 = 6; x 3 = 1800, vagys h = 700 mm; t w = 6 mm ; A f = 1800 mm 2. A számítás sorá a mmáls célfüggvéy és a hozzátartozó változók értéke tárolásra kerül. A számítás végé a tárolt értékek kerülek kíratásra. A keresés em drekt, az eredméy az eljárás végé adódk. Ha a másodk vzsgált érték már a megoldás, az eljárás akkor s folytatódk mdaddg, amíg a vsszaugrások révé a lehetőségek kmerülek, hogy a célfüggvéyt mmálja.