74
UNIVERZA V MARIBORU FAKULTETA ZA ORGANIZACIJSKE VEDE Diplomsko delo univerzitetnega študija Smer: Organizacija in management informacijskih sistemov PRIMERJAVA ANALITIČNIH PROGRAMSKIH ORODIJ PRI REŠEVANJU PROBLEMOV ODLOČANJA V POSLOVNIH PROCESIH Mentor: izr. prof. dr. Anton Čižman Kandidat: Miha Osojnik Kranj, april 2009

PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

UNIVERZA V MARIBORU FAKULTETA ZA ORGANIZACIJSKE VEDE

Diplomsko delo univerzitetnega študija Smer: Organizacija in management informacijskih sistemov

PRIMERJAVA ANALITIČNIH PROGRAMSKIH ORODIJ PRI REŠEVANJU PROBLEMOV ODLOČANJA V POSLOVNIH PROCESIH

Mentor: izr. prof. dr. Anton Čižman Kandidat: Miha Osojnik

Kranj, april 2009

Page 2: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

ZAHVALA Zahvaljujem se dr. Antonu Čižmanu za njegovo pomoč, nasvete in njegove smernice pri izdelavi tega diplomskega dela. Hvala tudi g. Jaku Žgajnarju pri začetni pomoči in asistentu g. Marku Urhu. Zahvaljujem se tudi g. Francu Furlandu, za pomoč pri lektoriranju te diplomske naloge.

Page 3: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Povzetek Managerji v proizvodnjih organizacijah so danes soočeni s številnimi naraščajočimi potrebami po zagotavljanju konkurenčnosti podjetja na globalnem trgu, v smislu optimiranja poslovnih procesov na različnih področij gospodarstva. Na žalost pa le redko uporabijo ustrezna programska orodja za pomoč pri odločanju ali jih celo niti ne poznajo. Primankuje jim znanja in ustreznih metodologij za razvoj sistemov za podporo odločanju. Sodobna informacijska tehnologija (IT) pa jim lahko omogoča, da jo izkorisitjo in si z njo pomagajo pri sprejemanju boljših in hitrejših odločitev, majhnim in srednje velikim podjetjem pa veliko priložnosti za razvoj informacijskih sistemov (IS). Ti sistemi omogočajo uporabo modelov operacijskih raziskav (OR), za podporo odločanju. Vendar pa kljub dejstvu, da je na razpolago zelo zmogljiva IT, primanjkuje znanja o uporabnosti te tehnologije pri razvoju odločitvenih modelov in njihovi uporabi pri optimizaciji poslovnih procesov v podjetju. Namen diplomske naloge je predstaviti in opisati nekatera standardna analitična programska orodja, za pomoč pri razvoju odločitvenih informacijskih sistemov (OIS), ki omogočajo enostavno uporabo metod in modelov OR pri optimizaciji poslovnih procesov. Uporabnost prototipnih odločitvenih modelov bomo podali s pomočjo praktičnih primerov, ki bodo primerjalno prikazali učinkovitost, zmogljivost in uporabniško naravnanost izbranih programskih orodij, to so Excel – Solver, Lingo, Lindo in POM-QM. Cilj naloge bomo dosegli s pomočjo modelov linearnega, nelinearnega in celoštevilčnega programiranja. Ključne besede: linearno programiranje, celoštevilčno programiranje, nelinearno programiranje, Excel, Reševalec, LINGO, LINDO, POM-QM, Odločitveni informacijski sistem. Abstract Managers in manufacturing organizations today are faced with a number of growing demands to ensure the competitiveness of enterprises in the global market, in terms of optimization of business processes in various areas of the economy. Unfortunately appropriate software tools are rarely used to aid in decision making or managers do not even know it. They lack of knowledge and appropriate methodologies for the development of decision making support systems. Modern information technology (IT) allows them to exploit it and help to adopt better and faster decisions with it, however small and medium-sized enterprises, have many opportunities to develop the information systems (IS). These systems enable usage of models of operational research (OR) for decision making support. However, despite the fact that there is available high technology IT, lack of knowledge causes the lack of application of this technology in the development of decision models and their application in the optimization of business processes in enterprises. The purpose of this thesis is to present and describe some of the standard analytical software tools for assistance in the development of decision-making information systems, which allow simple usage of the OR methods and models to optimize business processes. Applicability of decision-making prototype models, will be made with the help of practical examples that will show the efficiency, performance and user-orientated software tools. These are Excel - Solver, Lingo, Lindo and POM-QM. The objective of the thesis will be achieved with help of models of linear, nonlinear and integer programming. Keywords: linear programming, interer programming, nonlinear programming, Excel, Solver, LINGO, LINDO, POM-QM, Decision makeing system.

Page 4: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Kazalo 1. Uvod........................................................................................................................1 2. Načrtovanje in razvoj odločitvenih sistemov.............................................................2

2.1. Faze in razvoj odločitvenega informacijskega sistema .....................................2 3. Teoretične osnove matematičnega programiranja ...................................................4

3.1. Linearno programiranje....................................................................................4 3.1.1. GRAFIČNA METODA ..............................................................................6 3.1.2. ANALIZA OBČUTLJIVOSTI, PRIMARNOST IN DUALNOST ...................7 3.1.3. METODA SIMPLEKS...............................................................................7

3.2. Nelinearno programiranje.................................................................................8 3.3. Celoštevilčno programiranje.............................................................................9

4. Pregled pomembnejših komercialnih programskih orodij (PO), za linearano, nelinearno in celoštevilčno programiranje......................................................................11 5. Predstavitev programskih orodij EXCEL-solver, LINGO, LINDO in POM-QM ........13

5.1. EXCEL...........................................................................................................13 5.2. LINGO ...........................................................................................................20 5.3. LINDO............................................................................................................26 5.4. POM-QM .......................................................................................................29

6. Vzorčni primeri uporabe programov (orodij) v gospodarstvu..................................33 6.1. Problem zmesi ...............................................................................................33

6.1.1. EXCEL ...................................................................................................34 6.1.2. LINGO....................................................................................................35 6.1.3. LINDO....................................................................................................35 6.1.4. POM-QM................................................................................................36

6.2. Proizvodni problem ........................................................................................37 6.2.1. EXCEL ...................................................................................................38 6.2.2. LINGO....................................................................................................39 6.2.3. LINDO....................................................................................................40 6.2.4. POM-QM................................................................................................41

6.3. Transportni problem.......................................................................................42 6.3.1. EXCEL ...................................................................................................43 6.3.2. LINGO....................................................................................................44 6.3.3. LINDO....................................................................................................45 6.3.4. POM-QM................................................................................................46

6.4. Problem maksimalnega pretoka.....................................................................48 6.5. Problem najkrajše poti ...................................................................................51 6.6. Problem antagonističnih iger..........................................................................54 6.7. Problem optimizacije zalog (NLP problem).....................................................56

6.7.1. POM-QM................................................................................................57 6.7.2. EXCEL ...................................................................................................58

7. Primerjava uporabnosti Excel - Solverja, Linga, Linda in POM-QM pri reševanju problemov odločanja (optimizacije) ...............................................................................60 8. Zaključek ...............................................................................................................66 9. Literatura in viri ......................................................................................................67 Kazalo slik in tabel.........................................................................................................69

Page 5: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 1

odločanja v poslovnih procesih

1. Uvod

Živimo v sodobnem svetu. Tistemu, ki se ne prilagodi sodobnemu poslovanju, se zna zgoditi, da bo kaj hitro začel izgubljati stranke in ugled. Trgu je namreč potrebno zagotoviti izdelke, ki so konkurenčni, kakovostni, hitro dobavljivi in cenovno ugodni, prav tako pa je potrebno poskrbeti tudi za morebitni servis. Če vodsto podjetja ne reagira in se ne odzove na potrebe kupcev in trga, je torej možen tudi njegov propad. Kako naprej v primerih manjše ali večje krize, je odvisno od odločitev. Te morajo biti pravilne, dobro premišljene, upoštevati pa morajo tudi veliko kriterijev. Odločitve so vedno pomembne, tudi ko podjetje ni v neki hudi krizi, saj ga vodijo naprej v rast in razvoj. Ena izmed možnih pomoči, h kateri se lahko zatečejo managerji, je prav gotovo odločitveni informacijski sistem ali OIS, ki nudi pomoč pri reševanju standardni problemov operacijskih raziskav (OR). Tovrstni informacijski sistemi ponujajo uporabnikom enostaven in prijazen grafični vmesnik, preko katerega vnašajo želene podatke in oblikujejo ustrezen matematičen model problema in ustrezne optimizacijske tehnike. Slednji se ustrezno obdelajo in računalnik prikaže dobljeni rezultat. Ponekod lahko le-tega prikaže celo z grafom, ki morda rešitev pokaže še nazorneje. Managerji možnosti uporabe modernih programskih orodij pogosto zanemarijo, ne uporabijo, ali morda celo ne vedo, da obstajajo, kar je najpogosteje v manjših podjetjih. V večjih se težav zavedajo nekoliko bolj, saj je večje podjetje seveda težje izvleči iz krize kot manjše. Da do česa takšnega sploh ne pride ali pač, če že, da so posledice čim milejše, je treba imeti sisteme za podporo pri odločanju stalno v uporabi. V diplomski nalogi bo z namenom predstavitve možnosti uporabe sodobne informacijske tehnologije za podporo odločanju predstavljeno delo s štirimi programskimi orodji, kot so Excel, Lingo, Lindo in POM-QM, ki je nadgradnja Excela. V prvem delu opisujemo matematično programiranje, nato pa sledijo opisi namestitve in uporabe omenjenih orodij. Sledi prikaz uporabe programov na prototipnih primerih in na koncu sklep o uporabi teh programov. Kot omenjata Krajewski in Ritzman, managerji sprejemajo veliko odločitev medtem ko se ukvarjajo z različnimi odločitvenimi področji. Čeprav je narava vsake odločitve različna, pa imajo te skupne oporne točke. Kot prvo, je vedno potrebno jasno prepoznati in definirati problem, saj šele tako postane jasno, kako se nanj odzvati. Treba je zbrati vse potrebne informacije za analizo vseh možnih rešitev, na koncu pa izberemo takšno odločitev, ki je za dani primer najustreznejša. Do odločitve ponavadi pridemo na podlagi dolgoletnih izkušenj. Včasih je morda za njeno iskanje potrebno intenzivno skupinsko razmišljanje in podajanje idej, kot denimo v primeru metode viharjenja možganov (brain storming), vendar pa je treba zaupati tudi sodobnim tehnologijam.

Page 6: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 2

odločanja v poslovnih procesih

2. Načrtovanje in razvoj odločitvenih sistemov

Sprejemanje dobrih in pravih odločitev je želja in prizadevanje vsakega dobrega managerja, saj kakovost odločitve določa, kako bo podjetje poslovalo in se obnašalo na trgu. Odločitev sicer ne sprejemajo samo glavni managerji, ampak tudi ostali zaposleni, vsak na svojem področju in v svojem obsegu. Odločitveni informacijski sistemi (OIS) pripomorejo k njihovim boljšim odločitvam, oziroma jim jih olajšajo. Gre za osnovne računalniške sisteme, ki na osnovi analize problema in metod ter modelov OR pomagajo pri reševanju optimizacijskih problemov z uporabo analiziranja in modeliranja podatkov pri reševanju problemov operacijskih raziskav. Današnja tehnologija nam omogoča njeno boljšo izrabo z uporabo programskih orodij, ki za namen iskanja rešitve uporabijo ogromne baze podatkov. Ključni elementi OIS so: analiziranje modelov, upravljanje s podatki in uporabniški vmesnik. Učinkovitost programa je lahko odvisna že od samega uporabniškega vmesnika. Če je ta zapleten in težak za uporabo, še tako dober program uporabniku ne koristi, saj ga ne zna izkoristiti. OIS je pri uporabi, za razliko od običajnih odločitvenih sistemov, drugačen. Z njim se probleme rešuje interaktivno, saj sistem in odločevalec delujeta interaktivno, se pravi povezano. To poteka tako, da uporabnik narekuje sistemu naloge v skladu s sposobnostjo slednjega na temelju razsojanja, izkušenj in generiranih rezultatov.

Na sliki 1 je prikazana struktura interakcije med komponentami OIS.

Vmesnik uporabnik-sistem

Okenski graficnivmesnik

Baza metodoptimizacije

Bazamodelov

Podatkovnabaza

OR uporabnik/manager

Slika 1: Prikaz strukture OIS

2.1. Faze in razvoj odločitvenega informacijskega sistema

Ker se vsak projekt gradi po fazah, ni nič drugače niti pri tem. Sestavljen je iz več različnih faz. Za tiste, ki smo se jih namenili opisati, ni nujno, da si sledijo striktno ena za drugo, se pa prepletajo. Tudi niso enake za vsa podjetja, saj se lahko razlikujejo od primera do primera.

Page 7: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 3

odločanja v poslovnih procesih

Faza razvoja OIS so prikazane v tabeli 1 Stopnja Naloga posamezne stopnje Ocenjevanje projekta - Definirati poblem in preveriti ali je primeren za reševanje z

OIS - Ugotoviti izvedljivost projekta - Razviti predloge projekta

Analiza problema - Analizirati odločitveni proces, to je študija ključnih elementov problema skozi serijo intervjujev z odločevalci - Izbiranje najugodnejše rešitve problema - Izbiranje programskega orodja za razvoj OIS

Načrtovanje - Določiti potrebe sistema - Določiti logični izgled sistema (glavni meni, glavne sistemske komponente, plan sprememb) - Oblikovati bazo podatkov - Oblikovatigrafični vmesnik

Razvijanje, testiranje in dokumentiranje

- Razvijanje aplikacij - Razvijanje baze podatkov - Napolnjevanje baze podatkov s testnimi podatki - Implementacija in testiranje - Izboljševanje uporabniškega vmesnika s pomočjo uporabnikov - Ovrednotenje uporabniškega vmesnika - Izvesti ocenitev testiranja - Razvijanje dokumentacije

Implementacija (Uvajanje)

- Določanje odgovorne osebe za spremembe znotraj organizacije - Motivirati uporabnike za spremembe - Preveriti in izboljšati sprejemljivost uporabnikov do novosti - Zagotoviti šolanje uporabnikov

Vzdrževenje - Razvijanje plana vzdrževanja in proračuna - Pomagati uporabnikom integrirati sistem v dnevno uporabo - Izvesti pregled po uvajanju - Zagotavljanje preoblikovanja sistema

Tabela 1: Prikaz faz razvoja OIS (Čižman, Černetič, 2002)

Od vseh zgoraj naštetih faz, je za okvir diplomske naloge najpomembnejša faza znotraj analize problema, to je izbiranje programskega orodja. Kajti če se odločimo za tisto programsko orodje, ki nam in našim potrebam najbolj ustreza, bomo z njim veliko lažje delali, kot pa z nekim drugim orodjem, ki nam ne bo najbolje ustrezal, v smislu karakteristik in načinu uporabe. Ta faza pa je pomembna predvsem zato, ker v diplomski nalogi ne gradimo novega OIS, vendar samo med obstoječimi na trgu delamo primerjavo in iščemo njihovo uporabno vrednost.

Page 8: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 4

odločanja v poslovnih procesih

3. Teoretične osnove matematičnega programiranja

3.1. Linearno programiranje

Pri sodobnih načinih managementa poslovnih procesov se pogosto srečujemo z reševanjem nalog, ki imajo mnogo možnih rešitev. Med vsemi želimo poiskati le tisto, pri kateri je pri danih pogojih dosežen najboljši poslovni učinek – maksimalni dobiček ali minimalni stroški, kar je odvisno od konkretnega problema. V praksi najdemo celo vrsto problemov takšne narave, kot na primer: proizvodni program, načrtovanje investicij, izbor lokacije, izbor vrstnega reda obdelav pri proizvodnji, stroške zalog, transportne stroške, čas transporta, čas realizacije naloge, izkoriščenost virov, porabo materiala, tok skozi mrežo, matrične igre ipd. Ko iščemo optimalno proizvodnjo, izkoriščenost zmogljivosti, optimalen pretok idr., govorimo o primerih iskanja maksimalnih vrednosti. Če iščemo čim krajši transportni čas ter manjše transportne stroške in zaloge, pa govorimo o primerih minimuma. Pri reševanju managerskih nalog, kot so problemi odločanja, pogosto uporabljamo rezultate, do katerih pridemo s pomočjo intuicije (ocene na prst), ne pa s pomočjo znanstveno utemeljene metode. Včasih so tako pridobljene rešitve sicer dobre, ker temeljijo na izkušnjah, posebej še, če problemi niso preobsežni, vendar pa ne vedno. Prav zato je v gospodarstvu prišlo do potrebe po uporabi eksaktnih (znanstvenih) metod pri reševanju problemov optimizacije. Ena najpreprostejših metod optimiranja je prav gotovo linearno programiranje, ki se uporablja pri iskanju ekstremene vrednosti (optimuma) na najrazličnejših področjih gospodarstva. Probleme, ki jih optimiramo s pomočjo linearnega programiranja, maksimiramo ali minimiramo z namensko funkcijo, jih poimenujemo tudi ciljna ali kriterijska funkcija. Ekstremno vrednost namenske funkcije iščemo v pogojih, ki jih opišemo s sistemom linearnih pogojnih enačb in/ali neenačb. Neznanke – imenujemo jih tudi spremenljivke odločanja – katerih vrednosti želimo poiskati, predstavljajo konkretne vrednosti količin, kot so teža, dolžina, prostornina, čas, število izdelkov, idr., ki očitno ne morejo biti negativne. Pri linearnem programiranju gre torej za iskanje takšnih nenegativnih vrednosti spremenljivk, da bo vrednost clijne funkcije, ki se meri v denarnih enotah, ekstremna. Sodobna računalniška in informacijska tehnologija omogoča hitro in učinkovito reševanje linearnih pa tudi nelinearnih programov velikih dimenzij. Razpoložljiva programska oprema za matematično programiranje nudi uporabniku, poleg osnovnih rešitev v numerični ali grafični obliki, tudi raznovrstne dodatne analize (kaj-če) rezultatov optimizacije, kar znatno olajšuje sprejemanje čim boljših odločitev v pravem času. Kljub vsej razpoložljivi informacijski tehnologiji pa je še vedno treba najprej formulirati model »ročno« na osnovi podatkov s pomočjo ustreznih enačb. Pri tem pomembnem opravilu moramo biti zelo pozorni na to, da matematična formulacija kar najbolj ustreza dejanskemu problemu. Kajti, dobra formulacija problema brez dvoma predstavlja vsaj pol poti do končne rešitve. Takšen pristop k reševanju problemov matematičnega programiranja pa zahteva poznavanje teoretičnih osnov linearnega programiranja in tudi uporabe ustreznih programskih orodij, kot so naprimer Excel, Lindo in SAS System (Čižman, 2004).

Page 9: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 5

odločanja v poslovnih procesih

Glede na lasten zgodovniski razvoj, je linearno programiranje sorazmerno mlada veja uporabe matematike. Njegovi začetki segajo pred drugo svetovno vojno, prve formulacije problemov linearnega programiranja in metode reševanja pa srečamo leta 1939 v knjigi ruskega matematika L. V. Kantoroviča o organizaciji in načrtovanju proizvodnje. Neodvisno od ruskih matematikov so linearno programiranje razvijali na Zahodu, posebno znanstveniki v ZDA, kjer je med prvimi F. L. Hitchcock leta 1941 objavil študijo o nekem transportnem problemu. Šest let zatem je G. B. Dantzig razvil splošno algebraično metodo za reševanje linearnih programov, imenovano »simpleks metoda«. Z njeno pomočjo je možno numerično rešiti vsak problem linearnega programiranja. Kmalu po njenem odkritju jo je Dantzig uporabil pri reševanju problema minimalnih stroškov prehrane. Linearno programiranje se je razvijalo vzporedno in v tesni povezavi z drugima dvema znanstenima vejama: z med-sektorsko analizo in teorijo strateških iger. Matematično osnovo teh treh vej tvori linearna algebra. Praktični problemi linearnega programiranja so običajno zelo kompleksni, zaradi česar pri numeričnem reševanju zahtevajo toliko računanja, da jih lahko praktično obdelujemo le s pomočjo računalnika. Zato je razumljivo, da se je linearno programiranje začelo uporabljati v gospodarski praksi šele tadaj, ko je bilo za numerično reševanje možno uporabljati elektronske računalnike. Pomemben dogodek v razvoju linearnega programiranja najdemo v letu 1952, ko je bil v okviru projekta, ki ga je vodil Dantzig, izdelan prvi program za reševanje problemov organizacije po simpleks metodi z uporabo računalnika. Ob koncu 60-tih let so bili na tržišču že prvi programski paketi za linearno programiranje. Danes programska orodja za matematično programiranje omogočajo milijon-krat hitrejše reševanje problemov kot v letu 1985, matematični modeli pa lahko dosegajo preko 200.000 spremenljivk in omejitev (Čižman, 2004). Problem linearnega programiranja izrazimo v matematični obliki tako: Linearnem programu želimo določiti vrednosti odločitvenih spremenljivk 1 2, ,..., sx x x , te

pa morajo odgovarjati pogojem nenegativnosti: 1 20, 0,..., 0sx x x≥ ≥ ≥

in linearnim neenačbam:

11 1 12 2 1 1

1 1 2 2

...

...

s s

m m ms s m

a x a x a x b

a x a x a x b

<+ + +

>

<+ + +

>

tako, da ima ciljna funkcija: 1 1 2 2 ... s sz c x c x c x= + + +

ekstrem (minimum ali maksimum).

Page 10: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 6

odločanja v poslovnih procesih

3.1.1. GRAFIČNA METODA

Grafična metoda je enostavna, vendar s pomankljivostjo, da za problem z več kot dvema spremenljivkama praktično ni več primerna. Za reševanje problemov z več spremenljivkami, oziroma bolj splošna metoda, je metoda simpleksov. Za lažjo predstavo si oglejmo primer linearnega programiranja (LP1) z dvema spremenljivkama x1 in x2. Želimo jima določiti vrednost, zadoščati pa morata naslednjim pogojem nenegativnosti: 1 20, 0x x≥ ≥

in linearnim neenačbam:

1

2

1 2

1 2

3

6

2 9

3 4

x

x

x x

x x

+ ≤

+ ≥

tako, da ima ciljna funkcija:

1 23 2z x x= +

maksimum. Grafični model problema je prikazan na sliki 2. Iz neenačb izračunamo sečišča s koordinatnima osema in te premice vrišemo v koordinatni sistem. Točke znotraj nastalega lika so vse možne rešitve, teh je neskončno, poiskati pa je potrebno optimalno. Ogljišča lika določajo ekstremne vrednosti, odvisno od smernega koeficienta ciljne funkcije. Eno od teh ogljišč je rešitev. Na sliki 2 je ciljna funkcija predstavljena kot črtkana črta, sečišče z ogljiščem A pa predstavlja rešitev. Rešitve zgoraj navedenega problema so torej: x1= 1,5 x2= 6 in Zmax=16,5 in to je v točki A (1.5, 6), kjer je tudi maksimalna vrednost ciljne funkcije 16,5z = .

01,333 3 x1

3

A6

4

x2

1,5

Slika 2: Grafični prikaz linearnega programa

Page 11: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 7

odločanja v poslovnih procesih

3.1.2. ANALIZA OBČUTLJIVOSTI, PRIMARNOST IN DUALNOST Informacije, ki se nanašajo na spremembe tehnoloških koeficientov, razpoložljivih kapacitet (desno-stranski koeficienti) in koeficientov ciljne funkcije (cene ali stroški) v zvezi z optimumom so najbolj zanimive. Analiza takih sprememb se v strokovni literaturi imenuje analiza občutljivosti ali »kaj če analiza« oz. post-optimalna analiza. Pri analizi občutljivosti želimo ugotoviti, kaj se zgodi z optimalno rešitvijo, če spremenimo kakšen koeficient v linearnem programu. V praksi se najpogosteje uporablja dve vrsti analiz, imenovani c-analiza in b-analiza. C-analiza je uporabna predvsem pri vprašanju občutljivosti cene, torej za koliko lahko spremenimo ceno, da rešitev ostane optimalna, b-analiza pa je primerna za ugotavljanje območja dovoljenih sprememb desnostranskih koeficientov v pogojnih neenačbah. (Čižman, 2004) Vsakemu linearnemu programu lahko pridružimo določen drugi linearni program. Oba sta medsebojno povezana tako, da imata enake vrednosti ciljne funkcije in da dobimo optimalno možno rešitev drugega z optimalno rešitvijo prvega. Tako prvi linearni program imenujemo primarni, njemu pridruženemu pa pravimo dualni. V dualnem načinu lahko isti problem pogledamo iz drugega zornega kota. Dualni program uporablja enake parametre kot primarni program, vendar na različnih mestih. Vsakemu primarnemu linearnemu programu lahko priredimo dualnega na sledeč način:

1. Vrstice koeficientov preidejo v stolpce, stolpce pa v vrstice. 2. Omejitve primarnega programa postanejo koeficienti ciljne funkcije dualnega

programa, koeficienti ciljne funkcije primarnega programa, pa postanejo omejitve dualnega programa.

3. Neenačaji obrnejo smer. 4. Standardni primarni model maksimuma preide v problem minimuma. 5. Standardni primarni model minimuma preide v problem maksimuma.

Za primer LP1 ima dualni program naslednjo obliko: Omejitve:

1 3 4

2 3 4

2 3 3

2

y y y

y y y

+ − ≥

+ − ≥

ciljna funkcija: 1 2 3 43 6 9 4 (min)w y y y y= + + −

3.1.3. METODA SIMPLEKS

Reševanje problemov linearnega programiranja z metodo simpleks je bolj splošno od uporabe metode grafičnega reševanja, ki je primerna za dve spremenljivki. Pri metodi simpleks se lahko uporabi poljubno število spremenljivk odločanja. Od časa, ko je to metodo razvil Dantzig, se ni spremenila, se je pa možnost njene uporabe, saj je z razvojem računalniške tehnologije danes možno reševati kompleksne probleme.

Page 12: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 8

odločanja v poslovnih procesih

Linearni program rešujemo s simpleks metodo po naslednjem postopku: 1. Vpeljemo dopolnilne spremenljivke in z njimi spremenimo neenačbe v enačbe. 2. Vpeljemo umetne spremenljivke, ki jih ustreznim enačbam prištejemo. 3. Sestavimo tabelo. 4. Določimo bazo vektorskega prostora 5. Tabeli dopišemo dodatno vrstico zj – cj, kjer indeks j zavzema vrednosti 0, 1, 2, ...., n. 6. Določimo vektor Pk, ki ga uvedemo v bazo. 7. Določimo vektor Pr, ki ga odstranimo iz baze. 8. Transformiramo koeficiente v prvotni tabeli. 9. Po transformaciji koeficientov dobimo novo tabelo in njeno ustrezno novo možno rešitev. 10. Ugotovimo, ali je mogoče novo možno rešitev poboljšati. 11. Če je izboljšava izračuna možne rešitve mogoča, ponovimo iteracijo in začnemo računanje po tej predlogi v 6. točki. (Čižman, 2004)

3.2. Nelinearno programiranje

Mnogo je problemov, ki jih z linearnim programiranjem ne moremo rešiti zaradi dveh razlogov. Prvi je, da je tovrsten problem »zelo« nelinearen, in da bi bil linearen približek neuporaben, drugi pa, da je že problem po naravi takšen, da se moramo oprijeti nelinearnega programiranja. Za reševanje problemov nelinearnega programiranja obstajajo indirektne metode, ki so analitične in enokoračne, in direktne metode, ki so numerične in iterativne – večkoračne. V praksi so indirektne primernejše od direktnih le v primerih, ko je odločitvenih spremenljivk in omejitev malo (<10). Splošni problem nelinearnega programiranja (NLP) ima naslednjo obliko: Določiti moramo spremenljivke odločanja 1 2, ,..., nx x x , tako da je:

min (ali maks) ( )1 2, ,..., nz f x x x=

ki zadošča:

Page 13: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 9

odločanja v poslovnih procesih

( )

( )

( )

1 1 2 1

2 1 2 2

1 2

, ,...,

, ,...,

, ,...,

n

n

m n m

g x x x b

g x x x b

g x x x b

<

>

<

>

<

>

Tako kot je pri linearnem programiranju funkcija f(x) ciljna funkcija linearnega programiranja, je tu f(x) funkcija nelinearnega programiranja, g(x) pa so nelinearne omejitve nelinearnega programiranja. Problemi nelinearnega programiranja se ne rešujejo tako kot problemi linearnega programiranja. Pri linearnem lahko denimo uporabimo univerzalno metodo simpleks, pri nelinearnem programiranju pa tega ne moremo. Za vsak nelinearni problem posebej je potrebna nova metoda ali pa je treba metodo reševanja tega problema prilagoditi v sozvočju z njegovim matematičnim modelom, dimenzijami in značajem nelinearnosti. Specifični problemi nelinearnega porgramiranja so tisti, pri katerih je nelinearna ciljna funkcija ali pa so nelinearne omejitve. Da je reševanje enostavnejše, probleme razvrstimo, glede na obliko ciljne funkcije in omejitev, v različne kategorije, kot so na primer problemi nelinearnega programiranja z linearnimi omejitvami, kvadratično programiranje ali celoštevilčno programiranje. Če v vseh omejitvah nastopajo samo enakosti (enačbe), lahko tovrstne probleme rešujemo z metodo Lagrange-jevih multiplikatorjev. Med NLP spadajo tudi kvadratno, ulomljeno, 0/1 (binarno) in celoštevilčno (integer) programiranje. (Zadnik, 2004)

3.3. Celoštevilčno programiranje

V vsakdanji praksi je mnogo problemov, ki so načeloma celoštevilčni. Na primer pri izračunu, pri iskanju proizvodnje količine, večinoma dobimo za rezultat neko realno (necelo) število. No, če bi tovarna v enem dnevu izdelala 442,7 avtomobila, bi bilo to nelogično. Rezultat mora namreč biti celo število. Problema celoštevilčnosti se običajno znebimo tako, da na decimalna mesta pozabimo ali števila zaokrožimo navzgor. Ta popravek se pri velikih količinah praktično ne pozna, pri majhnih pa moramo upoštevati tudi decimalna mesta. Mnogo dejanskih problemov linearnega programiranja pa je takšnih, da so že po svoji naravi celoštevilčni in si torej z zaokroževanjem rešitev ne moremo pomagati. Zato so ti opredeljeni kot problemi celoštevilčnega programiranja. Gre za linearne programe, v katerih morajo biti spremenljivke nenegativna cela števila. Ko so v celoštevilčnem programiranju vse spremenljivke definirane kot cela števila, ga imenujemo čisto celoštevilčno programiranje. Če pa so definirane kot cela števila samo nekatere izmed spremenljivk, govorimo o problemu mešanega celoštevilčnega programiranja. Celoštevilčni problemi programiranja, v katerem morajo biti vse spremenljivke enake 0 ali 1, imenujemo problem nič-ena (0-1) programiranja.

Page 14: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 10

odločanja v poslovnih procesih

Enostaven primer celoštevilčnega programa za določanje maksimuma:

1 2

1 2

1 2

, 0

6

3 2

x x

x x

z x x

+ ≤

= +

Z je ciljna funkcija, x1 in x2 pa celoštevilčni nenegativni spremenljivki. V praksi večino celoštevilčnih problemov (IP) rešujemo z metodo »razvejevanja in omejevanja« (branch and bound method), ki najde rešitev problema z učinkovitim (pametnim) ugotavljanjem točk na področju možnih rešitev posameznega problema. Tipični primeri celoštevilčnega programiranja so:

• Problem trgovskega potnika

• Problem nahrbtnika

• Razporejanje kapitala

Page 15: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 11

odločanja v poslovnih procesih

4. Pregled pomembnejših komercialnih programskih orodij (PO), za linearano, nelinearno in celoštevilčno programiranje

Za področje komercialnih analitičnih programskih orodij bi lahko rekli, da je na njem kar precej pestro dogajanje, saj je izbira precejšna. Na voljo je mnogo programskih orodij, nekatera pa so celo brezplačna. Pregled pomembnejših komercialnih programskih orodij podajamo v tabelah 2, 3 in 4. AIMMS AMPL CPLEX Linear Optimizer C-0WHIZ DATAFORM DecisionPro DecisionScript EZMod FortMP Frontline Solvers for AMPL Frontline Solvers for Excel GAMS GAUSS HOPDM HS Linear Optimizer IBM Optimization Solutions LAMPS Large-Scale LP Solver Large-Scale SQP Solver LINDO LINGO LOQO LPS 867 LP-Toolkit LSSOL Mathematica MathPro 2000 MIMI MINOS MOSEK Optimization Tools MPL MPSIII NAG Numerical Libraries NAG Fortran Libraries OML OMNI OMP Optimization OPL Studio Optimal Engineer OptiMax 2000 OSL PIMS POM-QM Premium Solver Platform PROFIMAX Profit Vehicle Router Quant Methods

Software(QMS) QPOPT

SAS/OR SCIMOD SNOPT Solver Suite Solver DLL Platform SOPT TOMLAB What'sBest! XA Optimizer and Solver Xpress-MP XPRESS Solver Engine

Tabela 2: Prikaz komercialnih programskih orodij za linearno programiranje

V tabeli 3 so predstavljena komercialna orodja za nelinearno programiranje. AIMMS GAMS IBM Optimization Solutions KORBX LINGO LOQO MathPro 2000 MINOS NPSQL Optimal Engineer OSL POM-QM (v povezavi z

Excel-om) SCIONIC Solver Suite What's Best!

Tabela 3: Prikaz komercialnih programskih orodij za nelinearno programiranje

Page 16: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 12

odločanja v poslovnih procesih

V tabeli 4 so predstavljena komercialna orodja za celoštevilčno programiranje. CPLEX Linear Optimizer FortLP GAMS IBM Optimisation Solution LAMPS LINDO LINGO MathPro 2000 MPL MPSIII OML OMNI Optimal Engineer PIMS POM-QM SAS/OR Solver Suite (Excel) What's Best! XA Optimizer and Solver Xpress-MP

Tabela 4: Prikaz komercialnih programskih orodij za celoštevilčno programiranje

Page 17: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 13

odločanja v poslovnih procesih

5. Predstavitev programskih orodij EXCEL-solver, LINGO, LINDO in POM-QM

Fakulteta za organizacijske vede v okviru Laboratorija za logistiko uporablja v izobraževalnem programu nekaj programskih orodij z algoritmi za linearno programiranje, ki temeljijo na metodi simpleks, za nelinearno programiranje algoritme, temelječe na gradientnih metodah, za celoštevilčno programiranje pa algoritme, ki temeljijo na metodah razvejanja in omejitve (branch and bound method). Ta orodja omogočajo vnos različnega števila omejitev. Nekatera je z dodatnim doplačilom možno razširiti za obdelavo še večjega števila omejitev. Orodja, ki jim bomo posvetili pozornost so Microsoft Excel, Lingo, Lindo in POM-QM. Čeprav so ta programska orodja namenjena za lažje in hitrejše reševanje tovrstnih problemov, pa je še vedno potrebno ročno pripraviti podatke za vnos, problem pa je potrebno formulirati v matematični obliki, ki jih program zna sprejeti in obdelati.

5.1. EXCEL

Excel je del programskega paketa Microsoft Office. Namenjen je delu s številkami, tabelami in grafi. Uporaben je na večih področjih poslovanja. Od proizvodnje, financ, distribucije in nabave do načrtovanja, primeren pa je tudi za domačo uporabo. Excela kot samostojnega dela ni mogoče kupiti, ampak le v okviru celotnega paketa Office. V Excelu je že vključen reševalec, imamo pa možnost uporabe še zmogljivejšega, vendar pa je zanj potrebno plačati. Podjetje Frontline systems Inc., ki je tudi izdelalo reševalca, ki je že vključen v excel, ponuja dve zmogljivejši verziji reševalca. Najzmogljivejši je Premium Solver Platform, če pa ne želite zapraviti za to verzijo reševalca preveč denarja oziroma ne potrebujete teh zmogljivosti, je druga možnost Premium Solver. Primerjava zmogljivosti vseh treh verzij reševalca je podana v tabeli 5.

LASTNOSTI Standard Excel Solver

Premium Solver

Premium Solver Platinum

Optimizacijske metode: Linearni simpleks reševalec Samo za LP Samo za LP LP/Kvadratno GRG Nelinearni reševalec Da Da Da (hitrejši) Mešani – celoštevilčni reševalec

Da Da (hitri) Da (hitrejši)

Velikost problema: Linearne spremenljivke x omejitve

200 x 200 1000 x 8000 2000 x 8000

Nelinearne spremenljivke x omejitve

200 x 100 400 x 200 500 x 250

Poročila reševalca: Poročilo o rešitvi problema Da Da Da Poročilo o občutljivosti Da Da Da Poročilo o omejitvah Da Da Da Cena licence z letno podporo:

Brezplačno $895 $1,795

Tabela 5: Prikaz zmogljivosti posameznih orodij in njihove cene

Page 18: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 14

odločanja v poslovnih procesih

Uporaba reševalca Reševalec je program za optimizacijo in reševanje linearnih, nelinearnih in celoštevilčnih problemov. Z njim lahko poiščemo optimalno vrednost za formulo v ciljni celici. Reševalec dela s skupino celic, ki so povezane, bodisi posredno bodisi neposredno, s formulo v ciljne celice. Prilagaja vrednosti v spreminjajočih celicah, imenovanih prilagodljive celice, ki jih določi uporabnik, da izračuna rezultat, ki ga uporabnik prav tako določi v formuli ciljne celice. Da se omejijo vrednosti, ki jih potem reševalec uporabi v modelu, je treba uporabiti omejitve, le-te pa se lahko nanašajo tudi na druge celice, ki vplivajo na formulo ciljne celice. Reševalec se uporablja za določanje minimalne ali maksimalne vrednosti ene celice s spreminjanjem drugih celic – na primer, ko se spremeni količina proračuna za oglaševanje, lahko ugotovimo, kakšne posledice ima to na načrtovan dobiček. Namestitev reševalca Za reševanje linearnih programov v Excelu je potrebno reševalca (solver) najprej namestiti, v kolikor že ob namestitvi ni bil nameščen. Reševalca najdemo, če kliknemo na Orodje/dodatki, postavimo kljukico pri Dodatek reševalec oziroma Tools/Add-ins in kljukico pri Solver Add-ins, če je angleška verzija programa, kot je prikazano na sliki 3. Potrebno pa je imeti originalno zgoščenko, ki jo zahteva postopek, da z nje prenesemo potrebne podatke za namestitev.

Slika 3: Dodajanje reševalca Tako smo torej dodali funkcijo reševalca. Osnovna verzija je sposobna reševati linearne probleme z do 200 omejitev ter do 100 omejitev, če gre za nelinaerni problem. Za reševanje celoštevilnih problemov pa z uporabo metode razvejanja in omejevanja (Branch and bound method) vključimo probleme z 10 do 20 spremenljivkami.

Page 19: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 15

odločanja v poslovnih procesih

Delovanje Reševalca bom prikazal na vzorčnem primeru (LP2): Podjetje izdeluje dve vrsti kalkulatorjev: običajne in hitre. Običajne prodaja z dobičkom 9 €, hitre pa 14 €. Na dan lahko izdela 200 enot običajnih in 100 enot hitrih. Za izdelavo kalkulatorjev ima na voljo omejeno število delovnih ur, na dan 160 ur. Da izdela običajnega, potrebujejo 10 minut, za hitrega pa 30. Določiti je treba, kakšna naj bo proizvodnja, da bo dobiček maksimalen, delovne ure in proizvodne zmogljivosti pa ne bodo presežene. Napišimo program najprej v matematični obliki:

1 20, 0

200

100

0,166667 * 0,5 * 160

x x

običajen

hiter

običajen hiter

≥ ≥

+ ≤

Opomba: kjer ima ciljna funkcija: 9 * 14 *z običajen hiter= + Maksimum. Reševalca najdemo, če spet kliknemo na Orodja/Reševalec oziroma Tools/Solver in potem na Reševalec oziroma Solver, kot prikazuje slika 4. Podatke v Excel vnašamo, kot običajno, v obliki tabele. V nadaljnih primerih bomo pri uporabi Excela vedno uporabili to obliko, ki je prikazana na sliki. Ta oblika je uporabljena zaradi boljše preglednosti, saj je enobarvna tabela lahko nekoliko nepregledna. Vsak uporabnik pa, seveda, lahko uporabi program po svoji želji. Torej v sivem delu so podatki, v zelenem so omejitve, v modrem je zapisana ciljna funkcija, v rumenem pa je vrednost ciljne funkcije (rešitev), formulo zanjo pa moramo prej vpisati v to celico. V zelene celice vpišemo linearne enačbe, kot seštevek in zmnožek podatkov iz sivega polja in vrednosti spremenljivk xn. Vrednost spremenljivk x1, x2, ...., xn, so napisane pod modrim delom in te bomo, poleg rezultata v rumeni celici, vedno iskali. Na spodnji sliki lahko vidimo, da je rešitev tega linearnega programa sledeča: običajnih kalkulatorjev mora biti 200 enot, hitrih pa 100, da bo maksimalen dobiček 3200 €. V tretji vrstici so vse enote pretvorjene v skupno enoto. 10 minut = 0,1666667 ure, 30 minut = 0,5 ure. Vidimo pa lahko tudi, da je bilo za doseganje tega rezultata potrebno 83,33 delovnih ur.

x1 ... običajen x2 ... hiter

Page 20: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 16

odločanja v poslovnih procesih

Slika 4: Zagon reševalca Postopek, kako pridemo do rešitve, pa je sledeč. Ko imamo podatke in formule vpisane v tabelo, kliknemo na reševalca in se odpre novo okno, v katerega vnšamo podatke za reševalca. Ogledamo si ga lahko na sliki 5.

1

11

10

98

7

65

43

2

Slika 5: Vnos parametrov V to okno vnašamo različne paremetre. Najprej potrebujemo ciljno funkcijo, nato pa spremenljivke in omejitve.

• V polju 1, Nastavimo ciljno funkcijo (Set target cell), določamo ciljno funkcijo. To naredimo tako, da že prej v pravo celico v tabeli vpišemo ciljno funkcijo, tukaj pa kliknemo gumb zraven okvirčka in potem na celico, v katero smo prej vpisali formulo.

• V polju 2, Equal to (Enako), določamo, ali bomo funkcijo maksimirali ali minimirali. Če hočemo vrednost po želji, jo vpišemo v okence Value of.

• V polju 3, S spremembo celic (By changing cells), določimo celice, ki jih reševalec lahko spreminja, dokler ni zadoščeno omejitvam problema in ciljni

Page 21: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 17

odločanja v poslovnih procesih

funkciji. Celice, ki smo jih spremenili, morajo biti s ciljno celico povezane posredno in neposredno.

• Gumb 4, Ugani (Guess). S klikom nanj funkcija ugane celice brez formul, ki se sklicujejo na ciljno funkcijo v Nastavi ciljno celico.

• Polje 5, Predmet omejitve (Subject to the constraints). V tem polju se prikažejo omejitve, ki jih vnašamo, ko pritisnemo gumb 6, Dodaj (Add). Odpre se vnosno okno, nato pa označujemo celice, ki jim želimo določiti omejitve. Vsako novo omejitev potrdimo z gumbom Dodaj. Tu se lahko nastavi tudi celoštevilčne vrednosti (int) in vrednosti za binarno programiranje (bin). To okno je prikazano na sliki 6.

Slika 6: Nastavitev omejitev

• Gumb 7, Spremeni (Change), odpre isto okno, kot gumb 6, vendar je najprej potrebno označiti eno od omejitev iz polja 5, ki jo želimo spremeniti. Potem lahko želeno omejitev spremenimo ali popravimo in kliknemo OK.

• Gumb 8, Izbriši (Delete), izbriše eno od omejitev iz polja 5, ki pa jo je potrebno prej označiti.

• Gumb 9, Ponastavi vse (Reset all), zbriše trenutne nastavitve problema in ponastavi vse nastavitve na njihove izvirne vrednosti.

Ko smo pravilno nastavili ciljno funkcijo, spremenljivke in omejitve, kliknemo gumb 10, Reši (Solve), in program bo izračunal rešitev, še prej pa se odpre novo okno (slika 7), kjer reševalec sprašuje, ali naj v preglednici obdrži rešitve oziroma izvirne vrednosti. Lahko izbiramo tudi med tremi poročili: Poročilom o odgovoru (Answer), Občutljivostno analizo (Sensitivity) in Poročilom o omejitvah (Limits).

Slika 7: Izbira poročil

Poročilo o odgovoru To poročilo nam za prilagodljive celice in ciljno funkcijo izpiše izvirne in končne vrednosti. Pri izbranih omejitvah se vpiše tudi formula omejitve in razlika med začetno in končno vrednostjo omejitve.

Page 22: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 18

odločanja v poslovnih procesih

Poročilo o omejitvah Izpiše nam zgornjo in spodnjo mejo posamezne spremenljive celice. Poročilo o občutljivostni analizi To poročilo vsebuje tudi postavko Omejeni stroški. Na primeru je videti to tako, da če spremenljivki povišamo vrednost za eno enoto, se ciljna vrednost posledično poveča ali zmanjša za vrednost omejenih stroškov. Nastavitve reševalca Če v oknu reševalca, na sliki 5, kliknemo na gumb 11, Možnosti (Options), se odpre okno, v katerem lahko reševalca nastavljamo po želji. To prikazuje slika 8. Tu lahko nastavljamo parametre za linearne in nelinearne probleme ter napredne lastnosti procesa reševanje problema, imamo pa tudi možnost shraniti in naložiti modele.

1

9

2

4

8

7

3

6

5

Slika 8: Možnosti Kot je razvidno iz slike, je možno nastavljati kar precej parametrov. Ogledali si bomo tiste, ki so najpogosteje v uporabi.

• V polje 1, Maks. Čas (Max time), vpisujemo čas, ki ga damo na razploago, da proces opravi svoje delo. Najdaljši čas, ki ga je možno vpisati, je 32767 sekund, že privzeto pa je nastavljen na 100 sekund.

• V polje 2, Iteracije (Iterations), vpišemo število iteracij oziroma ponovitev, ki jih želimo dovoliti. Če proces reševanja doseže maksimalen čas in število ponovitev predenj reševalec najde rešitev, se odpre okno s poskusno rešitvijo.

• V polje 3, Natančnost (Precision), vnašamo natančnost rešitve. Manjša kot je vnešena številka, večja bo natančnost. Torej je denimo 0,000001 bolj natančno število kot 0,001.

• V polje 4, Odstopanje (Tolerance), se vnaša vrednost v odstotkih, pomeni pa delež napak, ki jih še dovoljujemo v rešitvi. Torej povemo, do kje bo rezultat za nas še vedno sprejemljiv.

Page 23: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 19

odločanja v poslovnih procesih

• V polje 5, Konvergenca (Convergence), vnesemo vrednost relativne spremembe, ki jo še dovoljujemo, predenj reševalec najde rešitev. Manjša kot je številka, manjša relativna napaka je dovoljena.

• Polje 6, Predpostavi linearni model (Asume linear model), pospeši reševanje problema, ko so vsa razmerja v modelu linearna in rešujemo linearno optimiran problem, oziroma linearni približek nelinearnega problema. Predpostavi nenegativno (Assume Non-Negative) pa pomeni, da reševalec prevzame spodnjo mejo 0 (nič) za vse nastavljive celice, za katere ni določene spodnje meje v polju, kjer se dodajajo omejitve

• Polje 7, Prikaži rezultate iteracij (Show iterations results), obkljukamo, če želimo prikaz rezultatov po vsaki končani ponovitvi.

• V polju 8 Ocena (Estimates) aktiviramo aktivnosti, ki se nanašajo na nelinearno programiranje.

• Polje 9, OK pomeni potrditev nastavitev in zapustitev nastavitev, Cancel pomeni preklic in zapustitev nastavitev, Naloži model (Load Model) sproži postopek nalaganja (oz. priklica) že shranjenega modela in Shrani model (Save model) sproži postopek shranjevanja modela na željeno lokacijo.

Page 24: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 20

odločanja v poslovnih procesih

5.2. LINGO

Lingo je vsestransko orodje, namenjeno izgradnji in reševanju linearnih, nelinearnih in celoštevilčnih problemov hitreje, enostavneje in bolj činkovito. Je celovit paket, ki vključuje zmogljiv programski jezik za izražanje optimizacijskih modelov, prijazno okolje za gradnjo in urejanje problemov ter niz vgrajenih hitrih reševalcev. Zadnja verzija Linga, verzija 11, je zmožna delovati na več operacijskih sistemih in delovnih postajah. Windowsu, ki delujejo na 32- ali 64-bitni tehnologiji in na operacijskem sistemu Lunux. Starejše verzije Linga delujejo tudi na operacijskem sistemu Solaris in Linux na procesorjih Itanium II in SPARC32 na 64- oziroma 32-bitni tehnologiji. Prav tako je možno dobiti več različno zmogljivih različic. Brezplačno različico kar na proizvajalčevi strani (www.lindo.com), ki pa ima omejene zmogljivosti v smislu manjšega števila spremenljivk in omejitev. Te so enako zmogljive kot plačljive različice, vendar so zmožne reševati samo manjše probleme. Plačljive različice so seveda zmožne reševati kompleksnejše in obsežnejše probleme. V tabeli 6 je prikazan seznam različic skupaj s ceno in zmogljivostmi. (V tej diplomski nalogi uporabljamo verzijo, ki je brezplačna, in jo je možno uporabiti tudi na naši fakulteti.)

Različica Cena Omejitve Spremenljivka Celoštevilčna spremenljivka

Nelinearna spremenljivka

Globalna spremenljivka

Osnovna $495 1000 2000 200 200 10 Izboljšana $995 4000 8000 800 800 20 Industrijska $2.995 16000 32000 3200 3200 50 Razširjena $4.995 neomejeno neomejeno neomejeno neomejeno neomejeno

Tabela 6: Seznam različic LINGO

Prav tako kot pri Excelu v Reševalcu, tudi tukaj lahko uporabimo pomoč (Help), ki je razložena tako, kot v vseh običajnih priročnikih. Vključeno je veliko primerov s komentarji. Uporaba Linga Lingo je vsestransko orodje, izdelano za ustvarjanje in reševanje matematičnih optimizacijskih problemov enostavneje in bolj učinkovito. Vgrajene ima številne reševalce, ki so povezani z okoljem za modeliranje (modeling envoirment). Lingo je oblikovan tako, da proces reševanje modelov od uporabnika zahteva najmanjši možni vložek dela. Glede na strukturo modela, Lingo avtomatično prilagodi notranje parametre ter sam izbere ustreznega reševalca. Vgrajeni reševalci so:

• Linearni reševalci (Linear solver) Za reševanje linearnih problemov Lingo uporablja metodo Simplex, ki je bila opisana že v teoretičnemu delu tega zapisa in Mejno metodo. Slednja je alternativna možnost

Page 25: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 21

odločanja v poslovnih procesih

reševanja linearnih problemov v Lingu, ki hitro rešuje probleme velikega obsega pa tudi specifične probleme.

• Celoštevilčni reševalci (Global solver) Uporabni so za modele, kjer veljajo splošne in binarne omejitve. Lingovi reševalci delujejo v povezavi z reševalci za linearne, nelinearne ter kvadratne probleme. Vsebujejo pa tudi veliko celoštevilčnih omejitev, ki pri velikih ali celoštevilčnih modelih precej izboljšajo čas reševanja.

• Nelinearni reševalci (Multistart solver) Za nelinearne modele obstaja več vrst reševalcev in sicer: Splošni nelinearni reševalec (General nonlinear solver) Nelinearni reševalec za Lingo je osnovan na GRG algoritmih (Generalized reduced gradient) ter SLP modelih (Successive linear programing), ki nudijo možnosti ustrezne in hitre rešitve. Globalni reševalec (Global solver) Globalni reševalec se za razliko od lokalnega reševalca, ki se ustavi, ko najde lokalni optimum (to je lahko minimum ali maksimum), ne ustavi pa se pri prvem najdenem lokalnem optimumu, vendar išče toliko časa, dokler ne najde globalnega. Ta reševalec pretvori originalne nekonveksne ter nelinearne probleme v več konveksnih (linearnih). Nato uporabi metodo razvejanja in omejevanja (Brench and bound method) za izčrpno iskanje globalne rešitve med na novo nastalimi podproblemi. Večzačetni reševalec (Multistart solver) Običajen NLP reševalec se aktivira ob začetku iskanja lokanega optimuma. Uporabnik določa maksimalno število poskusov. Ta metoda pride v poštev, ko časovno omejeno iskanje globalnega optimuma odpove, saj večzačetni reševalec omogoča hitrejše in boljše iskanje rešitve.

• Kvadratni reševalec (Quadratic Solver) Tovrsten reševalec omogoča hitrejše reševanje linearnih, mešanih celoštevilčnih ter kvadratnih modelov z uporabo Mejne metode kot Splošni nelinearni reševalec. Z njim je možno rešiti tudi kvadratne modele z binarnimi ter celoštevilčnimi omejitvami. Na ta način je Lingo primeren za reševanje problemov regresije, optimizacije portfelja in nekaterih logističnih problemov.

• Predpostopkovni proces (Preprocessing) Ta proces je vključen v vse reševalce. Linearni in nelinearni reševalci vključujejo merilo in tehnike za zmanjševanje obsega modelov. Tehnika za zmanjševanje omogoča hitrejše reševanje problemov s pomočjo analiziranja prvotne formulacije ter ustreznega krčenja obširnejših modelov v manj obširne.

Page 26: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 22

odločanja v poslovnih procesih

Začetek uporabe programa Potem, ko na proizvajalčevi strani izpolnimo obrazec z nekaj osebnimi podatki, prenesemo zagonsko datoteko na računalnik. Z njo potem instaliramo program na želeno lokacijo. Ikona se postavi na namizje, dvakrat kliknemo nanjo in odpre se program, kot je prikazano na sliki 9.

Slika 9: Začetno stanje Na sredini imamo prazen »list«, kamor se potem piše program, nad njim pa je serija ikon in orodna vrstica. Po želji lahko te in še nekaj drugih vizualnih pripomočkov izklopimo in ponovno vklopimo, če kliknemo LINGO in nato Options, kjer potem dodajamo in odvzemamo kljukice za stvar, ki jo želimo imeti prikazano oziroma ne. Kot je razvidno iz slike, je v primerjavi z Excelom, ki ima poleg reševalca še mnogo drugih matematičnih funkcij za različne namene, Lingo namenjen resnično samo za namen matematičnega programiranja.

Pisanje modela z urejevalnikom Za razliko od Excela, ni potrebno v posebno okno vnašati formul, omejitev in ostalih parametrov. Program se napiše tako, kot bi ga pisali ročno na list papirja, nakar ve sam, kaj mora izračunati, če je seveda vse pravilno napisano, saj za sintakso uporablja poseben (algebraičen) programski jezik. Med pisanjem lahko naredimo tudi osebne komentarje za lažje razumevanje, če bi pozneje spet odpirali program ali pa, če bi ga bral za nami kdo drug. Komentarje je potrebno označiti, da jih potem program ne bo vključil v izračun, saj bi v tem primeru prišlo do napake in ne bi dobili rezultata. Komentar začnemo pisati tako, da postavimo na začetek klicaj (!), zaključimo pa ga s podpičjem (;), samodejno pa se obarva zeleno, tako da se loči tudi na ta način. Kje pišemo komentar, ni pomembno, lahko na začetku vrstice, vmes med pisanjem programa, pomembno pa je označiti začetek in konec komentrja. LINGO tudi ni občutljiv na velike ali male črke. Pišemo lahko po želji. Pri pisanju spremenljivk je pomembno, da jih poimenujemo tako, da najprej napišemo črko (od A do Z), ki ji lahko sledi katera koli črka, številka ali pa

Page 27: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 23

odločanja v poslovnih procesih

podčrtaj (_). Omejitev je samo v dolžini besede, ki je lahko dolga 32 znakov, kar bi moralo zadostovati za vsako ime. Pri pisanju programa je potrebno paziti, da vedno zaključimo vrstico, tako kot pri komentarju, s podpičjem. Program pišemo tako, da najprej napišemo ciljno funkcijo, ki jo želimo maksimirati oziroma minimirati. Temu sledijo omejitve, ki jih moramo razbrati iz problema. Če želimo dobiti pravilne rezultate, je potrebno imeti vse podatke v istih enotah. Kar hitro se namreč lahko pripeti, da vse napišemo pravilno, vendar pozabimo pretvoriti na skupno enoto in zatorej potem dobimo napačen rezultat. Delovanje Linga lahko predstavimo na kratkem vzorčnem primeru (LP2), ki je prikazan na sliki 10.

Slika 10: Primer uporabe Linga Ko je model napisan, kliknemo gumb Solve (Reši), oziroma kliknemo v menijski vrstici LINGO/Solve. Program preveri, če smo program napisali brez napak in dobimo rešitev. Če smo nekje v sintaksi naredili napako, nam sporoči in odpre okno, kjer je razloženo, kaj je najverjetneje napačno, zraven pa še doda povezavo do pomoči, kjer je pojasnjeno, kako bi moralo biti napisano. Če je vse pravilno, se nam odpre statusno okno, kot je prikazano na sliki 11.

Slika 11: Statusno okno

Page 28: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 24

odločanja v poslovnih procesih

Statusno okno nam poda informacije o modelu. Polje Solver Status (Stanje reševalca) prikazuje trenutno stanje reševalca. Prva postavka pove, kakšne vrste model je to (linearni program, nelinearni, celoštevilčni, kvadratni, ....), druga pa v kakšnem stanju je model. Sprva je začetno stanje nedoločljivo (Undetermined), ker reševalec še ni imel priložnosti generirati rešitve za model. Ko začne z iteracijami, se status spremeni v Nerešljivo (Infeasible). V tem stanju Lingo generira poskusno rešitev, vendar nobena ne zadostuje vsem omejitvam modela. Če možna rešitev obstaja, reševalec nato preide v stanje Rešljivo (Feasible). V tem stanju Lingo poišče rešitev, ki zadostuje omejitvam modela, vendar reševalec še ni zadovoljen, če to res ni najboljša rešitev. Če reševalec ne najde več boljše rešitve modela, se stanje spremeni v Globalni optimum (Global optimum) oziroma Lokalni optimum (Local optimum). Če model nima kakšnih nelinearnih spremenljivk, potem bo vsak lokalni optimum tudi globalni optimum. V primeru, da obstaja ena ali več nelinearnih spremenljivk, pa ni nujno, da bo lokalni optimum najboljša rešitev problema. Možno je, da je še kje boljša rešitev, vendar je reševalčevo lokalno iskanje ne »vidi«. Lahko, da Lingo zna priti do globalnega optimuma, vendar zaradi narave nelinearnega problema, ne more trditi, da ga ima. Tako torej pri nelinearnih modelih obstane v stanju lokalnega optimuma. Zaradi tega dejstva je boljše, da se model formulira, kadar je le možno, le z linearnimi spremenljivkami. Tu je še postavka Iterations (Ponovitve), ki pokaže število iteracij, ki jih je opravil Lingo. Polje Extended Solver Status (Podaljšano Stanje reševalca) se nanaša na različne posebne reševalce v Lingu. Večzačetni reševalec, Globalni reševalec ter Razvejevalni in omejevalni (Branch-and-Boud) reševalec. Postavke v tem okviru, se bodo posodabljala samo, če bo uporabljen kateri od teh reševalcev. V polju Variables (Spremenljivke) lahko po postavkah vidimo skupno število linearnih, nelinearnih oz. celoštevilčnih spremenljivk, ki smo jih vključili v model. Polje Constrains (Omejitve) prikazuje skupno število omejitev v modelu in koliko omejitev od teh je nelinearnih. Omejitev je nelinearna takrat, če je ena ali več spremenljivk nelinearnih. Lingo išče tudi fiksne omejitve. Omejitev je fiksna, če so vse spremenljivke v omejitvah fiksne. Takšne omejitve Lingo izloči in jih ne prišteje k skupnemu številu omejitev. Polje Nonzeros (Neničelno) prikazuje neničelne koeficiente, ki se pojavijo v nelinearnih spremenljivkah in njihovo skupno število. Polje General Memory used (Količina porabljenega spomina) prikazuje koliko spomina porabi Lingov model. Polje Elapsed runtime (Potrebni izvajalni čas) prikazuje skupen čas, poteben za reševanje modela. Čas reševanje je odvisen tudi od zasedenosti sistema. Podaljša se, če je bolj zaseden in obratno. (Vir: Help v Lingu).

Page 29: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 25

odločanja v poslovnih procesih

Poročilo Skupaj s statusnim oknom, pa se odpre tudi okno s poročilom, ki nam pove, kakšna je optimalna rešitev za model, ki ga v tistem trenutku rešujemo. Iz slike 12 je razvidno, da je za problem, ki smo si ga ogledali malo prej, optimalno, če prizvedejo 200 običajnih kalkulatorjev in 100 hitrih kalkulatorjev, da bo skupni dobiček 3200 denarnih enot. Poleg rešitve, pa v poročilu napiše še dualno vrednost za vsako omejitev, ki pomeni za koliko bi se vrednost dobička povečala, če povečamo atribut za 1 enoto. V tem primeru, v vrstici 2, kaže, da bi se vrednost dobička povečala za 9 denarnih enot, če bi naredili en običajen kalkulator več. V polju Reduced costs pa pove koliko enot bo ostalo na zalogi po izvedbi te naloge (v tem primeru 0). V polju Slack or surplus (primankljaj ali presežek), pa pove koliko je optimalna vrednost oddaljena od tega, da bi bila enakovredna. V našem primeru to pomeni, da je 76,666 ur neizkoriščenih.

Slika 12: Poročilo

Page 30: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 26

odločanja v poslovnih procesih

5.3. LINDO

LINDO (Linear, Interactive and Discrete optimizer) je orodje podjetja LINDO Systems inc., www.lindo.com, za reševanje linearnih, celoštevilčnih in kvadratnih problemov matematičnega programiranja. Možnost njegove uporabe je predvsem na področju gospodarstva, industrije, raziskav, uporaben pa je tudi pri reševanju problemov distribucije izdelkov, mešanja sestavin in razporejanja kadrov. Lastnosti Linda so pravzaprav enake, kot veljajo za Lingo, zato jih ne bomo niti opisovali (preberemo jih lahko nekaj strani nazaj), je pa nekoliko bolj okleščen. Po besedah gospoda Marka Wileya, zaposlenega pri podjetju, s katerim sem stopil v kontakt 29.10.2008, je večinoma sposoben računati iste probleme, vendar nima toliko izboljšav kot Lingo in je, ne glede na velikost in kompleksnost, nekoliko počasnejši. Delo s programom Gre za enostaven program, kakršno je tudi njegovo načelo. Če uporabnik želi narediti nekaj enostavnega, potem naj bo tudi vložen trud za uporabo potrebnih ukazov ravno tako majhen. Zaradi tega načela je pisanje modelov poenostavljeno do te mere, da se ciljno funkcijo in omejitve enostavno napišejo, kot bi jih reševali ročno na papir. Pomembna značilnost Linda je, da je sposoben uvažanja tudi podatkov iz drugih programov, preglednic, baz podatkov ali besedilne datoteke. Tako kot pri Lingu, je tudi tu pisanje modelov takšnoo, kot če bi jih pisali v urejevalniku besedil. Torej je izgled takšen kot bi model pisali ročno. Model potrebuje tri osnovne podatke: ciljno funkcijo, eno ali več omejitev ter eno ali več spremenljivk. Ciljna funkcija predstavlja, kaj se bo z modelom počelo, ali se išče minimum ali maksimum. Po enostavni namestitvi programa na trdi disk, ga zaženemo in prikaže se osnovni zaslon, s pripravljenim praznim »listom«, na katerega pričnemo pisati model. Osnovni zaslon je predstavljen na sliki 13.

Slika 13: Osnovni zaslon

Page 31: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 27

odločanja v poslovnih procesih

Na podoben način kot pri Lingu pišemo model tudi tu. Na istem vzorčnem primeru (LP2), bomo predstavili še uporabo Linda, prikazano na sliki 14. Kot prvo, je opazno, da se komentarji ne obarvajo zeleno in tako so manj vidni, še vedno pa jih naredimo tako, kot pri Lingu, da jih začnemo s klicajem in zaključimo z podpičjem. Pri ciljni funkciji ni potrebno za MAX ali MIN pisati znaka za enačaj. Prav tako ni treba pisati znaka za množenje, uporabljamo samo znak za seštevanje. V praksi izgleda to tako, da namesto denimo 0.5 * hiter, zdaj napišemo 0.5 hiter. Ko pišemo omejitve spremenljivkam, začnemo ta del s ST in zaključimo z END. Nikjer pa ni več potrebno pisati podpičja, da bi zaključili vrstico (razen pri komentarjih).

Slika 14: Predstavitev uporabe Linda

Ko imamo model napisan, kliknemo na Solve . Če je model napisan brez napak, nas program vpraša, ali želimo, da naredi analizo občutljivosti, po odgovoru pa prikaže okno s stanjem reševalca, prikazano na sliki 15.

Slika 15: Stanje reševalca

Page 32: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 28

odločanja v poslovnih procesih

Stanje reševalca nam poda nekaj koristnih informacij o modelu: Status:

Vrne status trenutne rešitve. Možne vrednosti so: Optimal, Feasible, Infeasible, Unbounded.

Iterations Število ponovitev. Inffeasibility Za koliko so kršene omejitve. Objective Trenutna vrednost ciljne funkcije. Best IP Ciljna vrednost najboljše celoštevilčne rešitve (velja za celoštevilčne

modele). IP Bound Teoretična meja ciljne funkcije za celoštevilčne probleme. Branches Število celoštevilčnih spremenljivk, ki jih je celoštevilčni reševalec

razvejal. Elapsed time Čas, ki ga je reševalec potreboval za reševanje. Update interval Na koliko sekund naj se obnovi statusno okno. Interupt solver Prekini reševalca. Reševalec vrne trenutno najboljšo vrednost. Istočasno s statusnim oknom, pa se v ozadnju prikaže poročilo, ki pove, kakšna je optimalna vrednost in kakšna vrednost spremenljivk je optimalna. Pove tudi, za koliko je možno povečati ali zmanjšati spremenljivke, da dobimo še vedno isto končno optimalno rešitev. Prikazano je na sliki 16. Na začetku v vrsticah, običajen in hiter, prikazuje, koliko kalkulatorjev bi bilo potrebno izdelati, da bo dosežena optimalna vrednost. Torej 200 običajnih in 100 hitrih, da bo dobiček 3200 denarnih enot. Rezultat je bil dobljen v drugi ponovitvi. Enake vrednosti kot v Lingu, dobimo tudi v poljih Reduced costs, Dual prices in Slack or surplus. Do tu je poročilo enako Lingovem, spodnji del pa prikaže še nekaj informacij več. Vidimo lahko, za koliko lahko ciljni koeficient spremenimo, ne da bi se spremenile vrednosti neničelnih spremenljivk. Na tem primeru je razvidno, da ne moremo povečati dobička nobene vrste kalkulatorja, ne da bi se spremenila tudi količina izračunanih dnevno proizvedenih hitrih in običajnih kalkulatorjev.

Slika 16: Poročilo

Page 33: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 29

odločanja v poslovnih procesih

5.4. POM-QM

Programsko orodje POM–QM je izdelalo in izdalo podjetje Prentice-Hall, Inc., http://www.prenhall.com/weiss. Namenjeno je za področje proizvodnje, operacijskega managementa in kvantitativnih metod, ved o managementu ali operacijske raziskave. Razvito je bilo z namenom pomagati uporabniku naučiti se in razumeti ta področja. Uporabi se ga lahko za reševanje problemov ali pa preverjanje odgovorov, do katerih smo prišli na roke. Vsebuje tudi veliko število modelov. Značilnosti POM-QM so: Standardizacija Grafični vmesnik je standarden, takšen kot ga najdemo v operacijskm sistemu Windows. Kdor koli je vešč dela s Excelovimi preglednicami, urejevalnikom besedil Word ali paketom za predstavitve v Windows okolj, bo enostavno uporabljal tudi ta program. Standardni grafični vmesnik vključuje po želji nastavljive menije, orodne vrstice, statusno vrstico in help meni. Čeprav program sestoji iz 29 modulov in več kot 60 podmodulov, je prikaz vseh skladen, tako da, ko se uporabnik navadi uporabljati enega, ne bo imel težav z uporabo ostalih modulov. Shranjevanje in nalaganje je enostavno, saj se tudi to opravlja na standarden način, poznan v sistemu Windows. Kot dodatno so datoteke shranjene po modulih, kar olajša iskanje shranjenih datotek. Podatki in rezultati, vključno z grafi, se lahko enostavno kopirajo v druge aplikacije. Fleksibilnost Zaslonske komponente, ki jih uporabnik vidi, in barve si lahko nastavi sam. To je učinkovito pri pregledu podatkov. Uporabnik lahko izbere željen rezultat in si ga natisne, ne da bi moral natisniti vse. Možne so mnoge dodatne možnosti tiskanja. Obstaja tudi več prednosti, ki jih uporabnik lahko izbere v Help meniju, uporabniškem informacijskem meniju. Program se denimo lahko nastavi tako, da samodejno reši problem potem, ko so bili vnešeni podatki. Uporabniško usmerjena oblika Urejevalnik podatkov, ki je v obliki preglednic, omogoča enostaven vnos podatkov in njihovo zelo enostavno urejanje. Ko se podatki vnašajo, se ponudi jasna pomoč na zaslonu, ki pove, kaj je potrebno vnesti v določeno polje, v primeru nepravilnega vnosa podatkov, pa prikaže sporočilo, ki javi in opiše napako. To olajša popravek napake, saj vemo, kaj ni bilo pravilno vnešeno. Enostavno se da spreminjati med dvema metodama reševanja, z namenom primerjave različnih metod in rešitev. V številnih primerih je ta operacija opravljena z enim klikom.

Page 34: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 30

odločanja v poslovnih procesih

Vmesne korake poteka je tudi možno videti na zaslonu, na koncu pa je rešitev obarvana drugače, kot ostali pdatki, kar je pregledneje. Ko POM-QM namestimo na trdi disk in zaženemo porogram, se odpre okno, kot je prikazano na sliki 17.

Slika 17: Glavni grafični vmesnik Delo s programom Ko program odpremo, je potrebno najprej klikniti v menijski vrstici na Module, kot je prikazano na sliki 17. Odpre se vrsta modulov, s katerimi je POM-QM sposoben operirati. Poiščemo željen modul in nanj kliknemo. Sprva je zaslon prazen, vendar je

nato potrebno klikniti ikono za nov »list« . Odvisno od izbire modula, se po kliku na nov »list« odpre novo vnosno okno, kjer nastavljamo nastavitve kot so: število omejitev, spremenljivk in vej ter mnoge druge. Če pa smo izbrali modul, s katerim je možno reševati več različnih problemov, pa se nam po kliku na nov »list« odpre seznam možnosti. Iz tega izberemo tisto vrsto reševanja problema, ki jo potrebujemo za reševanje svojega problema, nato pa se nam odpre že omenjeno vnosno okno. Primer vnosnega okna, v katerega vnesemo število omejitev in število spremenljivk, je prikazan na sliki 18.

Page 35: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 31

odločanja v poslovnih procesih

Slika 18: Vnosno okno za nastavitve Osredotočili se bomo na uporabo 5 modulov in nekaj podmodulov ter jih na kratko opisali. Imenujejo se Linear programming (linearno programiranje), Transportation (transport), Networks (omrežja), Game theory (teorija iger) in Inventory (zaloge).

• Modul za linearno programiranje, omogoča nastavljanje števila omejitev in števila spremenljivk. Nastavimo jih lahko do 90. Določimo tudi, ali iščemo največjo vrednost ali najmanjšo, ter način poimenovanja omejitev in spremenljivk (s črkami, številkami, z imenom).

• Modul za transport ima isto podobo kot za linearno programiranje, samo da imamo namesto nastavljanja omejitev in spremenljivk, izvore in ponore. Prav tako jih lahko nastavimo do 90.

• Modul za omrežja nam daje na volja tri podmodule, vendar pa za okvir te diplomske naloge prideta v poštev dva, Shortest route (najkrajša pot) in Maximal flow (maksimalen pretok). Oba podmodula nastavimo na isti način, obema moramo določiti samo število vej. Oba dovoljujeta nastavitev do 100 vej, s to razliko, da pri podmodulu za najkrajšo pot določimo še, ali je omrežje usmerjeno ali neusmerjeno.

• Modul za teorijo iger omogoča nastavljanje števila strategij v vrstah in stolpcih. Nastavimo lahko do 50 strategij, glede poimenovanja pa je enako, kot pri ostalih.

• Modul za zalogo sestoji iz osmih podmodulov, uporabili pa bomo podmodul Production order quantity model. Pri tem ni potrebno ničesar nastaviti, saj gre za standardiziran obrazec, v katerega vnesemo podatke in dobimo rešitev. Prav tako ni potrebno ničesar nastavljati niti pri ostalih podmodulih, saj so vsi standardizirani obrazci, vsak za svoje področje.

Po kliku na OK za potrditev se odpre tabela prikazana na sliki 19. Na vzorčnem primeru (LP2), bomo pokazali uporabo programa. Podatke vnesemo tako, kot je prikazano spodaj. Torej najprej v prvo vrstico vnesemo ciljno funkcijo, nato pa v ostale vrstice vnesemo linearne neenačbe. S padajočimi meniji določimo še enakost in zgoraj v polju Objective določimo še ali računamo maksimum ali minimum. Ko podatke pravilno

vnesemo, kliknemo na Solve nakar se odpre okno z rešitvijo, prikazano na sliki 20 in, odvisno od modula, pa še nekatera okna, kot je na primer graf, število ponovitev, dualna rešitev ipd.

Page 36: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 32

odločanja v poslovnih procesih

Slika 19: Vnosna tabela V tem primeru smo izbrali modul Integer & Mixed intereger programming, kjer lahko določimo kakšne so spremenljivke. To določimo v celici Variable type, izbiramo pa lahko med celoštevilčnimi, realnimi in za primer, ko rešujemo problem binarnega programiranja.

Slika 20: Poročilo Kot vidimo v poročilu tudi tu dobimo isto rešitev, torej 200 enot običajnih kalkulatorjev (označeno kot x1) in 100 eno hitrih (x2), v skupni vrednosti 3200 €. Vidimo pa tudi, da v tem primeru dobimo tudi rešitev v grafični obliki. POM-QM omogoča tudi izvoz modela v Excel. Da omogočimo to funkcijo, je potrebno namestiti še dodatek. Ko ga namestimo, lahko model shranimo enako kot do sedaj, vendar s to razliko, da namesto, da bi kliknili na File in nato Save as, kliknemo Save as Excel file. Tu lahko določimo, kako se bo nova datoteka imenovala in njeno lokacijo, kam naj se shrani. Po želji pa lahko model shranimo tudi kot dodaten zavihek k že obstoječi Excelovi datoteki. Takoj ko izberemo eno od teh možnosti, se generira nova datoteka in vse, kar moramo storiti, je to, da jo odpremo in z reševalcem rešimo problem in zopet dobimo rešitev.

Page 37: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 33

odločanja v poslovnih procesih

6. Vzorčni primeri uporabe programov (orodij) v gospodarstvu

Teoretični del je potrebno prenesti v prakso, da imamo sploh kaj koristi od naučenega znanja. Programi so naloženi na trdi disk, kako se to izvede, pa je na kratko in enostavno razloženo v prejšnji točki. V tem poglavju bomo pogledali, kako se te programe uporablja na enostavnih vzorčnih primerih iz prakse, najprej pa primer problema zmesi. Ta vrsta problema je prisotna predvsem v kmetijstvu, prehrambeni industriji in industriji, kjer se mešajo različne surovine.

6.1. Problem zmesi

Podjetje, ki se ukvarja s kozmetiko, denimo izdeluje dva posebna tipa krem za telo oziroma za blaženje pekoče kože po prekomernem sončenju, ki vsebujejo bio polnilo A in bio polnilo B. Prva krema vsebuje tri enote bio polnila A in dve enoti bio polnila B, druga pa eno enoto bio polnila A in dve enoti bio polnila B. Prva krema stane 15 €, druga 11 €. Da bi dosegli dober učinek kreme, je potrebno imeti na telesu 11 enot bio polnila A in 14 enot bio polnila B. Koliko tub obeh krem moramo kupiti, da bomo zadovoljili potrebe, in da bo strošek nakupa najmanjši? Rešitev: Za lažjo predstavo podatke prepišemo v tabelo 7:

Polnilo Krema 1 Krema 2 Potrebe A 3 1 11 B 2 2 14 Cena 15 11 Spremenljivke x1 x2

Tabela 7: Vhodni podatki

Spremenljivki x1 in x2 morata biti večji ali enaki nič. Iz tabele in podatkov zgoraj lahko razberemo, da potrebujemo za nakup x1 enot prve kreme in x2 enot druge kreme, 3x1 +x2 enot polnila A in 2x1 + 2x2 enot polnila B. Omejujejo nas potrebe, ki kažejo, da potrebujemo vsaj 11 enot polnila A in vsaj 14 enot polnila B. Da bo strošek nakupa najmanjši, je torej potrebno kupiti za 15x1 + 11x2 € obeh krem. Najprej napišemo linearni program za opisani problem z omejitvami:

1 2

1 2

1 2

0, 0

3 11

2 2 14

≥ ≥

+ ≥

+ ≥

x x

x x

x x

Ciljna funkcija pa je:

1 215 11Min x x= +

Page 38: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 34

odločanja v poslovnih procesih

6.1.1. EXCEL V polja, ki so na sliki 21 obarvana sivo, vpišemo podatke iz primera. Torej v stolpec C potrebne količine za izdelavo prve kreme in njeno ceno, v stolpec D pa potrebne količine za izdelavo druge kreme in njeno ceno. Ko imamo to vpisano, v polje F4, obarvano zeleno, vpišemo prvo linearno formulo tako, da napišemo formulo za množenje in seštevanje polj C4, C8 in D4, D8, v polje F5 pa drugo linearno formulo na isti način. Potrebno je samo še vpisati ciljno funkcijo v polje E6, kot zmnožek in seštevek polj C6, C8 in D6, D8. Odpremo reševalca in najprej določimo celico ciljne funkcije, to je F6, določimo katere celice bo reševalec spreminjal, to sta celici C8 in D8, in mu dodamo omejitve, da torej morata biti polji F4 in F5 manjši ali enaki poljema E4 in E5 pri čemer ne smemo pozabiti, da morata biti vrednosti C8 in D8 večji ali enaki nič. Ker iščemo minimum, označimo še možnost MIN in pritisnemo Solve. V okencu, ki se odpre, izberemo še možnost Sensitivity, da generira poročilo o občutljivostni analizi. Rešitev je prikazana na sliki 21, poročilo pa na sliki 22. Rešitev pravi, da je potrebno kupiti dve enoti prve kreme in pet enot druge kreme v skupni vrednosti 85 €, kar je najcenejši možni nakup.

Slika 21: Prikaz rešitve v Excelu Če pogledamo poročilo v polju Adjustable cells pod kategorijo Allowable increase in Allowable decrease, vidimo, da se lahko cena kreme 1 največ poveča za 18 € oziroma zmanjša za 4 €, cena kreme 2 pa se lahko poveča za 4 € oziroma zmanjša za 6 €, da ohranimo vrednost spremenljivk x1 in x2, to je 2 in 5. Seveda se bo potem spremenila skupna vrednost nakupa. Polje Reduced cost pove, da na telesu ne bo presežka kreme, polje Shadow price pa pomeni za koliko bi se zmanjšala vrednost bio polnila A na telesu, če bi bilo potrebno na telesu imeti eno dozo polnila A manj, kot je predpisano. Enako velja za B.

Slika 22: Poročilo občutljivosti

Page 39: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 35

odločanja v poslovnih procesih

6.1.2. LINGO V Lingu napišemo linearni program na sledeč način: !Problem zmesi;

min =15 * x1 + 11 * x2;

3 * x1 + x2 >= 11;

2 * x1 + 2 * x2 >= 14; nato kliknemo Solve. Ko računalnik opravi z reševanjem, se odpre drugo okno s poročilom, prikazano spodaj: Global optimal solution found.

Objective value: 85.00000

Infeasibilities: 0.000000

Total solver iterations: 2

Variable Value Reduced Cost

X1 2.000000 0.000000

X2 5.000000 0.000000

Row Slack or Surplus Dual Price

1 85.00000 -1.000000

2 0.000000 -2.000000

3 0.000000 -4.500000

Vidimo, da pridemo do iste rešitve, kot pri Excelu, torej dveh enot prve kreme in petih druge, v skupni vrednosti 85 €. V polju Reduced Cost imamo ničle, kar pomeni, da ni presežka polnila na telesu. V polju Slack or Surplus (primankljaj ali presežek) nam vrednosti 0 povedo, da je rešitev takšna, da bomo zadostili potrebam. V polju Dual Price pa za koliko bi se zmanjšala vrednost bio polnila A na telesu (vrstica 2), če bi bilo potrebno na telesu imeti eno dozo polnila A manj, kot je predpisano. Enako velja za B.

6.1.3. LINDO V Lindu je model napisan zelo podobno, kot v Lingu, v ciljni funkciji pa ni potrebno pisati znaka za enačaj (=) in znaka za množenje (*), prikazano spodaj: MIN 15 x1 + 11 x2

ST

3 x1 + x2 >= 11

2 x1 + 2 x2 >= 14

END

Ko imamo model napisan, pritisnemo Solve in program nas vpraša, če želimo, da opravi tudi občutljivostno analizo. To potrdimo in dobimo rešitev, prikazano spodaj:

Page 40: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 36

odločanja v poslovnih procesih

LP OPTIMUM FOUND AT STEP 2

OBJECTIVE FUNCTION VALUE

1) 85.00000

VARIABLE VALUE REDUCED COST

X1 2.000000 0.000000

X2 5.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES

2) 0.000000 -2.000000

3) 0.000000 -4.500000

NO. ITERATIONS= 2

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X1 15.000000 18.000000 4.000000

X2 11.000000 4.000000 6.000000

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 11.000000 10.000000 4.000000

3 14.000000 8.000000 6.666667

Poročilo pove, da je optimalna vrednost prav tako 85 €, potrebno pa je kupiti dve enoti prve kreme in pet enot druge. Prvi del poročila je torej enak kot v Lingu. Spodnji del pa prikazuje še dodatne možnosti, enako kot Excel, torej, da se lahko cena kreme 1 poveča za 18 oziroma zmanjša za štiri in cena kreme 2 poveča za štiri in zmanjša za šest, pa bo še vedno zadoščeno pogojem.

6.1.4. POM-QM Pri POM-QM kliknemo na Module in izberemo Linear programming. Določimo dve omejitvi in dve spremenljivki. Odpre se tabela in vnesemo podatke, kot so prikazani na sliki 23.

Slika 23: Prikaz vnosa podatkov

Page 41: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 37

odločanja v poslovnih procesih

Paziti moramo, da nastavimo znak na večje ali enako, saj računamo minimum. Pod orodno vrstico, v polju Objective, postavimo piko pred minimize, da bo program računal minimum. Ko je vse vneseno, kliknemo Solve in dobimo rezultat, skupaj s poročili, prikazan na sliki 24. Vidimo, da do istega rezultata pridemo tudi s tem programom. Torej, potrebno je kupiti dve enoti prve kreme in pet enot druge kreme v skupni vrednosti 85 €.

Slika 24: Rešitev v POM-QM POM-QM pa poleg rešitve ustvari tudi več spremljajočih oken s koristnimi informacijami. Vidimo, da poleg rešitve zna samodejno narisati graf, kjer lahko tudi izbiramo, katero linearno funkcijo si bomo ogledali. Prikaže nam, kako bi izgledal dualni program. V oknu Ranging pa prav tako prikaže, na katero vrednost se lahko spremeni cena obema kremama, da še vedno zadostuje pogojem. Prav tako pokaže tudi dualne vrednosti, kot vsi programi doslej.

6.2. Proizvodni problem

Podjetje izdeluje dva tipa izdelkov: izdelek 1 in izdelek 2, ki sestojita iz treh vrst surovin, ki jih bomo poimenovali A, B in C. Na zalogi imajo 25 enot surovine A, 21 enot surovine B in 19 enot surovine C. Da izdela eno enoto izdelka 1, je potrebno uporabiti dve enoti surovine A, eno enoto survine B in eno enoto surovine C. Da izdelajo eno enoto izdeleka 2, pa je potrebno imeti dve enoti surovine A, dve enoti surovine B in tri enote suroivne C. Ko sta izdelek 1 in izdelek 2 proizvedena, se na trgu izdelek 1 proda za šest evrov, izdelek 2 pa za 5 evrov. Kako naj bo organizirana proizvodnja, da bo dobiček od prodaje teh izdelkov največji? Rešitev: Za lažjo predstavo je najbolje, če podatke iz teksta razberemo, jih pravilno interpretiramo in damo v preglednico, prikazano v tabeli 8.

Page 42: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 38

odločanja v poslovnih procesih

Proizvodi Izdelek 1 Izdelek 2

Zaloga surovin

A 2 2 25 B 1 2 21

Surovine C 1 3 19 Cene 6 5 Proizvodne količine x1 x2

Tabela 8: Podatki, prenešeni iz teksta

Spremenljivki x1 in x2, vrednosti, ki ju iščemo, torej ne moreta biti negativni, saj predstavljata proizvodne količine (ki ne morejo biti negativne). Za proizvodnjo x1 enot izdelka 1 in x2 enot izdelkov 2 je potrebno 2x1 + 2x2 enot surovine A, x1 + 2x2 enot surovine B in x1 + 3x2 enot surovine C. Porabo surovin omejuje njihova zaloga, torej ni mogoče porabiti več kot 25 enot surovine A, 21 enot surovine B in 19 enot surovine C. Dobiček od prodaje x1 in x2 enot obeh izdelkov pa je 6x1 + 5x2, ki mora biti maksimalen. Linearni program ima sledečo obliko:

1 2

1 2

1 2

1 2

0, 0

2 2 25

2 21

3 19

x x

x x

x x

x x

≥ ≥

+ ≤

+ ≤

+ ≤

Ciljna funkcija pa izgleda tako:

1 26 5Max x x= +

Ta vrsta problema, ki ga rešujemo na tem mestu, se imenuje proizvodni problem. Podatke spet vnesemo v vse reševalce in dobimo rezultat. Na slikah, ki sledijo, si lahko ogledate rešitve, izdelane s programskimi orodji. Za razliko od primera 1, kjer se je iskalo minimum, se tokrat išče maksimum. Torej je potrebno biti pozoren pri pisanju omejitev. Zdaj se, namesto znaka večje ali enako, piše manjše ali enako. V primeru napačnega znaka, programi rešitve ne bodo pravilno izračunali!

6.2.1. EXCEL V Excelu v del tabele, obarvan sivo, vnesemo podatke iz modela. Nato v celice, obarvane zeleno, vpišemo linearne formule. Torej, v prvo celico vpišemo formulo za množenje in seštevanje polj D5, D10 in E5, E10. Po istem principu ravnamo pri ostalih dveh celicah. Sledi ciljna funkcija, ki jo vpišemo v celico, obarvano rumeno. Formula je znova za seštevanje in množenje celic D8, D10 in E8, E10, to so cene x proizvodne količine. Nato v reševalcu določimo celico ciljne funkcije in spreminjajoče se celice, obarvane modro, ter omejitve. Torej, celice G5, 6, 7 morajo biti manjše ali enake celicam F5, 6, 7, celice D10 in E10 pa večje ali enake nič. Izberemo še možnost Max, ker računano maksimum, in pritisnemo Solve. Nato izberemo iz ponujenih možnosti ustvarjanje občutljivostnega poročila. Dobimo rešitev, prikazano na sliki 25, in poročilo, prikazano na sliki 26.

Page 43: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 39

odločanja v poslovnih procesih

Slika 25: Prikaz rešitve v Excelu Vidimo torej, da je potrebno prodati 13 izdelkov 1 (številka je cela zato, ker 12,5 izdelkov ni mogoče izdelati) ni pa potrebno prodati nobenega drugega. Vrednost maksimalnega dobička bo tako znašala 75 €. V poročilu v polju Adjustable cells vidimo, da se cene prvega izdelka ne sme povišati, če želimo zadostiti pogojem, lahko pa se za en evro zniža. V primeru drugega izdelka pa se cena lahko poveča za en evro, ne sme pa se zmanjšati. V polju Shadow price nam prikaže, da v primeru povečanja zaloge surovine A, za eno enoto, bo podjetje povečalo dobiček za 3 €.

Slika 26: Poročilo občutljivosti

6.2.2. LINGO V Lingu model napišemo tako, kot je prikazano spodaj: !Proizvodni problem;

max = 6 * x1 + 5 * x2;

!Omejitve;

2 * x1 + 2 * x2 <= 25; !Zaloga;

x1 + 2 * x2 <= 21; !Zaloga;

x1 + 3 * x2 <= 19; !Zaloga;

Page 44: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 40

odločanja v poslovnih procesih

Ko imamo model napisan, pritisnemo Solve in dobimo rezultat, skupaj z občutljivostno analizo, prikazano spodaj: Global optimal solution found.

Objective value: 75.00000

Infeasibilities: 0.000000

Total solver iterations: 1

Variable Value Reduced Cost

X1 12.50000 0.000000

X2 0.000000 1.000000

Row Slack or Surplus Dual Price

1 75.00000 1.000000

2 0.000000 3.000000

3 8.500000 0.000000

4 6.500000 0.000000 Vidimo, da dobimo isti rezultat, torej, da je potrebno izdelati in prodati 13 prvih izdelkov in nobenga drugega, dobiček pa bo znašal 75 €. V polju Reduced Cost vidimo, da se vrednost ciljne funkcije ne poveča, če se poveča vrednost x1, če pa se poveča spremenljivka x2, se povečajo skupni stroški za en evro. Polje Slack or Surplus prikazuje, da bo potem, ko bo podjetje izdelalo 13 izdelkov, ostalo na zalogi nič kosov surovine A, 8,5 kosov surovine B in 6,5 kosov surovine C, saj sta za en izdelek 1 potrebni dve enoti surovine A (2 * 12,5 =25, 25 enot potrebujemo – 25 enot na zalogi = 0 enot na zalogi), ena enota surovine B (21 na zalogi – 12,5 potrebujemo = 8,5 ostane na zalogi) in ena enota surovine C (19 na zalogi -12,5 potrebujemo = 6,5 na zalogi). Polje Dual price prikazuje, da v primeru povečanja zaloge surovine A, bo dobiček večji za 3 €.

6.2.3. LINDO Model napisan v Lindu je zelo podoben tistemo v Lingu, izgleda pa tako: MAX 6 x1 + 5 x2

ST

2 x1 + 2 x2 <= 25

x1 + 2 x2 <= 21

x1 + 3 x2 <= 19

END

Ko imamo model napisan, kliknemo Solve in program nas vpraša, ali želimo, da izdela tudu občutljivostno analizo. To potrdimo in dobimo rešitev, prikazano spodaj: LP OPTIMUM FOUND AT STEP 1

OBJECTIVE FUNCTION VALUE

1) 75.00000

Page 45: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 41

odločanja v poslovnih procesih

VARIABLE VALUE REDUCED COST

X1 12.500000 0.000000

X2 0.000000 1.000000

ROW SLACK OR SURPLUS DUAL PRICES

2) 0.000000 3.000000

3) 8.500000 0.000000

4) 6.500000 0.000000

NO. ITERATIONS= 1

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X1 6.000000 INFINITY 1.000000

X2 5.000000 1.000000 INFINITY

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 25.000000 13.000000 25.000000

3 21.000000 INFINITY 8.500000

4 19.000000 INFINITY 6.500000

Vidimo, da je prvi del isti kot v Lingu in pravi, da je potrebno izdelati 13 izdelkov 1 in dobiček od prodaje bo 75 €. Iste rezultate dobimo tudi za polja Reduced cost, Slack or surplus in Dual value. V drugem delu pa imamo prikazano isto kot v Excelu, torej, da se cena prvega izdelka ne sme povečati, medtem ko se lahko zniža za en evro. Cena drugega izdelka pa se, ravno obratno, lahko poveča za en evro, ne sme pa se zmanjšati.

6.2.4. POM-QM Pri tem problemu prav tako, kot v prejšnjem, v meniju kliknemo na Module in izberemo Linear programing. Odpremo nov list, določimo tri omejitve in dve spremenljivki ter kliknemo OK. Tokrat iščemo maksimum, zato označimo Maximize. V tabelo vnesemo podatke tako, kot je prikazano na sliki 27.

Slika 27: Prikaz vnosa podatkov

Page 46: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 42

odločanja v poslovnih procesih

Pri omejitvah pravilno postavimo znake za enačaje in v polju Objective označimo Maximize. Ko so podatki vnešeni, kliknemo Solve in prikaže se rešitev, skupaj s poročili prikazana na sliki 28. Prav tako, kot pri prejšnjih programih, tudi ta izračuna enak rezultat. Torej, za dosego optimalne vrednosti, to je maksimalen dobiček, je potrebno prodati 13 enot prvega izdelka in nobenega drugega v vrednosti 75 €. Program je izrisal tudi graf, tako da lahko vidimo rešitev predstavljeno tudi grafično. V oknu Dual je prikazan dualni problem (kar je transponirana matrika primarnega problema). V oknu Ranging je prikazano, na koliko se lahko cena izdelkoma dvigne ali spusti, da zadostimo pogojem. Torej se izdelek 1 lahko poceni na vrednost pet evrov, podražiti pa se ne sme (infinity), medtem ko se izdelek 2 ne sme poceniti, lahko pa se podraži za en evro, na vrednost šest evrov. Prav tako prikaže v tem oknu vrednosti, kot jih prejšnji programi, to so zmanjšana vrednost, dualna vrednost in stanje zaloge po opravljenem delu (polje Slack/Surplus).

Slika 28: Rezultat v POM-QM Tretja vrsta problema, ki ga bomo opisali, se imenuje transportni problem.

6.3. Transportni problem

Blago dobivamo od dveh dobaviteljev, ki ju poimenujemo dobavitelj A in dobavitelj B. To blago naročata dve stranki: S1 in S2. Dobavitelj A ima zmogljivost 50 enot, dobavitelj B pa 45 enot blaga. To pomeni, da lahko v določenem obdobju od njiju dobimo skupno 95 enot blaga. Blago mora biti seveda pravočasno dostavljeno do strank tako, da dobi stranka S1 30 enot, stranka S2 pa 65 enot. Prevoz ene enote blaga od dobavitelja A do stranke S1 stane 25 €, do stranke S2 pa 28 €. Prevoz ene enote blaga od dobavitelja B do stranke S1 stane 19 €, do stranke S2 pa 26 €. Kako naj se usmeri prevoz blaga od dobaviteljev do strank, da bodo stroški najmanjši?

Page 47: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 43

odločanja v poslovnih procesih

Rešitev: Najbolje je podatke najprej urediti v tabelo, tako da so najbolj pregledni in enostavni za nadaljno uporabo. Prikazani so v tabeli 9, na sliki 29 pa je prikazana struktura transportnih poti.

A

S2B

S1c1, x1

c2, x2

c2, x3

c4, x4

Tabela 9: Podatki, prenešeni iz teksta Slika 29: Prikaz transportnih poti Tako lahko iz tabele enostavneje in bolj pregledno razberemo podatke, potrebne za enačbe in za nadaljno delo. Potrebno je določiti vrednost nenegativnih spremenljivk x1, x2, x3, x4, ki za izvore zadovoljujejo enačbe:

1 2

3 4

50

45

x x

x x

+ =

+ =

za izhodišča pa enačbe:

1 3

2 4

30

65

x x

x x

+ =

+ =

tako, da ima ciljna funkcija:

1 1 2 2 3 3 4 4S c x c x c x c x= + + +

minimum. Vrednosti iz tabele 8 vnesemo v ciljno funkcijo:

1 2 3 425 28 19 26= + + +S x x x x

6.3.1. EXCEL V Excel vnesemo, kot je vidno na sliki 30, v siva polja vrednosti iz teksta, torej cene prevozov. Nato v celice, označene zeleno, vpišemo linearne funkcije. Na primer v celico H6 prvo formulo, ki je zapisana zgoraj, to je seštevek polj C11 in D11. Po istem principu vnesemo linearne funkcije v ostale tri zelene celice. Nato potrebujemo še ciljno funkcijo,

Stranke S1 S2

Kapacitete tovarn

A

x1

c1=25

x2

c2=28 50

Dobavitelj B

x3

c3=19

x4

c4=26 45

Potrebe 30 65

Page 48: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 44

odločanja v poslovnih procesih

ki jo vpišemo v celico, obaravano rumeno; to je zmnožek in seštevek cen prevozov in spremenljivk. Torej prva cena krat prva spremenljivka plus druga itd. do četrte. Nato odpremo reševalca in mu določimo, katera celica je ciljna, označimo, da računamo minimum, nato določimo celice, ki se bodo spreminjale (to so celice C11 do F11). Sledi dodajanje omejitev: določimo, da morajo biti vrednosti spreminjajočih celic večje ali enake nič, celice, obarvane zeleno, pa morajo biti enake kapacitetam in potrebam, na primer celica H6 enaka F6. Kliknemo Solve in dobimo rezultat. Rešitev pravi, da pri najcenejšem prevozu blaga, ki znaša 2360 €, usmerjamo blago k uporabnikom tako, kot je grafično prikazano na sliki 31.

Slika 30: Rešitev v Excelu

A

S2

B

S1 x1 = 0

x2 = 50

x3 = 30

x4 = 15

Slika 31: Prikaz transportnih poti z rešitvijo

6.3.2. LINGO V Llingu model napišemo tako, kot je prikazano spodaj, najprej vpišemo ciljno funkcijo, nato pa napisal še ostale omejitve: !Transportni problem;

Min = 25 * x1 + 28 * x2 + 19 * x3 + 26 * x4;

!Omejitve;

x1 + x2 = 50;

x3 + x4 = 45;

x1 + x3 = 30;

x2 + x4 = 65;

Ko imamo model napisan, pritisnemo Solve in dobimo naslednjo rešitev:

Od A k S1 0 enot (relacija A do P je neizkoriščena)

Od A k S2 50 enot Od B k S1 30 enot Od B k S2 15 enot

Page 49: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 45

odločanja v poslovnih procesih

Global optimal solution found.

Objective value: 2360.000

Infeasibilities: 0.000000

Total solver iterations: 0

Variable Value Reduced Cost

X1 0.000000 4.000000

X2 50.00000 0.000000

X3 30.00000 0.000000

X4 15.00000 0.000000

Row Slack or Surplus Dual Price

1 2360.000 -1.000000

2 0.000000 -28.00000

3 0.000000 -26.00000

4 0.000000 7.000000

5 0.000000 0.000000

Tudi Lingo pride do enake rešitve kot Excel, torej, najcenejša vrednost prevoza je 2360 evrov, transport blaga pa potuje tako: Od dobavitelja A k stranki S1 0 enot Od dobavitelja A k stranki S2 50 enot Od dobavitelja B k stranki S1 30 enot Od dobavitelja B k stranki S2 15 enot V polju Slack or Surplus vidimo ničle, kar pomeni, da smo zadostili pogojem.

6.3.3. LINDO Lindov zapis programa je nekoliko poenostavljen v primerjavi z Lingovim, saj ne potrebuje vpisovanja znaka za enačaj (=) niti znaka za množenje (*). Zapis pa izgleda tako: MIN 25 x1 + 28 x2 + 19 x3 + 26 x4 ST x1 + x2 = 50 x3 + x4 = 45 x1 + x3 = 30 x2 + x4 = 65 END Kliknemo Solve, potrdimo na vprašanje, če želimo narediti analizo občutljivosti in dobimo poročilo, prikazano spodaj:

Page 50: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 46

odločanja v poslovnih procesih

LP OPTIMUM FOUND AT STEP 0

OBJECTIVE FUNCTION VALUE

1) 2360.000

VARIABLE VALUE REDUCED COST

X1 0.000000 4.000000

X2 50.000000 0.000000

X3 30.000000 0.000000

X4 15.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES

2) 0.000000 -2.000000

3) 0.000000 0.000000

4) 0.000000 -19.000000

5) 0.000000 -26.000000

NO. ITERATIONS= 0

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X1 25.000000 INFINITY 4.000000

X2 28.000000 4.000000 INFINITY

X3 19.000000 4.000000 INFINITY

X4 26.000000 INFINITY 4.000000

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 50.000000 0.000000 0.000000

3 45.000000 0.000000 0.000000

4 30.000000 0.000000 0.000000

5 65.000000 0.000000 0.000000

Spet lahko vidimo, da je zgornji del poročila enak tistemu v Lingu, spodnji pa ima dodano še, za koliko se lahko spremenijo vrednosti (cene) prevozov. Prevoz od dobavitelja A do stranke S1 se lahko poceni za 4 € na 21 €, ne sme pa se podražiti, prevoz od dobavitelja A do S2 se lahko podraži za štiri evre na 32 €, ne sme pa se poceniti, prevoz od B do S1 se prav tako lahko podraži za 4 € na 23 €, ne sme pa se poceniti ter prevoz od B do S2 se ne sme podražiti, lahko pa se poceni za 4 € na 22 €.

6.3.4. POM-QM Pri POM-QM moramo spet najprej določiti, s katerim modulom bomo delali. V meniju kliknemo na Module in nato izberemo Transportation. Odpremo novo delovno okolje.

Page 51: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 47

odločanja v poslovnih procesih

Program nas tokrat vpraša, koliko izvorov (dobavitelji) in ponorov (stranke) želimo imeti v novem delovnem okolju. V tem primeru izberemo dva izvora in dva ponora ter kliknemo OK. Lahko ju tudi poimenujemo po svoji želji. Odpre se nova delovna tabela prikazana na sliki 32. Takoj vidimo, da lahko podatke enostavno vnesemo, saj je že vse pripravljeno in označeno, kateri kam spada. Podatke vnesemo praktično enako kot smo jih, na sliki 30, v Excelu.

Slika 32: Prikaz vnosa podatkov Tabela je pripravljena tudi za vnos podatkov o potrebi in zmogljivostih. Vnesemo podatke v pravem vrstnem redu in nastavimo, da iščemo minimum, v polju Starting method, pa lahko pustimo, kot je že prednastavljeno na Any starting method. Ko imamo vse vnešeno in nastavljeno, kliknemo Solve in dobimo rešitev, prikazano na sliki 33:

Slika 33: Prikaz rešitve in stroškov dobave Program tudi v tem primeru izračuna isto optimalno vrednost, kot ostali. Torej najnižja vrednost prevoza je 2360 €, stroški prevoza pa so: Od dobavitelja A k stranki S1 0 enot Od dobavitelja A k stranki S2 50 enot Od dobavitelja B k stranki S1 30 enot Od dobavitelja B k stranki S2 15 enot

Page 52: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 48

odločanja v poslovnih procesih

POM-QM pa ima možnost, da prikaže tudi stroške posamezne enote ene transportne poti ter skupne stroške ene transportne poti, kar lahko vidimo v oknu Shiping list in oknu Shipments with costs. Torej, vzemimo primer poti od Dobavitelja A do stranke S2, kjer je potrebno prepeljati 50 enot, po ceni 28 €, in so skupni stroški te poti 1400 €. Na isti način velja za ostale.

6.4. Problem maksimalnega pretoka

Problem maksimalnega pretoka se lahko modelira z mrežnim modelom, kjer ena veja predstavlja zmogljivost prenosa, ki jo je sposobna prenesti. Kadar se v pravi situaciji srečujemo s to težavo, je večinoma želja managerja maksimalen pretok od začetne točke (imenovanega izvora) do zadnje točke (imenovan ponor). Primer: Podjetje se ukvarja z distribucijo plina. Od rafinerije do končnega cilja gre plin skozi sedem vozlišč (upoštevaje, da sta prvo in zadnje vozlišče izvor in ponor). Vse veje gredo samo v eno smer, torej po istem plinovodu ne more iti plin nazaj v drugo smer, premore pa 12 takšnih vej. Vsaka veja ima svoje omejitve, torej koliko plina v 1000 m3 je sposobna pretočiti na uro. Razporeditev vej, skupaj z omejitvami, je prikazana na sliki 34, kjer vsaka točka predstavlja vozlišče, usmerjena puščica kaže, v katero smer teče plin, številka nad posamezno vejo pa prikazuje pretok plina v 1000 m3 na uro. Omejitve, napisane nad puščicami, so za lažjo in preglednejšo predstavo podane še v tabeli 10:

1

3

2

6

5

4

7

15

19

8

4

11

6

62

11

76

5

Slika 34: Pretok skozi mrežo Veje 1,2 1,3 2,3 2,4 2,5 3,5 3,6 4,5 4,7 5,7 6,5 6,7 Zmogljivosti 15 19 5 8 4 6 11 2 6 11 6 7

Tabela 10: Zmogljivosti vej

Rešitev: Plin torej teče od točke 1, izvora, do točke 7, ponora. Želimo, da v tej mreži vej teče tako, da je njegov pretok maksimalen. Označimo matematično pretok plina skozi posamezno vejo s spremenljivkami. To so: 12 13 23 24 25 35 36 45 47 57 65 67, , , , , , , , , , ,x x x x x x x x x x x x

Page 53: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 49

odločanja v poslovnih procesih

Prvi indeks pri posamezni spremenljivki pomeni začetno vozlišče, drugi pa, v katerem vozlišču se ta veja konča. Poudariti je potrebno tudi, da te spremenljivke ne morejo biti negativne, saj tok ne more biti negativen. Vsaka spremenljivka je hkrati tudi zgornja meja možnega pretoka posamezne veje. Model linearnega programa pa ima naslednjo obliko:

Tok skozi mrežo je možen takrat, če za vsako vozlišče velja pogoj o ohranitvi toka:

Tok v vozlišče i = tok iz vozlišča i Za posamezna vozlišča pa veljajo naslednje enačbe:

Za vozlišče 2: 12 23 24 25x x x x= + +

Za vozlišče 3: 13 23 35 36x x x x+ = +

Za vozlišče 4: 24 45 47x x x= +

Za vozlišče 5: 57 25 36 45 65x x x x x= + + +

Za vozlišče 6: 36 65 67x x x= +

Te enačbe predstavljajo omejitve tokov skozi posamezna vozlišča. Količina plina od izvora 1 mora biti enaka količini, ki priteče v točko 7 v ponor. Enačba torej izgleda tako:

0 12 13 47 57 67x x x x x x= + = + +

Potrebno je izračunati vrednost spremenljivk glede na zgoraj podane pogoje, pretok pa mora biti maksimalen. Ciljna funkcija ima torej naslednjo obliko:

max z = max x12 + x13 Za reševanje tega problema smo se odločili za POM-QM, zato, ker ima ta že vgrajen modul, in ker je upravljanje z njim enostavno. V menijski vrstici kliknemo na Module in iz ponujenih modulov izberemo Networks. Odpreti moramo novo delovno okolje, da lahko nadaljujemo z delom. Kliknemo na ikono za novo delovno okolje in odpre se manjši meni s tremi ponujenimi možnostmi. Izberemo zadnjo, to je Maximal Flow. Program nam ponudi na izbiro, koliko vej ima naša mreža, določimo 12 in izbiro potrdimo. Še prej lahko veje tudi po želji preimenujemo. Odpre se nam novo delovno okolje s tabelo, pripravljeno na vnos podatkov. Začnemo pri prvi veji.

12

13

23

24

25

35

0 15

0 19

0 5

0 8

0 4

0 6

x

x

x

x

x

x

≤ ≤

≤ ≤

≤ ≤

≤ ≤

≤ ≤

≤ ≤

36

45

47

57

65

67

0 11

0 2

0 6

0 11

0 6

0 7

x

x

x

x

x

x

≤ ≤

≤ ≤

≤ ≤

≤ ≤

≤ ≤

≤ ≤

Page 54: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 50

odločanja v poslovnih procesih

V prvem okvirčku določimo, v katerem vozlišču se veja začne, v drugem, v katerem se konča, v tretjega pa vpišemo vrednost posamezne veje. Torej na primer za prvo vejo, x12, vnos izgleda tako: 1, 2 in vrednost 15. Za ostale veje se naredi enako. Nad tabelo še določimo, v katerem vozlišču je izvor (Source) in v katerem je ponor (Sink). Ko imamo vse vnešeno, kliknemo Solve in program izračuna rešitev, prikazano na sliki 35. Izračuna, da je maksimalen pretok 24, kar pomeni 24000 m3 plina, vrednost posameznih spremenljivk (v 1000 m3) pa je podana v tabeli 11: Veja X12 X13 X23 X24 X25 X35 X36 X45 X47 X57 X65 X67 Kapaciteta 15 19 5 8 4 6 11 2 6 11 6 7

Rešitev Veja X12 X13 X23 X24 X25 X35 X36 X45 X47 X57 X65 X67 Rešitev 11 13 4 7 0 6 11 1 6 11 4 7

Tabela 11: Prikaz rešitve

Slika 35: Maksimalen pretok Poleg rešitve pa prikaže tudi ponovitve, torej pretok po vejah in njihov seštevek. Če pogledamo to rešitev grafično, na sliki 34, začnemo pri vozlišču 1 in gledamo, katera od obeh vej ima največji pretok. To je do vozlišča 3 s pretokom 19. Do naslednjega vozlišča gremo po istem principu. Torej, naslednje vozlišče z največjim pretokom, ki izhaja iz vozlišča 3, je vozlišče 6 s pretokom 11. Od vozlišča 6 do naslednjega, je s pretokom 7 največji pretok do vozlišča 7. Ko smo ugotovili verigo (tako temu pravimo), pogledamo, katera vrednost je v tej verigi najnižja. To je vrednost 7, med vozliščema 6 in 7 (prikazano na sliki 30 v spodnjem oknu v prvi vrstici). To vejo pobrišemo in ostalim vejam na tej verigi zmanjšamo vrednost za 7. Spet gledamo vozlišče 1 in pogledamo, katera veja ima najmočnejši pretok. Tokrat je to veja proti vozlišču 2 s pretokom 15 (saj je veja proti točki 3 zmanjšana za 7 na vrednost 12), naslednja najpretočnejša veja iz vozlišča 2 naprej pa je veja proti vozlišču 4 s pretokom 8. Iz vozlišča 4 gre najpretočnejša veja proti

Page 55: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 51

odločanja v poslovnih procesih

končnem vozlišču 7 s pretokom 6. Spet smo dobili novo vejo in pogledamo, katera veja od teh ima najnižji pretok in jo izločimo. To je veja od vozlišča 4 do 7 z vrednostjo 6. To vejo izbrišemo in za to vrednost znižamo pretok vsem ostalim na tej verigi. Če gremo na ta način do konca, dokler ne zmanjka vej, dobimo rešitev. Ko seštejemo veje, ki smo jih zbrisali, dobimo vrednost 24.

6.5. Problem najkrajše poti

Problem najkrajše poti lahko definiramo kot iskanje poti med dvema točkama tako, da je vsota vrednosti poti minimalna. To je lahko na primer iskanje najkrajše poti med dvema krajema na avtomobilski karti, kjer posamezne točke predstavljajo kraje skozi katere moramo peljati, da pridemo do cilja, vrednosti pa predstavljajo dolžine v kilometrih od enega do drugega vmesnega kraja. Primer: Podjetje se ukvarja z distribucijo električne energije. Potrebno jo je dobaviti od elektrarne E (vozlišče 1) do tovarne T (vozlišče 6), vmesne postaje pa so vozlišča od 2 do 5. Distribucija pa ni možna med vsemi vozlišči. Ni mogoča med vozliščema 3 in 4, prav tako pa tudi ne med 4 in 5. Vrednosti med posameznimi vozlišči predstavljajo razdaljo v kilometrih. Podjetje želi transportirati elektriko pa najkrajši možni razdalji, zato mora poiskati najkrajšo pot, ki povezuje vozlišči 1 in 6. Na sliki 36 je prikazana skica mreže:

1

5

4

3

2

6

6

5

3

4

1

2

3

Slika 36: Mrežni model Za reševanje problema najkrajše poti obstaja več algoritmov. To so Dijkstra algoritem, Bellman-Ford algoritem, Floyd-Warshall algoritem, Johnsonov algoritem in še nekateri drugi. (Čižman, 2004) Če so vse dolžine vej nenegativne, lahko za izračun minimalne poti uporabimo metodo, poznano kot Dijkstra algoritem, ki ga je leta 1959 razvil danski znanstvenik Edsger Dijkstra. (Wikipedia, 14.10.2008) Potek dela z Dijkstra algoritmom: Začetno vozlišče 1 najprej označimo s stalno oznako 0, nato pa z začasno oznako i označimo vsako vozlišče i, ki je z enojno vejo povezano z vozliščem 1. Ta začasna oznaka je enaka dolžini veje, ki povezuje vozlišči 1 in i. Vsem drugim damo začasno oznako neskončno (∞ ). Ko to naredimo, izberemo vozlišče z najmanjšo začasno oznako in mu dodelimo trajno oznako. Vozlišču j, ki ima trenutno začasno oznako in je

Page 56: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 52

odločanja v poslovnih procesih

na vozlišče i povezano z vejo, nadomestimo začasno oznako. Njegova nova začasna oznaka predstavlja dolžino najkrajše poti iz vozlišča 1 v vozlišče j, ki pelje skozi k vozlišča, ki so najbližja vozlišču 1. Nato postavimo najmanjšo začasno oznako kot trajno. Vozlišče z novo trajno oznako je (k+1) – to je najbližje vozlišče vozlišču 1. Ta postopek je potrebno nadaljevati, dokler nimajo vsa vozlišča trajne oznake. Na primeru iz slike 36 poglejmo, kako to izgleda v praksi: Od vozlišča 1 do 6 iščemo najkrajšo pot, trajne oznake pa označujmo z *. Na začetek postavimo 0 in pripišemo *, kar predstavlja trajno oznako, hkrati pa pomeni, da iz vozlišča 1 do vozlišča 1 ne naredimo nič poti, saj smo že v njem. Iz vozlišča 1 gremo lahko v vozlišči 2 in 3, zato naprej napišemo števili 6 in 5 (razdalje), ostalim vozliščem pa

dodelimo neskončno: 0 ,6,5, , ,∗ ∞ ∞ ∞ .

Vozlišče 3 ima zdaj najmanjšo oznako, zato mu dodelimo trajno oznako *, in dobimo:

0 ,6,5 , , ,∗ ∗ ∞ ∞ ∞

Vemo, da je vozlišču 3 najbljižje vozlišče 1. Nato je potrebno izračunati nove začasne oznake vozlišč, ki so z vozliščem 3 povezana z enojno vejo. Iz slike lahko ugotovimo, da je to vozlišče 5. Da iz vozlišča 1 pridemo do vozlišča 5, je potrebno iti skozi vozlišče 3. Poti se seštevajo in torej je nova začasna oznaka vozlišča 5 takšna:

{ }5 min ,5 4 9= ∞ + = . Tako smo dobili novo začasno oznako vozlišča 5, vozlišče 2 pa

je postalo trajno, saj je novo najmanjše:

0 ,6 ,5 , ,9,∗ ∗ ∗ ∞ ∞

Vozlišči 4 in 5 sta povezani z novim trajnim vozliščem 2, zato jima je potrebno spreme-niti začasne oznake. Za vozlišče 4 dobimo začasno oznako tako: { }4 min ,6 3 9= ∞ + = ,

za vozlišče 5 pa { }5 min 9,6 1 7= + = . Iz tega sledi, da je vozlišče 5 najbližje in mu

dodelimo trajno oznako. Tako dobimo nove oznake:

0 ,6 ,5 ,9,7 ,∗ ∗ ∗ ∗ ∞

Ker je zdaj samo vozlišče 6 povezano z vozliščem 5, je potrebno spremeniti še oznako vozlišča 6. Dobimo jo tako: { }6 min ,7 3 10= ∞ + = . Vozlišče 4 postane novo vozlišče z

najmanjšo vrednostjo in jo označimo kot trajno. Vemo torej, da je vozlišče 4 četrto najbližje vozlišču 1. Zdaj imamo nove oznake:

0 ,6 ,5 ,9 ,7 ,10∗ ∗ ∗ ∗ ∗

Če pogledamo povezavo vozlišča 4 in 6, vidimo, da je začasna oznaka 10 boljša, saj je

{ }6 min 10,9 2 11= + = daljša, zato označimo vozilšče 6 kot trajno:

Page 57: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 53

odločanja v poslovnih procesih

0 ,6 ,5 ,9 ,7 ,10∗ ∗ ∗ ∗ ∗ ∗

Torej lahko poiščemo najkrajšo pot med vozliščema 1 in 6. Razlika med trajnima oznakama vozlišč 5 in 6 je tri torej dolžina veje (5, 6), zato zdaj gledamo iz vozlišča 5. Razlika med vozliščema 5 in 2 je ena, dolžina veje (2, 5). Prestavimo se v vozlišče 2. Razlika od vozlišča 2 do 1 je 6, torej dolžina veje (1, 2). To pomeni, da je najkrajša pot iz vozlišča 1 v 6 skozi vozlišča 1-2-5-6, v skupni dolžini 10 km. Če bi šli po poti 1-2-4-6, bi bila dolžina 11 km, po poti 1-3-5-6 pa 12 km. Tako pridemo do rezultata ročno, pokazali pa bomo še, kako se do tega rezultata pride s pomočjo programa POM-QM. Kliknemo na Module in izberemo modul Networks. Nato kliknemo na »Nov list« in izberemo Shortest route. Prikaže se nam vnosno okno, kjer določimo, koliko vej ima naša mreža. Določimo, da jih ima sedem, po želji pa veje in ta problem še posebej poimenujemo in nato potrdimo. Odpre sa nam prazna tabela, v katero bomo vnesli podatke, prikazana na sliki 37.

Slika 37: Prikaz vnosa podatkov Za vnašanje imamo na voljo tri stolpce. V prvem določimo, kje se veja začne, v drugem, kje se konča, v tretjem pa določimo vrednost te veje, torej dolžino. Podatke vnesemo v tabelo, nato v polju Network type označimo directed, desno od te možnosti, pa še določimo, v katerem vozlišču je začetek (Origin) in cilj (Destination); torej je vozlišče 1 začetek in vozlišče 6 konec. Ko imamo vse vnešeno, kliknemo na Solve, in dobimo rešitev, prikazano na sliki 38. Prva tabela prikazuje, kako poteka najkrajša pot, torej 1-2-5-6 v skupni dolžini 10 kilometrov, spodnja pa prikazuje, koliko kilometrov je od enega vozlišča do drugega. Ker je mreža usmerjena, torej ni možno iti nazaj. Če na primer želimo priti iz vozlišča 3 v vozlišče 6, je potrebno narediti 7 km.

Page 58: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 54

odločanja v poslovnih procesih

Slika 38: Rešitev problema najkrajše poti v POM-QM

6.6. Problem antagonističnih iger

Antagonistične igre spadajo v področje teorije iger. To lahko sicer razdelimo na dva dela. Prvi so igre na srečo oziroma hazardne igre. To so igre, kjer je izid slučajen in igralec s svojimi sposobnostmi ne more vplivati na končni rezultat. Drugi del so strateške igre. Gre za igre, pri katerih lahko igralec s svojimi sposobnostmi vpliva na končni rezultat. Teorija iger je uporabna na več področjih. Ne samo, da je pravšnja za namen zabave, na primer pri igrah s kartami, ampak tudi za namene raziskav. Predvsem je uporabna pri raziskavah konfliktnih situacij, posledic nasprotnih interesov udeležencev, ko vsak želi zase čim večjo korist. Tudi v gospodarstvu, kjer je udeleženo veliko oseb in organizacij z različnimi in nasprotujočimi si interesi. Teorija iger, za razliko od ostalih optimizacijskih metod (pri katerih se išče optimum samo za v naprej predpisan sistem - za primer lahko vzamemo proizvodni problem, ko iščemo optimalen načrt z maksimalnim dobičkom, dogajanje okrog ostalih konkurentov pa nas ne zanima), upošteva tudi vplive ostalih sistemov. Ta metoda torej, za razliko od drugih, upošteva obstoj več partnerjev, ki se odločajo vsak zase, obravnava konfliktne situacije, upošteva pa tudi interakcijo med konflikti in enotnim ciljem. To so tri lastnosti, po katerih se razlikuje od standardnih optimizacijskih metodah. Osnovni element igre je konfliktna situacija, v kateri se igralec znajde vsakič, ko ima na voljo več ukrepov. Konfliktne situacije najlažje prepoznamo po naslednjih lastnostih:

• Vsak od igralcev A in B skuša doseči nek namen. Ta sta med seboj nezdružljiva. Torej, če A doseže svoj namen, ga B ne in obratno. Možna pa je tudi, da se zgodi situacija, kjer ne A niti B ne dosežeta svojega namena.

• Oba se ravnata po določenih pravilih. • Igrata razumno, tako da vsaka poteza deluje v njun prid. • Obstaja merilo, po katerem je vedno mogoče oceniti korist vsakega ukrepa.

Kljub temu, da je zadnji točki najtežje ustreči, je to pogoj za uporabnost teorije, čeravno so lahko ta merila slaba, kar pa je potrebno vzeti v zakup, če želimo njen obstoj.

Page 59: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 55

odločanja v poslovnih procesih

Pri teoriji iger imenujemo udeležene igralce, označimo pa z P1, P2,...., Pn. Praviloma nastopata le dva igralca, če jih več z istimi interesi, pa jih obravnavamo kot enega. Ukrepe, ki jih igralci izvedejo med igro, imenujemo izbira, fazi v kateri poteka to izbiranje pa rečemo poteza. Povedati je potrebno še, kaj je igra. To je zbirka pravil in dogovorov, po katerih se morajo udeleženci ravnati. Igre ločimo po različnih vidikih:

• Po številu igralcev. • Po vsoti dobičkov. Igri, kjer je vsota dobičkov enaka 0, to je taka igra kjer nekateri

toliko dobijo, kot drugi izgubijo, pravimo antagonistična igra. Če pa vsota dobičkov ni nič, pa pravimo, da je igra neantagonistična.

• Po številu izbir, kjer ima igralec končno ali pa neskončno možno število izbir. • Po informaciji, ko ima igralec o izbirah in možnostih nasprotnika popolno ali delno

informacijo ali pa je sploh nima. Primer je šah. Matrične igre To je antagonistična igra med dvema igralcema, kjer ima vsak na voljo po eno potezo in nobene informacije o nasprotniku. Primer: Neko podjetje oglašuje svojo novo punudbo izdelkov z oglasi na internetu, po televiziji, ali na oba načina hkrati. Enako seveda lahko ravna tudi konkurenčno podjetje. V tabeli 12 so predstavljeni pričakovani dohodki podjetja pri posameznih načinih oglaševanje in različnih možnih načinih ravnanja konkurenčnega podjetja.

Konkurenca B Ne oglašuje Internet TV Internet in TV

Ne oglašuje -3 -4 -5 -11 Internet 4 3 -2 -5

TV 6 2 1 4

Podjetje A

Internet in TV 11 2 2 2

Tabela 12: Prikaz vrednosti oglaševanja Rešitev: V POM-QM kliknemo na Module in iz seznama izberemo modul Game Theory. Kliknemo na ikono za nov list, da začnemo z delom z novim modelom. Odpre se vnosno okno, kjer določimo število stolpcev in vrstic ter obema nastavimo število 4 (to so možnosti, da ne oglašujejo, oglašujejo preko tiska, preko televizije ali pa oboje hkrati). Vrstice in stolpce lahko tudi po želji preimenujemo, poimenujemo pa lahko tudi ime projekta. Potrdimo nastavjeno in odpre se nam prazna tabela, podobna tabeli zgoraj (tabela 12). V prazna polja vnesemo vrednosti, ki so napisana v zgornji tabeli na istih ustreznih mestih. Ko je tabela izpolnjena, kliknemo na Solve in dobimo rešitev, prikazano na sliki 39. Rešitev pove, da podjetju najbolj ustreza, da vloži ves denar, namenjen za oglaševanje, preko interneta in televizije, na sliki prikazano v zadnjem stolpcu, oziroma kot { }0;0;0;1x = ,

saj mu zagotavlja, da v povprečju ne dobi manj, kot w = 2 denarni enoti. Na drugi strani pa konkurenčnemu podjetju najbolj ustreza taktika, kjer 83 odstotkov denarja vloži v oglaševanje preko interneta, 11 odstotkov v televizijsko, in šest odstotkov v oglaševanje

Page 60: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 56

odločanja v poslovnih procesih

preko interneta in televizije, napisano v zadnji vrstici, oziroma predstavljeno kot

{ }0;0,83;0,11;0,06y = . Ta strategija mu zagotavlja, da podjetje v povprečju ne bo

izgubilo več kot w = 2 denarni enoti.

Slika 39: Rešitev problema antagonistične igre

6.7. Problem optimizacije zalog (NLP problem)

Gre za področje, ki je del logističnega managementa. Točneje je to modificirani model optimalne naročilne količine (ONK) in mu pravimo model optimalne proizvodne količine (OPK). V primerjavi z ONK, kjer se obravnava predmet, ki ga kupec kupuje oziroma naročuje, se pri OPK upošteva, koliko teh predmetov je potrebno izdelati v domači proizvodnji. Ker je to modificiran model ONK, ga je možno uporabiti tudi za management vezanih zalog. (Čižman, 2002) Oznake, uporabljene v modelu za izračun OPK: sp ... stroški priprave proizvodnje d ... Dnevna poraba p ... Zmogljivost proizvodnje na dan H ... Stroški skladiščenja enote na leto Lp ... Letna potreba Kp ... Proizvodna količina Kp* ... optimalna proizvodna količina Spc ... celotni letni stroški proizvodnje Namen OPK je poiskati takšno vrednost, kjer bodo celotni letni stroški minimalni. Izraz za optimalno proizvodno količino pa je nasleden:

2 ( )

*1

Lp spKp

dH

p

=

Poleg optimalne proizvodne količine, pa nas zanimajo tudi letni stroški proizvodnje oz. ciljna funkcija. Enačba, ki določa celotne letne stroške Spc, je podana tako:

Page 61: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 57

odločanja v poslovnih procesih

1

2

dKp

p LpSpc H sp

Kp

⋅ −

= ⋅ + ⋅

Primer: Podjetje se ukvarja s proizvodnjo in prodajo industrijskih ležajev na domačem in tujem trgu. Letna potreba po industrijskih ležajih je 50.000 kosov in je porazdeljena enakomerno. Podjetje je dnevno sposobno izdelati 275 ležajev, v letu pa je 242 delovnih dni. Stroški priprave na izdelavo ležajev znašajo 320 €, cena enega ležaja je 0,5 €, stroški skladiščenja ležaja pa znašajo 0,1 € na leto. a) Koliko ležajev naj bo proizvedeno v eni proizvodnji seriji? b) Koliko naj bo maksimalno prizvedenih ležajev, če želi podjetje imeti najmanj 500 ležajev v skladišču? Rešitev: Model problema je sledeč:

2 ( ) 2 * 50000 * 320* 35871,54

500000,1 11

275 * 242

Lp spKp

dH

p

= = =

−−

Tako se problem reši ročno, sledi se predstavitev s programoma POM-QM in Excel.

6.7.1. POM-QM a) V POM-QM kliknemo na Module Inventory, nato kliknemo na ikono za nov list in iz seznama izberemo Production Order Quantity Model. Odpre se običajno okno, kjer smo do zdaj določali število vej, omejitev, spremenljivk, idr., tokrat pa nam ni potrebno ničesar, ampak samo potrdimo z OK in odpre se nam nova tabela. V prazne okvirčke vnesemo podatke iz naloge, tako kot je prikazano na sliki 40, vendar v celici Daily demand rate pustimo ničlo, saj to vrednost izračuna program.

Slika 40: Prikaz vnosa podatkov Pred vsako celico piše, katero vrednost je potrebno vnesti, tako da je uporabniku to olajšano. Ko imamo vse vnešeno, kliknemo na Solve in dobimo rezultat 35872 enot,

Page 62: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 58

odločanja v poslovnih procesih

prikazano na sliki 41 v zadnjem stoplpcu v prvi vrstici (program je izračunal vrednost 35871,54, vendar izdelek je lahko samo cel, zato smo zaokrožili navzgor), zraven pa rezultat prikaže še grafično. Ob tem dobimo še druge koristne rešitve, kot so maksimalna zaloga, ki naj bo 8921 kosov, povprečna 4460 kosov, letni stroški priprave pa znašajo 446,04 evrov.

Slika 41: Numerična in grafična rešitev problema OPK

6.7.2. EXCEL Za rešitev v Excelu, pa uporabimo možnost, ki jo ponuja POM-QM, torej da model shrani v excelovem formatu. To naredimo tako, da v POM-QM kliknemo File in izberemo Save as Excel file, namesto običajno Save as. Program nam ponudi tri možnosti, prikazane na sliki 42:

Slika 42: Prikaz Save as Excel file možnosti Prva možnost je, da shrani na isto mesto, kjer je model že shranjen v POM-QM formatu, druga je, da shrani v novo datoteko, ki jo uporabnik sam poimenuje in določi lokacijo,

Page 63: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 59

odločanja v poslovnih procesih

tretja možnost pa je, da v obstoječ excelov dokument doda nov zavihek. Ko se odločimo za eno izmed njih, program tja shrani datoteko, in ko jo odpremo, dobimo rezultat, prikazan na sliki 43. Vidimo torej, da dobimo tudi tokrat isti rezultat: 35872 kosov.

Slika 43: Rešitev v Excelu b) Za proizvodnjo te količine bo potrebno 35872 275 130,44÷ = dni. V tem obdobju bo podjetje prodalo 130,44 (50000 242) 26951∗ ÷ = ležajev. Torej se bo zaloga dvignila na 35782 26951 8921− = enot. Temu moramo prišteti še zahtevo po minimalno 500 ležajih in dobimo rešitev 9421 enot.

Page 64: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 60

odločanja v poslovnih procesih

7. Primerjava uporabnosti Excel - Solverja, Linga, Linda in POM-QM pri reševanju problemov odločanja (optimizacije)

V tem delu se bomo vrnili še enkrat na vsa štiri programska orodja, ki smo jih uporabili in jih poskušali na kratko opisati, z vsemi njihovimi glavnimi značilnostmi, ki so za novega uporabnika pomembni pri nakupu te programske opreme. Excel – Solver (reševalec). Osnovna različica reševalca je sestavni del Microsoftovega programskega paketa Office. Pri nameščanju Excela se reševalec ne namesti samodejno, moramo ga dodati oziroma aktivirati, ponovno vstaviti namestitveni CD in slediti navodilom čarovnika za namestitev. Osnovna različica reševalca je brezplačna. Pomembne lastnosti:

• Na voljo je od različice Excela 97 naprej, vendar samo brezplačna predstavitvena različica.

• Zaradi velike razširjenosti in poznavanja orodja Excel, ima dobre potencialne uporabne možnosti.

• Omogoča izdelava poročil za občutljivostno analizo. • Omogoča reševanje problemov linearnega, nelinearnega in celoštevilčnega

programiranja. V tabeli 13 predstavimo vse različice reševalca skupaj s cenami:

Različica reševalca Cena

licence Letna

podpora Skupaj Risk Solver Platform $3,330 $665 $3,995 Risk Solver Premium $1,650 $345 $1,995 Premium Solver Platform $1,495 $300 $1,795 Premium Solver $745 $150 $895 Risk Solver $995 $200 $1,195 Risk Solver Engine $695 $140 $835 Std. Large-Scale LP Solver Engine $2,995 $600 $3,595 Ext. Large-Scale LP Solver Engine $4,995 $1,000 $5,995 Std. MOSEK Solver Engine - SOCP $3,495 $700 $4,195 Ext. MOSEK Solver Engine - SOCP/NLP $4,995 $1,000 $5,995 XPRESS Solver Engine - LP/MIP Only $5,995 $1,200 $7,195 XPRESS Solver Engine - LP/QP/MIP $7,695 $1,540 $9,235 XPRESS Solver Engine - MIP Dual Core $2,000 $400 $2,400 Std. Large-Scale GRG Solver Engine $1,250 $260 $1,510 Ext. Large-Scale GRG Solver Engine $2,500 $500 $3,000 Large-Scale SQP Solver Engine $3,995 $800 $4,795 KNITRO Solver Engine $3,995 $800 $4,795 OptQuest Solver Engine $2,500 $500 $3,000

Tabela 13: Prikaz različic reševalca s cenami licenc in letne podpore

Page 65: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 61

odločanja v poslovnih procesih

Letna podpora vključuje nadgradnjo programske opreme za eno leto, dostop do vseh s podporo povezanimi spletnimi stranmi, tehnična pomoč preko telefona in še nekatere ugodnosti, pri nadaljnem nakupu licenc za zmogljivejše različice reševalca. LINGO je orodje namenjeno za gradnjo in reševanje linearnih, nelinearnih in celoštevilčnih modelov. Uporablja algebraični programski jezik za gradnjo modelov in ima vgrajene reševalce. Pomembne lastnosti:

• Možnost uvoza podatkov iz podatkovnih baz, preglednic in tekstovnih datotek, na primer Microsoft Acces, Oracle, DB2, Microsoft SQL Server.

• Zmogljiv linearni simpleks, nelinearni in celoštevilčni reševalci, ki jih program izbere samodejno glede na strukturo napisanega modela.

• Oblikovanje modela ja enostavno, za njegovo gradnjo se uporablja matematični modelirni jezik. Na ta način se gradnja modela skrajša, matematični jezik pa vsebuje obsežno knjižnico matematičnih, verjetnostnih in finančnih funkcij.

• Zagnati ga je mogoče tudi s pomočjo makro ukaza iz Excela. • Deluje na operacijskem sistemu Windows v 32 ali 64 bitni tehnologiji in na

Linuxu. V tabeli 14 predstavimo plačljive različice, ki so na voljo na trgu.

Različica Cena Omejitve Spremenljivka Celoštevilčna spremenljivka

Nelinearna spremenljivka

Super $495 1000 2000 200 200 Hyper $995 4000 8000 800 800 Industrial $2.995 16000 32000 3200 3200 Extended $4.995 neomejeno neomejeno neomejeno neomejeno

Tabela 14: Različice Linga z zmogljivostmi

Lingo za reševanje z nekaterimi reševalci zahteva dodatno plačilo, prikazano v tabeli 15, prav tako za reševanje nelinearnih problemov.

Lingo različica

Cena za reševalec po Mejni metodi

Cena za nelinearni reševalec

Št. spremenljivk za nelinearni

model

Cena za Globalni

reševalec

Št. spremenljivk za globalni reševalec

Super $150 $150 200 $100 10 Hyper $300 $300 800 $200 20 Industrial $900 $900 3200 $600 50 Extended $1.500 $1.500 neomejeno $1.000 neomejeno

Tabela 15: Prikaz cen dodatnih možnosti

Page 66: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 62

odločanja v poslovnih procesih

LINDO je orodje za reševanje linearnih, celoštevilčnih in kvadratnih problemov matematičnega programiranja in je pravzaprav okleščena različica Linga. Ne pozna pa nelinernega programiranja. Pomembne lastnosti:

• Preko statusnega okna imamo možnost spremljanja napredka reševanja problema.

• Grafično okolje je zelo podobno tistemu v Lingu, kar pomeni, da kdor zna delati z Lingom, bo znal tudi z Lindom.

• Pri napačni gradnji modela nas opozori na napake in predlaga pravilno sintakso. • Vsebuje obsežen niz ukazov za vnos podatkov. • Lahko opravi občutljivostno analizo. • Sposoben je uvažanja podatkov iz drugih programov, preglednic, baz podatkov

ali besedilne datoteke. V tabeli 16 so predstavljene plačljive različice Linda skupaj s cenami licenc:

Različica Linda Cena

Število omejitev

Število spremenljivk

Število spremenljivk celoštevilčnih problemov

Super $395 1000 2000 200 Hyper $795 4000 8000 800 Industrial $2.395 16000 32000 3200 Extended $3.995 32000 200000 20000

Tabela 16: Različice Linda z zmogljivostmi

POM-QM je programsko orodje, namenjeno za področje linearnega, celoštevilčnega in nelinearnega programiranja. Lahko se uporabi za reševanje problemov ali pa za preverjanje odgovorov, do katerih smo prišli na roke. Pomembne lastnosti:

• Program ima vgrajenih že 29 modulov (in čez 60 podmodulov), ki uporabniku olajšajo delo.

• Premore standardni Windows grafični vmesnik. Tudi delo in shranjevanje se opravlja na standarden način, poznan v okolju Windows.

• Enostavno generira grafe. • Primeren je za široko področje uporabe. • Omogoča shranjevanje modela v Excelovi obliki. • V primeru napačnega vnosa, nas program opozori na napako in predlaga

popravek. • Nizka cena, ki znaša 80 ameriških dolarjev.

Vsa 4 uporabljena programska orodja pa bomo v tabeli 17 še enkrat v strnjeni obliki predstavili. Predstavljene so samo različice, katere smo v diplomski nalogi uporabljali.

Page 67: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 63

odločanja v poslovnih procesih

To so različice, ki so brezplačno dostopne, za vse ostale različice, pa je potrebno doplačati. Predstavljeno je za katere optimizacijske metode so primerni, kako obsežne probleme so sposobni obdelati (koliko spremenljivk in omejitev sprejmejo) in kakšna poročila nam ponudijo. Lastnosti Excel - Solver LINGO LINDO POM-QM Optimizacijska metoda: Linearno Da Da Da Da Nelinearno Da Da Ne Da, z Excelom Celoštevilčno Da Da Da Da Velikost modela: Linearne spremenljivke x omejitve

200 x 200 250 x 500 250 x 500 90 x 90

Nelinearne spremenljivke x omejitve

200 x 100 250 x 50 / 200 x 100 zaradi Excela

Celoštevilčne sprem. x omejitve

200 x 100 250 x 50 250 x 50 30 x 30

Poročilo o: Rešitvi Da Da Da Da Občutljivosti Da Ne Da Da Omejitvah Da Da Da Da

Tabela 17: Pregled zmogljivosti programskih orodij uporabljenih v diplomski nalogi

V diplomski nalogi smo se osredotočili na področje matematičnega programiranja, ki je del operacijskih raziskav. Le-te so področje ekonomske znanosti, ki se je po drugi svetovni vojni začela sunkovito širiti, predvsem pa po tistem, ko so prišli v uporabo računalniki, torej v zadnji četrtini 20. stoletja. Bistvo operacijskih raziskavah je iskanje »ekonomskih« ekstremov, torej minimumov in maksimumov. Minimalnih stroškov, maksimalnega dobička, najkrajše poti, maksimalnega izkoristka idr. V teoretičnem delu je opisano, kako se zgradi odločitveni model in glavni sestavni deli matematičnega programiranja. To so linearno programiranje, nelinearno programiranje in celoštevično programiranje, od katerih je najbolj razširjeno in najbolj v uporabi linearno programiranje. Na žalost je večina literature v tujem jeziku, ki pa jo je po drugi strani dovolj. To nakazuje, da pri nas to področje v primerjavi s tujino (predvsem ZDA, od koder je tudi veliko literature) še ni tako prepoznavno managerjem in tudi nasploh. Torej je tudi izkoriščenost tega potenciala posledično nizka. Po nekaterih raziskavah je izkoriščenost informacijske tehnologije v Sloveniji precej manjša kot pa v Evropski uniji. Bila pa naj bi pri nas tudi celo 3,5-krat nižja dodana vrednost na zaposlenega. Priložnosti za izkoriščanje in uporabo novih tehnologij je torej dovolj, le prednosti njihove uporabe in njeno predstavitev je potrebno približati potencialnim uporabnikom. Morda ne bi bil slab apel različnim avtorjem, da izdelajo tudi kakšen priročnik v slovenskem jeziku. Literatura, kolikor jo je bilo pregledano in uporabljeno pri pisanju tega diplomskega dela, je zelo obsežna in zanimiva, njena struktura in vsebina pa je polna praktičnih primerov iz realnih situacij v pravih podjetjih.

Page 68: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 64

odločanja v poslovnih procesih

Namen te diplomske naloge je spoznavanje, predstavitev in približanje nekaterih komercialnih programskih rešitev, ki so na voljo na trgu. Želja je bila predstaviti njihove sposobnosti in, kako se ravna z njimi. Vendar pa bo moral bodoči uporabnik sam poglobiti znanje, če bo hotel katero od teh programskih rešitev uporabiti v praksi na svojem delovnem področju, kajti področij, na katerih so ti programi sposobni reševati, je veliko. Prikazana je bila uporaba na sedmih področjih. To je seveda premalo, da bi zavzeli vsa možna področja. Samo za primerjavo: program POM-QM ima skoraj 30 modulov in 60 podmodulov, kar pove, da je še veliko področij, ki jih ni bilo mogoče vključiti v eno samo diplomsko nalogo. Primeri iz realne situacije pa se seveda razlikujejo od primera do primera. Lahko so zelo obširni, ali pa zanje velja omejitev programov, s katerimi smo delali, saj so bile uporabljene, pri vseh štirih programih, zgolj osnovne različice, ki jih lahko študentje naše fakultete uporabljajo v okviru predmeta Operacijske reziskave. Zato bi bilo potrebno kupiti licenco za naslednjo stopnjo programa, ki je sposoben obdelati toliko spremenljivk in omejitev, kolikor je obsežen problem, ki ga uporabnik rešuje. Za ta namen smo raziskali, koliko te licence stanejo in, koliko omejitev in spremenljivk so sposobni ti programi sprejeti in z njimi operirati. Pri programih so bili predstavljeni grafični vmesniki, njihova uporaba in vrste reševalcev, ki jih vsebujejo. Z njimi smo želeli predstaviti, kako se z različnim načinom uporabe različnih programov pride do istega rezultata. Excel in POM-QM podatke sprejemata v tabelarični obliki, medtem ko LINGO in LINDO za gradnjo potrebujeta algebraično strukturo. V prvem delu diplomske naloge smo se osredotočili na teoretični del. Predstavljena je teorija in zgodovina linearnega, nelinearnega in celoštevilčnega programiranja, opisane so antagonistične igre in problem optimizacije zalog. Nadaljuje se s predstavitvijo vseh komercialno dosegljivih programskih orodij ter nato še z opisom in prikazom vseh štirih izbranih programskih orodij z njihovimi lastnostmi. Govora je o njihovih osnovnih zaslonih (grafičnih vmesnikih), načinu podajanja in vnašanja podatkov v program, o tem, kam se ti podatki vnašajo, raznih nastavitvah, primerih uporabe na testnih primerih in rezultatih. Sledi prikaz uporabe teh orodij na primerih. Prvi trije primeri so izdelani z vsemi štirimi programi, rešitve prikazane na slikah in tudi razložene, kaj pomenijo določene vrednosti. Za naslednje štiri primere, ki jim sledijo, je bilo uporabljeno tisto programsko orodje, ki je bilo za določeni problem najprimernejše. Med samim delom s temi štirimi programi je bilo najlažje delalati s POM-QM, saj je enostaven za uporabo. Vgrajeni moduli ogromno pripomorejo k temu, da ni potrebno vnašati različnih ukazov, kot na primer pri Lingu in Lindu, kjer že zelo spominjajo na ukaze programiranja v pravem programskem jeziku. Ko vemo, s kakšno vrsto problema imamo opravka, le iz seznama modulov in podmodulov izberemo pravega, določimo koliko spremenljivk in omejitev ima problem in že je pripravljen za delo. Podatke je potrebno samo še vnesti in od modela do modela se nastavi le še kakšna dodatna manjša zahteva, kot je na primer določitev, ali računamo minimum ali maksimum. S tem ko izpolnemo ponujeno tabelo, program že sam ve, kaj katera vrednost pomeni, tako da ni potrebno dodatno določevati, katera vrednost je denimo omejitev. Slabost takšnega načina vnosa podatkov pa je ta, da je v primeru, če je problem zelo obsežen, potrebno dolgotrajno vnašanje podatkov. Pri tem je treba paziti, da ne naredimo napake, saj bo v nasprotnem napačen tudi rezultat. Ko problem rešimo, nam program poleg same rešitve prikaže tudi vrsto drugih poročil. Prikazati zna rešitev grafično (v kolikor je problem dvodimenzionalen), za koliko se lahko vrednosti še spreminjajo, da ostanejo v optimalnem območju idr. Uporabna pa je tudi ena pomembna lastnost POM-QM-a, to je shranjevanje modela v Excelu. Na ta način lahko podatke v

Page 69: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 65

odločanja v poslovnih procesih

Excelu naprej obdelujemo po svojih potrebah. Pri Excelu je način vnosa podatkov podoben, torej tako, kot se podatke vnaša v Excel pri običajnem delu. Je pa prav tako potrebno biti previden, da so pravilno vnešeni. Tabelo lahko oblikujemo po želji, kot običajno. Slaba lastnost Excela je poleg te, ki je prisotna tudi v v POM-QM, torej v problem obsežnosti problema, je ta, da je potrebno v celice ročno napisati omejitve in poznati pravilne formule. Tudi v Reševalcu je, ko ga odpremo, potrebno pravilno določiti ciljno celico, spreminjajoče se celice in znati določiti omejitve. Poleg rešitve zna tudi Excel prikazati nekatera poročila, uporabna pri nadaljnih odločitvah. Lingo in Lindo imata morda nekoliko neprijazen grafični vmesnik oziroma je takšen za novega uporabnika, saj bi verjetno ta pričakoval vsaj neko standardno obliko, kamor se vnašajo podatki. Namesto tega se odpre prezen zaslon. Sistem vnosa podatkov je namreč algebraičen. Enostavnejši primeri se napišejo zelo podobno, kot bi jih napisali na papir in rešili ročno, nekoliko kompleksnejši primeri pa se že lahko zakomplicirajo. Namreč, potrebno je poznati ukaze, kaj pomenijo in jih zapisati v pravilnem vrstnem redu. Sama sintaksa celo nekoliko spominja na programiranje v nekem programskem jeziku. Ne omogoča vnašanja podatkov na takšen način, kot prejšnja programa, ampak bolj na programerski način, kjer se napiše atribut in nato vrednost tega, prej pa je treba programu razložiti, kaj ta atribut predstavlja. Že pri samem pisanju modela je potrebno biti pazljiv, saj že ena napaka v sintaksi privede do tega, da program sploh ne bo mogel rešiti problema in bo torej javil napako. Dobra stran tega pa je, da ko opozori na napako pove, kje naj bi bila. Ko je problem rešen, oba programa skupaj z rešitvijo ponujata tudi poročilo. Prvi del poročila je pri obeh enak, Lindovo pa vsebuje tudi en del poročila, ki ga Lingov ne. Gre za prikaz, za koliko se lahko vrednosti še spreminjajo, da je rešitev še vedno v optimalnem območju. Lindo pa ima še eno pozitivno lastnost, saj omogoča uvoz podatkov iz drugih virov. Vsi od uporabljenih programov imajo v Help meniju tudi pomoč uporabnikom, kjer si lahko s koristnimi informacijami poskušamo olajšati situacijo, ko se kaj zatakne.

Page 70: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 66

odločanja v poslovnih procesih

8. Zaključek Ob delu s štirimi analitičnimi programskimi orodji smo prikazali nekatere tipične možnosti uporabe sodobne infomrmacijske tehnologije, ki omogočajo razvoj odločitvenega informacijskega sistema. Delo z njimi vsekakor ni popolnoma enostavno. Vsak, ki bo uporabljal katero od teh programskih rešitev, bo to sam spoznal in se bo moral izobraziti na tem področju. Zelo pomembna je tudi pravilna interpretacija in analiza problema, ki ga moramo prej formulitati v verbalni in nato v matematični obliki kajti, če ga ne razumemo dobro, ne moremo sestaviti dober model in ne bomo dobili željene rešitve. Primeri v tej nalogi so seveda tako prirejeni, da se podatki enostavno razberejo, z delom v pravem okolju, pa kaj hitro spoznaš, da kakšen podatek manjka oziroma kakor koli neka mankajoča informacija otežuje delo. Zato je potrebno dobro preučiti problem in ga formulirati. Težavnost se seveda stopnjuje z obsežnostjo problema, nenazadnje pa je odvisno tudi od tega, kaj želimo optimirati, saj obstaja, kot smo spoznali, vrsta področij, kjer ta orodja lahko uporabimo. Ko pa enkrat razumemo in dodobra spoznamo uporabo teh orodij, pa nam lahko olajšajo delo pri hitri izbiri prave odločitve, katera vpliva na konkurenčnost podjetja. To je tudi njihov namen. Orodja so si med seboj različna po načinu uporabe (vnos podatkov, sintaksa, prikaz rezultatov) in po lastnostih uporabe grafičnega vmesnika z vidika uporabe metod in modelov OR pri optimizaciji poslovnih procesov, kar smo tudi želeli prikazati v tej diplomski nalogi. Nekatera so uporabniku bolj prijazna, nekatera malo manj, vsa štiri orodja, pa so opravila svojo nalogo. Naša končno ocena bi se glasila tako, da bi se v primeru potrebe za uporabo programa odločili za POM-QM, saj se nam je zdel za uporabnika najbolj prijazen, najbolj enostaven, najbolj intuitiven, pa tudi rešitve predstavlja najbolj razumljivo. V primeru dodatne potrebe po analizi podatkov, bi še vedno lahko uporabili možnost shranjevanja v Excel formatu in za nadaljne delo uporabili program Excel.

Page 71: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 67

odločanja v poslovnih procesih

9. Literatura in viri - Čižman A.: Operacijske raziskave Teorija in poraba v organizaciji, Založba moderna organizacija, Kranj, 2004. - Čižman A.: Logistični management v organizaciji, Založba moderna organizacija, Kranj, 2002. - Čižman A. In Černetič J., (2002) Improving competitivnes in veneers production by a simple-to-use DSS, European Journal of Operational Research 156 (2004) 241-260. - Hafner U., Diplomsko delo, Razvoj in uporaba sistemov za podporo odločanju v skladiščnem poslovanju majhnih in srednjih podjetij, Kranj, 2004. - Kavčič A., Diplomsko delo, Uporabnost sodobnih programskih orodij pri reševanju problemov matematičnega programiranja, Kranj, 2003. - Wayne L. Winston: User's Guide for LINDO and LINGO, Windows Version, Wadsworth Publishing Company, 1994. - Robbins S., Coulter M.: Management, osma izdaja, Upper Saddle River, New Jersey, 2005. - M. Alvi in F. Joachimsthaler, Revisiting DSS implementation research: A meta-analysis of the literature and suggestions for researchers, Society for Information Management and The Management Information Systems Research Center, Minneapolis, MIS Q. 95-116, 1992. - Novak G., Gradišar M.: Pregled uporabe informacijskih sistemov za podporo odločanja, Organizacija, letnik 33, št. 4, Kranj, 2000. - Zadnik Stirn L.: Zapiski, Operacijske reziskave, Zapiski pri predmetu metode optimiranja, Biotehniška fakulteta, Ljubljana, 2004. - Winston W.L.: Operations research: applications and algorithms. 4th edition. Belmont, 2004. - Krajewski, L.J., Ritzman L. P., Operations Management, Addison-Wesley Publishing Comp., 1996. - Mansfield, E., Managerial Economics, Theory, Applications and Cases, W.W. Norton & Comp. Inc. USA, 1993. - Spletna stran: http://www.solver.com/tutorial.htm, Frontline Systems, inc., 24.6.2008 - Spletna stran: http://www.solver.com/exceluse.htm, Frontline Systems, inc., 24.6.2008 - Spletna stran: http://www.solver.com/pricexls.php, Frontline Systems inc., 6.2.2009

Page 72: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 68

odločanja v poslovnih procesih

- Spletna stran: http://www.solver.com/pricesupport.php, Frontline Systems inc., 25.3.2009 - Spletna stran: http://www.wior.uni-karlsruhe.de/bibliothek/, Universität Karlsruhe (TH) - Institut für Wirtschaftstheorie und Operations Research, 19.8.2008 - Spletna stran: http://www.wior.uni-karlsruhe.de/bibliothek/Linear/com/lingo, Universität Karlsruhe (TH) - Institut für Wirtschaftstheorie und Operations Research, 19.8.2008 - Spletna stran: www.lindo.com, Lindo Systems inc., 24.6.2008 - Spletna stran: http://en.wikipedia.org/wiki/Shortest_path_problem, 14.10.2008 - Spletna stran: http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm, 14.10.2008

Page 73: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 69

odločanja v poslovnih procesih

Kazalo slik in tabel Slika 1: Prikaz strukture OIS............................................................................................2 Slika 2: Grafični prikaz linearnega programa ...................................................................6 Slika 3: Dodajanje reševalca .........................................................................................14 Slika 4: Zagon reševalca ...............................................................................................16 Slika 5: Vnos parametrov ..............................................................................................16 Slika 6: Nastavitev omejitev...........................................................................................17 Slika 7: Izbira poročil .....................................................................................................17 Slika 8: Možnosti ...........................................................................................................18 Slika 9: Začetno stanje ..................................................................................................22 Slika 10: Primer uporabe Linga .....................................................................................23 Slika 11: Statusno okno.................................................................................................23 Slika 12: Poročilo ..........................................................................................................25 Slika 13: Osnovni zaslon ...............................................................................................26 Slika 14: Predstavitev uporabe Linda ............................................................................27 Slika 15: Stanje reševalca .............................................................................................27 Slika 16: Poročilo ..........................................................................................................28 Slika 17: Glavni grafični vmesnik ...................................................................................30 Slika 18: Vnosno okno za nastavitve .............................................................................31 Slika 19: Vnosna tabela.................................................................................................32 Slika 20: Poročilo ..........................................................................................................32 Slika 21: Prikaz rešitve v Excelu....................................................................................34 Slika 22: Poročilo občutljivosti .......................................................................................34 Slika 23: Prikaz vnosa podatkov....................................................................................36 Slika 24: Rešitev v POM-QM.........................................................................................37 Slika 25: Prikaz rešitve v Excelu....................................................................................39 Slika 26: Poročilo občutljivosti .......................................................................................39 Slika 27: Prikaz vnosa podatkov....................................................................................41 Slika 28: Rezultat v POM-QM........................................................................................42 Slika 29: Prikaz transportnih poti ...................................................................................43 Slika 30: Rešitev v Excelu .............................................................................................44 Slika 31: Prikaz transportnih poti z rešitvijo ...................................................................44 Slika 32: Prikaz vnosa podatkov....................................................................................47 Slika 33: Prikaz rešitve in stroškov dobave....................................................................47 Slika 34: Pretok skozi mrežo .........................................................................................48 Slika 35: Maksimalen pretok..........................................................................................50 Slika 36: Mrežni model ..................................................................................................51 Slika 37: Prikaz vnosa podatkov....................................................................................53 Slika 38: Rešitev problema najkrajše poti v POM-QM ...................................................54 Slika 39: Rešitev problema antagonistične igre .............................................................56 Slika 40: Prikaz vnosa podatkov....................................................................................57 Slika 41: Numerična in grafična rešitev problema OPK .................................................58 Slika 42: Prikaz Save as Excel file možnosti..................................................................58 Slika 43: Rešitev v Excelu .............................................................................................59 Tabela 1: Prikaz faz razvoja OIS .....................................................................................3 Tabela 2: Prikaz komercialnih programskih orodij za linearno programiranje ................11 Tabela 3: Prikaz komercialnih programskih orodij za nelinearno programiranje.............11

Page 74: PRIMERJAVA ANALITI ČNIH PROGRAMSKIH ORODIJ PRI … · 2018-08-24 · Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija Miha Osojnik:

Univerza v Mariboru - Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Miha Osojnik: Primerjava analitičnih programskih orodij pri reševanju problemov stran 70

odločanja v poslovnih procesih

Tabela 4: Prikaz komercialnih programskih orodij za celoštevilčno programiranje.........12 Tabela 5: Prikaz zmogljivosti posameznih orodij in njihove cene...................................13 Tabela 6: Seznam različic LINGO .................................................................................20 Tabela 7: Vhodni podatki...............................................................................................33 Tabela 8: Podatki, prenešeni iz teksta...........................................................................38 Tabela 9: Podatki, prenešeni iz teksta...........................................................................43 Tabela 10: Zmogljivosti vej ............................................................................................48 Tabela 11: Prikaz rešitve...............................................................................................50 Tabela 12: Prikaz vrednosti oglaševanja .......................................................................55 Tabela 13: Prikaz različic reševalca s cenami licenc in letne podpore ...........................60 Tabela 14: Različice Linga z zmogljivostmi ...................................................................61 Tabela 15: Prikaz cen dodatnih možnosti ......................................................................61 Tabela 16: Različice Linda z zmogljivostmi ...................................................................62 Tabela 17: Pregled zmogljivosti programskih orodij uporabljenih v diplomski nalogi......63