KAUNO TECHNOLOGIJOS UNIVERSITETAS
Kursinis darbas
3*Bridge Lituanizacija
Studentas: Darius Styra, RM-1/1 grup?
D?stytojas: Jonas Mockus
Kaunas 2002
?vadas
Optimizavimo u?daviniai aktual?s ?vairiose ?moni? veiklos srityse. In?inieriai, projektuojantys naujas technologijas, siekia maksimalaus efektyvumo. Verslininkai ir vadybininkai stengiasi darb? organizuoti taip, kad b?t? gautas maksimalus pelnas, investuojant kuo ma?iau l???. ?eiminink?s, i??jusios apsipirkti, stengiasi pasirinkti mar?rut? taip, kad kelionei sugai?t? kiek galima ma?iau laiko. Kasdienin?je veikloje da?nai optimizuojama intuityviai, nesinaudojant jokia teorija. Ta?iau svarbiais ir sud?tingais atvejais stengiamasi u?davin? suformuluoti tiksliai ir j? spr?sti tam skirtais metodais. Tradici?kai optimizavimo u?davini? esant ribojimams sprendimo teorija ir metodai vadinami matematiniu programavimu. Istori?kai pirmiausia buvo sukurta tiesinio programavimo teorija, davusio prad?i? ir termino programavimas paplitimui ?iuo konspektu. ?is terminas buvo pasirinktas tod?l, kad sukurtieji metodai buvo skirti optimaliam ekonomini?, transporto, karini? program? sudarymui. Terminas programavimas ?iuo kontekstu atsirado netgi anks?iau negu kitu, gal b?t dabar labiau ?prastu kontekstu, rei?kian?iu algoritm? ra?ym?, i? prad?i? kompiuterio komandomis, v?liau - programavimo kalbomis.
Optimizavimo teorija ir optimizavimo metod? bei juo realizuojan?ios programin?s ?rangos k?rimas yra aktyviai vystoma mokslo technikos ?aka. Pagrindin?s mokslin?s literat?ros leidyklos publikuoja vir? de?imt tarptautini? ?urnal? ir knyg? serij?, skirt? optimizacijos tematikai. Programin?s ?rangos rinkoje si?loma kelios de?imtys komerci?kai platinam? optimizavimo paket?. ?ymiai daugiau programin?s ?rangos sukurta nekomerciniais pagrindais. Kadangi optimizavimo metodai svarb?s ir teoriniu ir taikomuoju po?i?riais, daugelyje universitet? skaitoma tokios tematikos kursai, kurie vadinami Matematiniu programavimu, Tiesinis/Netiesinis programavimas, optimizavimo metodai ir t.t.
?vairiuose universitetuose skaitomi kursai skiriasi tiek turiniu, tiek med?iagos atrinkimu, tiek ir jos pateikimo metodika. Tas ry?ku jau vien pavar?ius vadov?lius. Da?nai d?mesys sukoncentruojamas ? tiesin? programavim?, netiesiniams u?daviniams skiriant ma?? kurso dal?.
Matematinis u?davinio formulavimas labai svarbus optimizavimo etapas, nuo kurio priklauso ir jo i?sprend?iamumas, ir gaut? rezultat? adekvatumas praktiniam u?daviniui, kur? jis formalizuoja. Jei norima praktin? u?davin? spr?sti kompiuteriu, reikia sudaryti u?davinio matematin? model?. Ir j? atitinkan?i? kompiuterio program?. Optimizavimui skirt? kompiuterio program? galima pasirinkti i? daugelio komercini? ar laisvai platinam? optimizavimo paket?. Matematinio modelio sudarymas priklauso taikomosios srities specialist? kompetencijai. Nors pastarieji optimizavimo metod? paprastai nekuria, bet ir jiems b?tinos ?vadin?s teorijos ?inios, ?iokia tokia metod? taikymo patirtis. Kadangi sudarant model? beveik visada tenka rinktis kompromis? tarp modelio sud?tingumo ir adekvatumo, svarbu ?inoti, kuriais bus sprend?iamas u?davinys, galimybes ir bendras savybes. S?kming? u?davinio formulavimo ir jo sprendimo metodo suderinim? iliustruoja legenda apie Kartaginos ?k?rim?.
Karalaitei Dionai buvo padovanota tiek ?em?s, kiek galima u?dengti jau?io oda. Daug kas net nebandyt? tokiame plote ir l??nel?s statytis, nekalbant jau apie miesto ?k?rim?. Bet Diona rado genial? sprendin?. Ji sukarp? jau?io od? siauromis juostel?mis, jas suri?o ir gaut?ja ilga juostele atsitv?r? sau teritorij?. Viena i? savo teorijos rib? Diona pasirinko Vidur?emio j?ros pakrant?, kuri sudar? nat?rali? teritorijos rib?. Kita riba buvo pusapskritimiu i?lenkta juostel?. Taip ji "u?deng?", t.y. atsitv?r?, maksimal? plot?. Be to, Kartagina gavo i??jim? ? j?r?. Dionos sprendinys buvo geras ne tik teorijos maksimizavimo, bet ir kitu strategi?kai svarbiu po?i?riu, kuris net neatspindi pradiniame u?davinio formulavime.
Pradinis u?davinio formulavimas apie teritorij?, kuri? galima u?dengti jau?io oda, daugeliui ?moni? b?t? suprantamas vienareik?mi?kai. Pasirodo, jis gali tur?ti ir kitoki? interpretacij?. Ne tik ?iuo mitologiniu atveju, bet ir n?dienos praktikoje labai svarbu, kad u?davinio formulavimas b?t? tikrai adekvatus siekiamiems tikslams. Karalaitei Dionai rasti lemtingojo u?davinio sprendimo b?d?, tikriausiai pad?jo dievai. Matemati?kai suformuluoti maksimalaus ploto u?davin? esant duotam perimetrui galima ir be matematin?s analiz?s ?ini?, bet taip vadinamu izoperimetrini? u?davini? sprendimo metodai buvo sukurti kokiais dviem t?kstantme?iais v?liau. Kadangi karali?ka intuicija duota nedaugeliui, tai kuriamos teorijos ir metodai, padedantys paprastiems mirtingiesiems spr?sti sud?tingus u?-davinius. Ta?iau ir esant ?iuolaikiniam mokslo lygiui efektyv?s sprendimo metodai ?inomi toli gra?u ne kiekvienam optimizacijos u?daviniui. Tod?l formuluojant u?davin? reikia atsi?velgti ? numatom? naudoti optimizavimo metod? efektyvum?.
Optimizavimo u?daviniais dom?josi, juos tyrin?jo ir metodus jiems k?r? tokie ??ym?s mokslininkai, kaip Newton, Lagrange, Euler ir daugelis kit?. Optimalumo principai svarb?s mokslo metodologijai. Nema?ai gamtos d?sni? formuluojami kaip optimalumo s?lygos. PVZ. ?viesos spindulio kelias nevienalyt?je aplinkoje nusakomas trumpiausiu sklidimo laiku. Optimalumo principais i?rei?kiami svarb?s ekonomikos d?sniai.
Optimizavimu vadinama paie?ka u?davinio formulavimu apibr??toje aib?je tokio elemento, kuriam kriterijaus reik?m? b?t? minimali arba maksimali. Da?nai nagrin?jamoji aib? yra daugiamat?s Euklidin?s erdv?s poaibis. Tada galima kalb?ti apie tokio vektoriaus paie?k?, kuriam atitinkanti kriterijaus reik?m? b?t? minimali arba maksimali.
Kaip pasinaudoti optimizavimo teorija, kai kokiame nors praktiniame u?davinyje i?kyla optimizavimo b?tinyb?? Norint suformuluoti u?davin? matemati?kai, reikia sudaryti taikomojo u?davinio matematin? model?:
PIRMA, reikia i?siai?kinti, kok? kriterij? tikslinga optimizuoti, kokie u?davinio parametrai gali b?ti kei?iami ir kokioje srityje jie gali kisti, t.y. apibr??ti kintam?j? vektori?, bei tikslo funkcij? ir leistin?j? srit?. Pasinaudojus optimizavimo metodu, bus gautas optimali? parametr? vektorius, kurio ir reik?s realizuoti prakti?kai ?gyvendinant u?davinio sprendin?.
ANTRA, reikia tur?ti pakankamai ?ini? apie taikom?j? srit?, kad b?t? galima sudaryti algoritm? tikslo funkcijos ir ribojimus apibr??ian?i? funkcij? reik?m?ms apskai?iuoti.
Remiantis matematinio modelio savyb?mis ir optimizacijos teorijos rezultatais pasirenkamas tinkamiausias metodas suformuluotam optimizavimo u?daviniui spr?sti. [1]
Tikslas
Kaip ir kiekvienas darbas, tai ir ?is turi tiksl?. Naudingiausiai b?t? sukurti savo program?, kuri gal?t? optimizuoti realiame gyvenime labai da?nai i?kylan?i? problem? sprendim?. Jei neturima nauj? id?j? - galima patobulinti jau esan?ias programas - juk tobulybei rib? n?ra, o tuo labiau optimizavime. Juk kiekvienam atvejui, laikui b?gant, pastebimi vis nauji, ?takos rezultatui turintys kriterijai, kuriuos reikia ?vertinti.
Kuriant savo program? ar tobulinant jau esan?i? - reikia gerai i?manyti programavim? - tai sugeba ir da?nas informatikos specialyb?s studentas, programuoti moka ir kai kurie kit? specialybi? studentai.
Kadangi a? neesu informatikas, nors nema?ai tenka programuoti (mikrovaldiklius assembler, C kalbomis) ir programavimas man yra nesud?tingas dalykas, bet kol kas tik ten, kur nenaudojamos klas?s ir objektai, nes apie juos a? esu tik gird?j?s bei trumpai susipa?in?s. Nors ir buvo didelis noras ?d?ti savo nedidel? ?na?? - patobulinti program? 3*Bridge - prid?ti kriterij? svorius, bet tai kol kas, d?l objekt? ir klasi? i?manymo stokos, ir liko tik noras. ?io darbo tikslas - sulietuvinti program? 3*Bridge.
Problema su programos paleidimu
Kad programa veikt? ma?inoje, kuri n?ra sujungta su interneto tinklu, reik?jo nema?ai palu??ti. Programos paleidimui vis? pirma reikia suinstaliuoti JAVA plugin'?, ta?iau suinstaliavus plugin'? ji vis dar neveik?. Po ilg? bandym? j? paleisti - buvo perkompiliuoti *.java failai ir jau tada buvo galima pamatyti program?.
Apie program?
Paleidus program? i? karto matyti, kad IFM 6/1 grup?s studentas Marius ?emaitis ?d?jo nema?ai darbo, apjungdamas jau padarytas tris programas - nuotakos, automobilio ir darbuotojo parinkimo programas bei dar ir ketvirt? - nuotakos parinkimo, kuri? suk?r? pats. Kiekviena i? ?i? apjungt? program? yra dvejopo pob?d?io: vienkartinio ar daugkartinio pasirinkimo, kaip pat galima pasirinkti kriterijus.

1 pav. Programa 3*Bridge
Kiekviena i? ?i? keturi? program? sprend?ia vien?, labai da?nai atsirandan?i? - pasirinkimo problem?.
Darbo eiga
Visas darbas buvo atliekamas naudojant tekstin? redaktori? UltraEdit;
Programoje 3*Bridge naudojami angli?ki terminai pakeisti lietuvi?kais;
Programa perkompiliuota;
Savo akimis patikrinta, ar angli?ki terminai pasikeit? lietuvi?kais.
Gauti rezultatai

2 pav. Programos 3*Bridge dalis "Standartin? nuotaka" - angli?ka versija

3 pav. Programos 3*Bridge dalis "Standartin? nuotaka" - lietuvi?ka versija

4 pav. Programos 3*Bridge dalis "Automobilis" - angli?ka versija

5 pav. Programos 3*Bridge dalis "Automobilis" - lietuvi?ka versija

6 pav. Programos 3*Bridge dalis "Darbuotojas" - angli?ka versija

7 pav. Programos 3*Bridge dalis "Darbuotojas" - lietuvi?ka versija

6 pav. Programos 3*Bridge dalis "Jaunikis" - angli?ka versija

7 pav. Programos 3*Bridge dalis "Jaunikis" - lietuvi?ka versija
I?vados
Susipa?inta su programavimo kalba JAVA - ji labai pana?i ? C kalb?;
Atlikta programos 3*Bridge lituanizacija;
Pabaiga
Optimizavimas yra pritaikomas visur, netgi kiekvienas ?mogus gyvena optimaliai, bet tuo pa?iu - kiekvienas pasirenka skirtingus kriterij? svorius (pvz. alkoholikas savo gyvenime did?iausias svor? skiria alkoholiui).
Naudota literat?ra:
A. ?ilinskas. Matematinis programavimas. VDU, Kaunas 1999 - 186p.
Paskait? med?iaga