Začeci linearnog programiranja sežu u 19. stoljeće i vezni su uz rani Fourierov rad na sustavima linearnih nejednadžbi. Ipak, linearno programiranje doživljava intenzivniji razvoj od 1940-ih godina, a upotreba linearnog programiranja intenzivira se s razvojem računalne potpore te Dantzigovog razvoja simpleks metode (1951). Štoviše, linerano programiranje osnova je razvoja brojnih drugih metoda, poput numeričke analize, simboličke komputacije, kombinatorijske optimizacije i drugih metoda optimizacije (Chandru i Rao, 1997).
Što je optimizacija? Općenito, optimizacija je sustavni proces pronalaženja najboljeg mogućeg rješenja ili načina djelovanja unutar zadanih ograničenja. Cilj optimizacije najčešće je maksimizirati ili minimizirati određenu funkciju (npr. profit, trošak, vrijeme) tako da se zadovolje određeni uvjeti ili ograničenja. Optimizacija se koristi u različitim područjima, uključujući poslovanje, industriju, inženjering, medicinu i svakodnevni život, pružajući metodološki okvir za donošenje odluka temeljem rezultata modela.
Što je linearno programiranje? Linearno programiranje je matematička metoda optimizacije koja omogućuje pronalaženje najboljeg mogućeg rješenja za određeni problem unutar zadanih ograničenja, gdje su svi odnosi i uvjeti opisani linearnim jednadžbama i nejednadžbama. Ova metoda pruža strukturu za analizu relativno složenih problema i pronalaženje optimalnih rješenja uz ograničene resurse. Pruža mogućnost kreiranja jasne strukture i rješavanje problema pomoću numeričkih algoritama, što ga čini primjenjivim na raznovrsne situacije, a samim time i korisnim alatom u procesima donošenja odluka u poslovanju, znanosti i svakodnevnom životu.
Što su optimalna rješenja? S obzirom da je riječ o optimizaciji, tražimo optimum. U kontekstu linearnog programiranja, optimum predstavlja najbolje moguće rješenje problema, odnosno maksimalnu ili minimalnu vrijednost, ostvarenu u datim uvijetima i ograničenjima.
Dakle, kao jedna od jednostavnijih i relativno lako primjenjivih metoda optimizacije, koristi se u brojnim područjima. Na primjer, pri optimizaciji:
Uz navedene primjere, moguće je naći i brojne druge, koristeći na primjer, Google Scholar ili neke druge arhive članaka.
Kako bi se problem riješio u okviru linearnog programiranja, potrebno je strukturirati problem. Strukturiranje problema vezano je uz prve tri faze rješavanja problema i donošenja odluka (ako ste zaboravili, pogledajte sliku Rješavanje problema i odlučivanje iz Uvoda u OI ). Vrši se putem definiranja cilja i ograničenja. S obzirom da je u pitanju korištenje kvantitativnih metoda, utvrđuju se:
Funkcija cilja je matematički izraz koji predstavlja glavni cilj optimizacijskog problema, poput maksimizacije profita, minimizacije troškova ili postizanja optimalne učinkovitosti. To je osnovna komponenta modela koja definira što se nastoji postići unutar zadanih ograničenja. Funkcija cilja uključuje varijable odluke i njihovu povezanost s ciljem, a njezina optimizacija vodi do najboljeg mogućeg rješenja problema. Na primjer, u problemima poslovnog odlučivanja funkcija cilja može predstavljati ukupni prihod, dok u inženjerskim aplikacijama može opisivati minimizaciju potrebne energije ili maksimizaciju performansi sustava.
Maksimizacija je proces pronalaženja najveće moguće vrijednosti funkcije cilja unutar zadanih ograničenja. U kontekstu optimizacije, maksimizacija se najčešće odnosi na povećanje željenih rezultata, poput profita, proizvodnje, učinkovitosti ili bilo kojeg drugog pozitivnog ishoda. Cilj je odabrati vrijednosti varijabli odluke na način da funkcija cilja dostigne svoju najveću moguću vrijednost, dok se istovremeno poštuju svi uvjeti i resursna ograničenja definirana modelom.
Minimizacija je proces pronalaženja najmanje moguće vrijednosti funkcije cilja unutar zadanih ograničenja. U kontekstu optimizacije, minimizacija se često odnosi na smanjenje troškova, vremena, otpada, rizika ili drugih negativnih aspekata procesa ili sustava. Cilj je odabrati vrijednosti varijabli odluke tako da funkcija cilja postigne svoju najmanju moguću vrijednost, uz istovremeno poštivanje svih uvjeta i ograničenja modela.
Varijable odluke predstavljaju osnovne elemente modela koji definiraju ono što želimo odrediti ili kontrolirati kako bismo pronašli optimalno rješenje problema. One kvantificiraju odluke koje treba donijeti, poput količine proizvoda koje treba proizvesti, resursa koje treba raspodijeliti ili vremena koje treba uložiti u određenu aktivnost. Varijable odluke su obično numeričke i jasno povezane s problemom koji se rješava, omogućujući formalno matematičko izražavanje odnosa između različitih komponenti sustava i ciljeva koji se nastoje postići.
Ograničenja su uvjeti ili pravila koja definiraju granice unutar kojih se varijable odluke mogu kretati u optimizacijskom modelu. Ta pravila odražavaju stvarna ograničenja resursa, tehnička, operativna ili organizacijska pravila koja se moraju poštivati u rješavanju problema. Ograničenja mogu biti izražena u obliku jednakosti ili nejednakosti, ovisno o tome zahtijevaju li strogu raspodjelu resursa ili dopuštaju određeni stupanj fleksibilnosti. Ipak, potrebno ih je pažljivo definirati.
Geometrijski, ograničenja kreiraju skup hiperploha ili hiperravnina n-dimenzionalnog prostora. Pomoću tih ploha ili prostora određuje se područje definicije, iz koje se biraju takve vrijednosti varijabli odluka uz koje se postižu ekstremne vrijednosti funkcije cilja. Proturječna ograničenja (ograničenja koja ne mogu istovremeno biti ispoštovana, na primjer, x≥100 i x<50) onemogućuju utvrđivanje rješenja. U situaciji u kojoj ograničenja nisu proturječna, ali nisu niti ograničena (na primjer sva ograničenja sadrže <, uz minimizaciju funkcije cilja), moguće je utvrditi rješenje samo ako je funkcija cilja omeđena u području definicije i ako funkcija poprima ekstremnu vrijednost u tom području.
Općeniti zapis modela u linearnom programiranju je:
Funkcija cilja
\[ \text{Min ili Max } z = c_0 + c_1 x_1 + \dots + c_n x_n \]
Ograničenja
\[ a_{i1}x_1 + a_{i2}x_2 + \dots + a_{in}x_n \, \begin{array} \\ \geq \\ = \\ \leq \end{array} \, b_i, \] \[ x_j \, \geq, 0, \]
za: \[ i = 1, \dots, m, \, j = 1, \dots, n. \]
Smatra se da je model standardne forme
ako se radi o maksimizaciji,
postoje samo jednakosti i
sve su varijable odluke ograničene na nenegativne vrijednosti.
Jednostavni model s dvije nepoznanice može biti zadan, na primjer, na sljedeće načine, ovisno radi li se o maksimizaciji ili minimizaciji:
Maksimizacija:
\[ \text{Max } z = c_1 x_1 + c_2 x_2, \] \[ a_1 x_1 + a_2 x_2 \leq b_1, \]
\[ a_3 x_1 + a_4 x_2 \leq b_2, \]
\[ x_1 \geq 0, \, x_2 \geq 0. \]
Minimizacija:
\[ \text{Min } z = c_1 x_1 + c_2 x_2, \]
\[ a_1 x_1 + a_2 x_2 \geq b_1, \]
\[ a_3 x_1 + a_4 x_2 \geq b_2, \]
\[ x_1 \geq 0, \, x_2 \geq 0. \]
Gdje su:
\[ a_1, a_2, a_3, a_4, b_1, b_2, c_1, c_2 \in \mathbb{R}. \]
odnosno, to bi u kontekstu moglo biti:
\(c_1\) i \(c_2\): koeficijenti funkcije cilja. Oni predstavljaju vrijednosti koje doprinose konačnoj vrijednosti funkcije cilja po jedinici varijabli odluke \(x_1\) i \(x_2\). Na primjer, ako je cilj maksimizirati profit, \(c_1\) i \(c_2\) mogu predstavljati profit po jedinici \(x_1\) i \(x_2\). Ili, ako je cilj minimizirati troškove, \(c_1\) i \(c_2\) mogu predstavljati troškove po jedinici \(x_1\) i \(x_2\).
\(a_1\),\(a_2\),\(a_3\),\(a_4\): koeficijenti ograničenja. Oni definiraju koliko svaka jedinica \(x_1\) i \(x_2\) koristi resurse ili doprinosi ograničenjima. Na primjer, \(a_1\) može predstavljati količinu resursa potrebnu za proizvodnju jedne jedinice \(x_1\), dok \(a_2\) predstavlja resurse potrebne za proizvodnju \(x_2\).
\(b_1\) i \(b_2\): desna strana ograničenja. Predstavljaju ukupnu dostupnost resursa ili gornju/donju granicu ograničenja. Na primjer, \(b_1\) može označavati maksimalnu količinu dostupnog resursa koji se koristi u prvom ograničenju, dok \(b_2\) označava ograničenje za drugi resurs.
\(x_1\) i \(x_2\): varijable odluke. Predstavljaju vrijednosti koje treba odrediti kako bi se optimizirala funkcija cilja. Na primjer, \(x_1\) i \(x_2\) mogu predstavljati broj proizvedenih jedinica dva različita proizvoda.
Iako je ovdje dan općeniti zapis, radi ilustracije, kroz dane primjere možemo zamisliti što bi takvi modeli mogli predstavljati. Dakle, ovi jednostavni primjeri mogli bi opisivati problem maksimizacije profita, odnosno minimizacije troška. Napomena: to ne znači da će ovi koeficijenti uvijek imati takvo značenje. Značenje i interpretacija prilagođavaju se kontekstu problema koji se rješava.
Još jedan jednostavan primjer, pretpostavimo da \(x_1\) predstavlja broj proizvedenih stolova, a \(x_2\) broj proizvedenih stolica. \(c_1=100\), \(c_2=50\) predstavljaju profit u eurima po proizvodu. Ograničenja su \(a_1=2\), \(a_2=1\), \(b_1=300\), što znači da proizvodnja zahtijeva dva sata rada za izradu jednog stola i jedan sat rada za izradu stolice, uz ukupno 300 sati dostupnih sati rada koji se mogu rasporediti na izradu stolova i stolica. Funkcija cilja postaje:
\(Max\ 100x_1+50x_2\)
uz ograničenja:
\(2x_1+x_2≤300\)
\(x_1≥0\)
\(x_2≥0\)
Općenitije, u linearnom programiranju model se može zapisati u matričnom obliku:
\[ \text{Max } z = c^T x, \]
\[ Ax = b, \]
\[ x \geq 0. \]
Gdje su:
\[ c = \begin{bmatrix} c_1 \\ \vdots \\ c_n \end{bmatrix}, \, b = \begin{bmatrix} b_1 \\ \vdots \\ b_m \end{bmatrix}, \, x = \begin{bmatrix} x_1 \\ \vdots \\ x_n \end{bmatrix}, A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1m} \\ a_{21} & a_{22} & \cdots & a_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nm} \end{bmatrix}\]
Ovdje je:
Naravno, funkcija cilja može se postaviti i kao minimizacija.
Pogledajmo kako to izgleda kroz primjer. Neka je zadan sljedeći model:
\[ \text{Min } z = c^T x, \]
\[ Ax \geq b, \]
\[ x \geq 0, \]
Gdje su:
\[ c = \begin{bmatrix} 2 \\ 3 \end{bmatrix}, \, A = \begin{bmatrix} 1 & 1 \\ 3 & 2 \\ 1 & 2 \end{bmatrix}, \, b = \begin{bmatrix} 2 \\ 4 \\ 3 \end{bmatrix}, \, x = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}. \]
Navedeno se može zapisati kao:
\[ \text{Min } z = 2x_1 + 3x_2, \] \[ x_1 + x_2 \geq 2, \]
\[ 3x_1 + 2x_2 \geq 4, \]
\[ x_1 + 2x_2 \geq 3, \]
\[ x_1, x_2 \geq 0. \]
U sklopu ovog kolegija, kontinuirano ćemo koristiti oba načina zapisa. Nadalje, bilo koji model u linearnom programiranju može biti sveden na standardnu formu ili kanonski zapis dodavanjem dodatnih i dopunskih varijabli (više o tome nešto kasnije).
U nastavku ćemo se posvetiti struktriranju problema temeljem opisa problema. To se svodi na pravilno iščitavanje i zapis u obliku matematičkog modela. Svaki od sljedećih 11 primjera bit će malo drugačije objašnjen s ciljem temeljitog razumijevanja kako iščitati elemente problema, koncipirati problem i strukturirati ga (zbog toga što možda opis iz jedne perspektive raščlanjivanja problema neće svakom odgovarati, pa će opis iz druge perspektive pomoći; uostalom, ovo pomaže pri razvoju fleksibilnosti i omogućuje fokusiranje na osnovne elemente, neovisno iz koje im perspektive pristupamo). Svakim primjerom dodatno ćete razvijati sposobnost analitičkog razmišljanja i strukturiranog pristupa rješavanju problema, što će vam pomoći u prepoznavanju ključnih elemenata problema u stvarnom svijetu.
Osim toga, ovdje će se naći jednostavniji i kompleksniji primjeri. Možda će vam neki od ovih primjera biti i previše kompleksan u početku, no možete se onda usmjeriti na jednostavnije primjere i uvijek ćete se moći naknadno vratiti na zahtjevnije primjere. Dakle, ovisno o svom trenutnom razumijevanju, slobodno preskočite primjere koji vam djeluju preteško ili vam tematika nije zanimljiva i vratite im se kasnije kada budete spremni.
Također, važno je odmah napomenuti da će primjeri u nastavku pripadati različitim područjima, a smisao toga jest naglasiti prenosivost koncepta i interdisciplinarnost operacijskih istraživanja. Primjeri su osmišljeni kako bi ilustrirali stvarne i realistične situacije u različitim područjima – od poljoprivrede i prehrane do tehnologije i industrije – pokazujući kako linearno programiranje može biti alat za rješavanje različitih izazova. Na taj način, moći ćete bolje savladati osnovne koncepte i njihovu primjenjivost i prenosivost na različite problemske situacije. To znači da ćete naučeno moći primjenjivati neovisno u kojoj industriji na kraju završite raditi.
Ključni pojmovi:
Jedna mala tvrtka za hosting aplikacija ima dva servera, Server A i Server B. Hosting je usluga koja omogućava pohranjivanje i pristup web stranicama, aplikacijama ili drugim digitalnim sadržajima putem interneta. Hosting aplikacija odnosi se na pružanje prostora i resursa na serverima (računalnim sustavima) gdje su aplikacije smještene i pokrenute. Kada koristite neku aplikaciju, poput web trgovine, servisa za streaming, ili poslovne aplikacije, ona je najčešće smještena na udaljenim serverima koji omogućuju njezino funkcioniranje. Tvrtke koje pružaju hosting usluge osiguravaju da aplikacije rade 24/7, budu dostupne korisnicima, i imaju odgovarajuću podršku u slučaju problema.
Simbolična ilustracija
Izvor: DALL-E
U ovom slučaju, serveri pružaju procesorsko vrijeme za hosting aplikacija klijenata. Procesorsko vrijeme označava količinu vremena koju server koristi za obradu zadataka aplikacije. Svaki put kada korisnik otvori aplikaciju, unese podatke ili koristi njezine funkcionalnosti, server koristi svoje procesore za obradu tih zahtjeva. Procesorsko vrijeme mjeri se u satima i predstavlja jedan od ključnih resursa koje hosting tvrtke nude klijentima. Više procesorskog vremena znači i veći trošak za klijenta.
Procesorsko vrijeme mjeri se u satima i predstavlja resurs kojim tvrtka mora pažljivo upravljati. Svaki sat rada servera donosi prihod tvrtki: Server A generira 40 eura po satu, dok Server B, zbog svoje veće snage i učinkovitosti, generira 50 eura po satu. Tvrtka želi maksimizirati prihod od prodaje procesorskih sati, no suočava se s nekoliko operativnih ograničenja koja utječu na njihovo planiranje.
Server B, iako pouzdan, zahtijeva redovno održavanje kako bi zadržao visoku razinu performansi. Zbog toga ne može raditi više od 8 sati dnevno. Server A nema takvo specifično ograničenje, ali oba servera dijele zajednički energetski sustav. Ograničenja napajanja dopuštaju kombinirani rad oba servera od maksimalno 28 sati dnevno. Ovo znači da tvrtka mora pažljivo odlučiti koliko će sati dnevno svaki server raditi, uzimajući u obzir njihovu maksimalnu iskoristivost i ograničene resurse.
Tvrtka se suočava s izazovom kako rasporediti dostupne sate između ova dva servera na način koji će donijeti najveći mogući prihod, dok istovremeno poštuje ograničenja održavanja i energetskih resursa.
Na početku strukturiranja problema, često će nam biti korisno kreirati tablicu kroz koju možemo lakše popratiti odnose navedene u tekstu. Na primjer, serveri mogu biti zadani u recima, što znači da će ostali podaci biti navedeni u stupcima, a u ovom slučaju to su, prihodi po satu i dostupni sati rada dnevno.
Server | Prihod po satu (EUR) | Maksimalno sati rada dnevno |
---|---|---|
Server A | 40 | 24 * |
Server B | 50 | 8 |
Ukupno | max | 28 (kombinirano) |
*
iako nije navedeno u tekstu zadatka, možemo logički zaključiti da je moguće dnevno raditi najviše 24 sata.
Varijable odluke
Varijable odluke u ovom slučaju definiraju ključne odluke koje tvrtka za hosting aplikacija mora donijeti kako bi postigla optimalno rješenje problema, uzimajući u obzir postavljena ograničenja i poslovne ciljeve. One predstavljaju osnovne nepoznanice u problemu koje želimo odrediti, a u ovom slučaju odnose se na broj sati rada svakog servera dnevno. One zapravo odgovaraju na pitanje “kako rasporediti dostupne sate između ova dva servera na način koji će donijeti najveći mogući prihod?”
Kako iščitavamo varijable odluke u ovom slučaju?
Identifikacija ključnih resursa:
Ključni resurs u ovom problemu je procesorsko vrijeme servera, izraženo u satima. Tvrtka želi maksimizirati prihod, što znači da broj sati rada svakog servera predstavlja odluku koju treba optimizirati. Serveri su fizički ograničeni u pogledu dostupnog vremena rada, što direktno povezuje varijable odluke s tehničkim i operativnim ograničenjima.
Server A može generirati 40 eura prihoda po satu rada, dok Server B generira 50 eura po satu rada. Prihod koji svaki server ostvaruje direktno je proporcionalan broju sati koje provede u radu. Stoga je broj sati rada na svakom serveru ključna odluka koja utječe na ukupni prihod tvrtke.
Tvrtka mora odlučiti koliko će sati dnevno svaki server raditi, uzimajući u obzir tehnička ograničenja:
Formulacija varijabli odluke
Varijable odluke definiramo kako bismo izrazili ove odluke matematički:
Vrijednosti varijabli odluka predstavljaju koliko će sati rada tvrtka dodijeliti svakom serveru u jednom danu. Varijable odluke osnova odakle uvijek krećemo, jer predstavljaju srž problema – upravo na temelju njih tvrtka može optimizirati korištenje svojih resursa (procesorskog vremena) kako bi ostvarila najveći mogući prihod, uz poštivanje svih tehničkih i operativnih ograničenja.
Bez pravilne definicije i razumijevanja varijabli odluke, matematički model problema ne bi imao jasno značenje niti praktičnu vrijednost.
Dakle, ove varijable pokrivaju dvije ključne odluke koje tvrtka mora donijeti – koliko sati dnevno dodijeliti svakom serveru. Matematički, \(x_1\) i \(x_2\) su veličine koje želimo odrediti kako bismo maksimizirali prihod (ovo će biti funkcija cilja), a istovremeno su vezane uz ograničenja. Zato \(x_1\) i \(x_2\) predstavljaju varijable odluke.
Napomena: Varijable u modelima linearnih programa ne moraju biti nužno nazvane kao \(x_1,x_2,…,\) iako je to najčešći i standardizirani način u matematičkom kontekstu. Nazivi varijabli mogu biti fleksibilni i prilagođeni specifičnom problemu, sve dok su:
U nekim situacijama ćete radije koristiti i druga slova, primjerice \(a, b, c,...\). Varijable mogu nositi imena koja opisuju njihovu funkciju ili značenje, na primjer, u proizvodnom modelu: \(broj_{Stolova},broj_{Stolica},broj_{Ormara}\). Ako imate više sličnih varijabli, možete koristiti kombinacije slova i brojeva za grupiranje, npr: \(p_1,p_2,p_3\) za različite proizvode i \(k_1,k_2\) za kapacitete različitih skladišta. Varijable možete imenovati koristeći skraćenice povezane s problemom: \(trosak_{HR}\) za troškove u Hrvatskoj ili \(prodaja_{SAD}\) za prodaju u SAD-u.
Jednostavna pravila za nazive varijabli:
Funkcija cilja
Funkcija cilja u problemima linearnog programiranja izražava osnovni cilj koji želimo postići. U ovom slučaju, funkcija cilja definirana je time što tvrtka za hosting aplikacija želi postići – maksimizirati ukupan prihod ostvaren prodajom procesorskih sati dvaju servera. Detaljno objašnjenje kako iščitavamo funkciju cilja iz problema povezano je s kontekstom poslovanja tvrtke, prirodom resursa i odnosima između varijabli.
Identifikacija osnovnog cilja
Identifikacija elemenata funkcije cilja (iliti idemo sad to raščlaniti na elemente)
Prihod po satu rada:
Varijable odluke:
Ukupan prihod za pojedini server izračunava se kao umnožak broja sati rada i prihoda po satu:
Definiranje ukupnog prihoda za oba servera
Kontekst poslovanja:
Prihod po satu:
Varijable odluke:
Zašto je funkcija cilja važna?
Ograničenja
Ograničenja u problemu linearne optimizacije definiraju granice i pravila unutar kojih se rješenje mora nalaziti. U situaciji gdje ne bi postojala ograničenja resursa, maksimizacija funkcije cilja mogla bi poprimiti beskonačno velike vrijednosti, no to ne bi bilo realistično - što god da radimo, to činimo pomoću određenih resursa i ti resursi su ograničeni.
U ovom slučaju, ograničenja se odnose na radne sate servera i njihov kombinirani rad zbog tehničkih, operativnih i resursnih uvjeta. Evo kako ta ograničenja iščitavamo iz zadatka i povezujemo ih s kontekstom:
Kako ograničenja pomažu u strukturiranju problema?
Funkcija cilja
\[max\ 40x_1 + 50x_2\]
Ograničenja
\[x_2 \leq 8\]
\[x_1 \leq 24\]
\[x_1 + x_2 \leq 28\]
\[x_1 \geq 0\]
\[x_2 \geq 0\]
Ovaj primjer predstavlja jednostavan, ali intuitivan model linearnog programiranja koji se koristi za optimizaciju resursa u kontekstu poslovanja. Kroz definiranje varijabli odluka, funkcije cilja i ograničenja, jasno se ilustrira kako strukturirati problem kako bi se maksimizirao prihod od servera, unatoč tehničkim i operativnim ograničenjima. Rješenje modela osigurava racionalnu i optimalnu alokaciju resursa, olakšavajući donošenje poslovnih odluka.
Ovaj primjer pokazuje da čak i jednostavan model može imati značajan utjecaj na poslovne operacije, pružajući smjernice za maksimizaciju učinka dostupnih resursa unutar zadanih ograničenja. Korištenjem analitičkog pristupa, tvrtka može izvući maksimalnu korist iz svojih kapaciteta, što je ključno za povećanje profitabilnosti i operativne učinkovitosti.
Prikazivanje problema kroz tablicu i detaljno raščlanjivanje svakog aspekta (varijable odluke, funkcije cilja i ograničenja) pomaže razumijevanju kako apstraktni matematički koncepti imaju praktičnu primjenu u stvarnom poslovanju. Jasno objašnjenje funkcije cilja i ograničenja također pokazuje da je optimizacija resursa ključna za povećanje efikasnosti i maksimizaciju koristi. Osim toga, ovaj primjer pokazuje kako linearno programiranje može biti koristan alat za rješavanje problema optimizacije, čak i u jednostavnim situacijama. Iako je ovaj model bitno pojednostavljen, s dvije varijable i nekoliko ograničenja, i dalje prenosi osnovnu ideju – matematičko strukturiranje problema može omogućiti bolje donošenje odluka.
Sposobnost formuliranja i rješavanja ovakvih problema može biti izuzetno korisna vještina u različitim industrijama, uključujući IT, logistiku, proizvodnju i financije. Primjer također ilustrira interdisciplinarnu prirodu optimizacije – razumijevanje tehničkih, operativnih i poslovnih aspekata omogućava stvaranje modela koji su praktični i primjenjivi. Ovaj primjer nam služi kao polazišna točka za razvijanje vještina optimizacije i analitičkog razmišljanja koje su primjenjive u stvarnom svijetu.
Simbolična ilustracija
Izvor: DALL-E
Zaposleni ste kao manager tvrtke Tab d.o.o., koja je proizvođač tableta (prijenosnih elektroničkih uređaja). Procjenjujete ulazak na tržište srednje i visoke kvalitete tableta.
Temeljem unutarnje kontrole, utvrđeno je da se proizvodnja sastoji od sljedećih proizvodnih operacija: pripreme materijala, izrade kućišta, izrade elektroničkih dijelova i izrade maske.
Tablično je prikazano potrebno vrijeme po aktivnosti za tablete srednje, odnosno visoke kvalitete. Tab d.o.o. ima ograničen broj zaposlenika, a time i radnih sati mjesečno na raspolaganju, i to: 630 sati u odjelu za pripremu materijala, 600 sati u odjelu za izradu kućišta, 708 sati u odjelu za izradu elektroničkih dijelova i 135 sati za izradu maski.
U računovodstvu su procijenili cijene obje vrste tableta, koje bi trebale doprinijeti profitu po jedinici proizvoda: 90 eura tableti srednje kvalitete i 100 eura tableti visoke kvalitete. Temeljem dobivenih podataka, kao manager proizvodnje, morate procijeniti mjesečnu količinu proizvodnje tableta srednje i visoke kvalitete uz korištenje dostupnih resurse odjela i maksimizaciju profita.
Aktivnost/tablet | Srednja kvaliteta | Visoka kvaliteta |
---|---|---|
Priprema materijala | 0.7 sati | 1 sat |
Izrada kućišta | 0.5 sati | 0.8 sati |
Izrada elektroničkih dijelova | 1 sat | 0.6 sati |
Izrada maske | 0.1 sat | 0.25 sati |
Podaci iz tablice iščitavaju se na sljedeći način:
Za proizvodnju jedne jedinice tableta srednje kvalitete, potrebno je 0.7 sati u odjelu pripreme materijala, 0.5 sati u odjelu izrade kućišta, 1 sat u odjelu izrade elektroničkih dijelova i 0.1 sat u odjelu izrade maski.
Za proizvodnju jednog tableta visoke kvalitete, potreban je 1 sat u odjelu pripreme materijala, 0.8 sati u odjelu izrade kućišta, 0.6 sati u odjelu izrade elektroničkih dijelova i 0.25 sati u odjelu izrade maski.
Podaci iz tablice mogu se iščitavati i vodoravno. Tako je vrijeme u odjelima moguće rasporediti po zadanim vremenima proizvodnje, uz uvjet da se poštuje raspodjela s obzirom na izradu tableta srednje i visoke kvalitete.
U odjelu za pripremu materijala, potrebno je 0.7 sati za pripremu materijala za tablet srednje kvalitete, a 1 sat za tablet visoke kvalitete. U odjelu za izradu kućišta, tablet srednje kvalitete iziskuje 0.5 sati za izradu, a visoke 0.8 sati.
U odjelu za izradu elektroničkih dijelova, za komad proizvoda srednje kvalitete potrebno je utrošiti 1 sat, a za proizvod visoke kvalitete 0.6 sati. Naposljetku, u odjelu izrade maske potrebno je 0.1 sat za izradu maske tableta srednje kvalitete i 0.25 sati za izradu maske tableta visoke kvalitete.
Varijable odluke
Veličine koje tražimo predstavljaju varijable odluke:
Funkcija cilja
Cilj koji se ostvaruje putem tih varijabli odluka zapisuje se funkcijom cilja (minimizacija ili maksimizacija; u ovom slučaju tražimo „maksimizaciju profita“). Ponekad je funkciju cilja potrebno deducirati iz opisa slučaja. Ako je u pitanju dobit, onda će se raditi o maksimizaciji. Ako su u pitanju trošak ili rizik, tada će u pitanju biti minimizacija.
Ukoliko varijable odluke (ono što se traži) nisu eksplicitno navedene u opisu problema, tada je to moguće deducirati s obzirom na postavljenu funkciju cilja (varijable odluke su, uz koeficijente, elementi funkcije cilja). U ovom slučaju u pitanju je maksimizacija profita. Profit (prema dostupnim podacima) ovisi o doprinosu profitu po jedinici proizvoda i količini proizvoda (u ovim situacijama pojednostavljujemo odnose i pretpostavljamo da će sva proizvedena količina biti prodana).
Funkcija cilja je maksimizacija ukupnog profita, odnosno zbroja doprinosa profita po jedinici proizvoda za obje vrste tableta:
\(max\ 90x_1 + 100x_2\).
Ograničenja
Ograničenja su uvjeti koji moraju biti ispoštovani pri utvrđivanju varijabli odluke. U ovom slučaju, ograničenja se odnose na dostupne sate rada po odjelima. Sati rada su resursi koje poduzeće može (i treba) koristiti pri optimizaciji proizvodnje. Ipak, ti resursi nisu neograničeni – u svakom odjelu zaposlen je određen broj djelatnika i samim time dostupan je određen broj sati rada. Na primjer, u odjelu za pripremu materijala dostupno je 630 radnih sati mjesečno i to znači da je moguće iskoristiti 630 ili manje radnih sati u tom odjelu. To je vrijeme potrebno rasporediti na izradu dva proizvoda, pri čemu će do 630 dostupnih sati rada biti raspoređeno uzimajući u obzir da je potrebno po 0.7 sati za izradu svakog tableta srednje kvalitete, a po 1 sat za izradu svakog tableta visoke kvalitete.
U odjelu za pripremu materijala, imamo na raspolaganju do 630 sati rada mjesečno, a ti sati se troše po 0.7 sati pri proizvodnji svakog tableta srednje kvalitete i 1 sat pri proizvodnji tableta visoke kvalitete. To možemo zapisati na sljedeći način:
U odjelu za izradu kućišta, imamo na raspolaganju do 600 sati rada mjesečno, a ti sati se troše po 0.5 sati pri proizvodnji svake jedinice \(x_1\) i 0.8 sat pri proizvodnji svake jedinice \(x_2\). To možemo zapisati na sljedeći način:
U odjelu za izradu elektroničkih dijelova, imamo na raspolaganju do 708 sati rada mjesečno, a ti sati se troše po 1 sat pri proizvodnji svakog komada tableta srednje kvalitete i 0.6 sati pri proizvodnji svakog komada tableta visoke kvalitete. To možemo zapisati na sljedeći način:
U odjelu za izradu maskica, imamo na raspolaganju do 135 sati rada mjesečno, a ti sati se troše po 0.1 sat pri proizvodnji svakog komada tableta srednje kvalitete i 0.25 sati pri proizvodnji svakog komada tableta visoke kvalitete. To možemo zapisati na sljedeći način:
Osim toga, moramo uvjetovati da varijable ne smiju poprimiti negativne vrijednosti: \(x_1, x_2 \geq 0\).
Navedeno iščitavanje i razmišljanje o odnosima u primjeru potrebno je sumirati i zapisati u obliku linearnog programa. Potrebno je odrediti preporučene količine proizvodnje tableta srednje kvalitete (što ćemo označiti s \(x_1\)) i tableta visoke kvalitete (što ćemo označiti s \(x_2\)) uz koje dolazi do maksimizacije profita uz dana ograničenja. Dakle, \(x_1\) i \(x_2\) su varijable odluke. S obzirom da se utvrđuju količine, važno je definirati i da one ne mogu poprimiti negativne vrijednosti.
Funkcija cilja:
\[
\text{Max } 90x_1 + 100x_2 \quad \text{(maksimizacija profita)}
\]
Ograničenja:
\[
\begin{aligned}
0.7x_1 + x_2 &\leq 630 \quad \text{(priprema materijala)} \\
0.5x_1 + 0.8x_2 &\leq 600 \quad \text{(izrada kućišta)} \\
x_1 + 0.6x_2 &\leq 708 \quad \text{(izrada elektroničkih dijelova)} \\
0.1x_1 + 0.25x_2 &\leq 135 \quad \text{(izrada maske)} \\
x_1, x_2 &\geq 0 \quad \text{(uvjet ne-negativnosti)}
\end{aligned}
\]
Ovako zadan model u okviru matematičkog programiranja naziva se program. Ako su zadane funkcije i ograničenja linearni (varijable na prvu potenciju), tada se radi o linearnom programu. Elementi ovog modela su varijable odluke (količine proizvoda srednje i visoke kvalitete), jednadžbe ili nejednadžbe (ograničenja) te funkcija cilja (maksimizacija profita).
U ovom primjeru vidjeli smo kako analizirati proizvodni proces i povezati ključne elemente problema s matematičkim modelom. Ključne točke su identifikacija varijabli odluke (broj tableta svake kvalitete), pravilno postavljanje funkcije cilja (maksimizacija profita) i definiranje ograničenja na temelju raspoloživih resursa.
Obiteljsko poljoprivredno gospodarstvo (OPG) „Zemljani radovi“ stoji pred izazovom kako najbolje iskoristiti svojih 100 hektara zemlje u nadolazećoj sezoni sadnje. Tradicionalno, OPG se bavi uzgojem tri glavne kulture: kukuruza, pšenice i soje. Svaka od ovih kultura ima svoju tržišnu vrijednost, trošak proizvodnje i specifične potrebe koje su vezane uz uvjete sadnje i obrade.
Do nedavno, u Hrvatskoj je šparoga pretežno znana kao povrće koje se bere u inozemstvu radi zarade. No, posljednjih godina šparoga je postala sve popularnija kao domaća kultura, naročito u Vukovarsko-srijemskoj županiji. Iako je šparoga zahtjevna kultura koja zahtijeva stalno održavanje, mnogi poljoprivrednici su prepoznali njenu veću isplativost u odnosu na pšenicu i kukuruz, prema izvještaju portala poslovni.hr. Ova situacija postavlja pitanje kako optimalno rasporediti raspoložive površine između ove tri kulture kako bi se maksimizirala ukupna dobit.
Simbolična ilustracija
Izvor: DALL-E
Uz financijske parametre, OPG također mora uzeti u obzir razne ugovorne obveze, tržišnu potražnju i agronomske prakse kako bi osiguralo najveći mogući prinos i dobit:
Varijable odluke
Iz teksta zadatka: “kako optimalno rasporediti svaki hektar zemlje”
Varijable odluke predstavljaju površinu (u hektarima) koja će biti zasađena svakom od četiri kulture:
Ove varijable su odabrane jer izravno utječu na funkciju cilja – maksimizaciju ukupne dobiti – i moraju zadovoljiti sva ograničenja vezana uz uvjete sadnje i obrade. Varijable odluke predstavljaju odluke koje OPG mora donijeti o tome kako rasporediti ukupno dostupnu površinu od 100 hektara između različitih kultura.
Funkcija cilja
Iz teksta zadatka: “kako optimalno rasporediti svaki hektar zemlje kako bi se postigla najveća moguća ukupna dobit”
Funkcija cilja definira što OPG želi postići. U ovom slučaju, cilj je maksimizirati ukupnu dobit od zasađenih kultura. Dobit po hektaru za svaku kulturu navedena je u opisu problema:
\(3200x_1\): dobit po hektaru za šparoge iznosi 3200 eura.
\(500x_2\): dobit po hektaru za pšenicu iznosi 500 eura.
\(700x_3\): dobit po hektaru za kukuruz iznosi 700 eura.
\(1000x_4\): dobit po hektaru za soju iznosi 1000 eura.
kako se radi o ukupnoj dobiti, onda moramo sve to zbrojiti, pa dobivamo \(3200x_1 + 500x_2 + 700x_3 + 1000x_4\)
Cilj je maksimizirati ukupnu dobit, odabirući optimalne vrijednosti za \(x_1\),\(x_2\),\(x_3\) i \(x_4\). Koeficijenti (3200, 500, 700, 1000) reflektiraju relativnu profitabilnost svake kulture po hektaru, omogućujući OPG-u da preferira kulture s višim koeficijentima (poput šparoga i soje). Dakle, funkcija cilja je: \(max\ 3200x_1 + 500x_2 + 700x_3 + 1000x_4\)
Ograničenja
Ograničenja osiguravaju da odluke koje donosimo budu izvedive i u skladu s praktičnim uvjetima i resursima. U ovom modelu, ograničenja povezuju raspoloživu površinu, tržišne zahtjeve, agronomske prakse i ugovorne obveze kako bi se osigurala održivost i maksimalna korist za OPG.
Ukupna dostupna površina
Minimalna površina za kukuruz
Maksimalna površina za soju
Odnos kukuruza i pšenice
Maksimalna površina za pšenicu
Maksimalna površina za šparoge
Nenegativnost površina
Funkcija cilja (maksimizacija dobiti po hektaru):
\(Z = 3200x_1 + 500x_2 + 700x_3 + 1000x_4\)
Ograničenja:
\(x_1 + x_2 + x_3 + x_4 = 100\) (ukupna dostupna površina je 100 hektara)
\(x_3 \geq 20\) (minimalna površina za kukuruz zbog ugovora s kooperativama)
\(x_4 \leq 40\) (maksimalna površina za soju zbog rotacije usjeva)
\(x_3 - x_2 \geq 10\) (barem 10 hektara više kukuruza nego pšenice)
\(x_2 \leq 35\) (ograničenje za pšenicu zbog opreme i resursa)
\(x_1 \leq 45\) (maksimalna površina za šparoge zbog dostupnosti sjemena)
\(x_1, x_2, x_3, x_4 \geq 0\) (površine zasađene svakom kulturom moraju biti ne-negativne)
Simbolična ilustracija
Izvor: DALL-E
Financijski savjetnici upravljaju sredstvima brojnih kompanija i imućnih klijenata. Financijska strategija kroji se prema potrebama klijenata. Novi klijent je ovlastio financijskog savjetnika za investiranje iznosa do 1.2 milijuna eura u dva investicijska fonda: dionički i novčani fond.
Udjel u dioničkom fondu košta 50 €, a prosječni rast cijene je 10%. Udjel u novčanom fondu stoji 100 € uz prosječni rast od 4%. Klijent želi minimizirati rizik uz uvjet minimalnog godišnjeg prihoda od investicije od 60 000 €. Prema analizi softvera za procjenu rizika, indeks rizičnosti dioničkog fonda je 8, dok za novčani fond taj indeks iznosi 3.
Klijent je specificirao i to da želi minimalno 300 000 € uložiti u novčani fond. Koliko bi kojih udjela trebalo kupiti kako bi se minimizirao rizik uz dana ograničenja? Koliko će godišnjeg prihoda tako raspoređena investicija generirati? Financijskog savjetnika zanima i kakva bi bila raspodjela investicija kad bi glavni kriterij bila maksimizacija profita?
Na početku se pristupa strukturiranju problema. Pri tome će pomoći tablični zapis podataka iz opisa problema.
Kategorija | Dionički fond | Novčani fond | Novac na raspolaganju |
---|---|---|---|
Ograničenje 1 - cijena | 50,00 | 100,00 | 1.200.000,00 |
Ograničenje 2 - prihod | 0,10 | 0,04 | 60.000,00 |
Ograničenje 3 - minimalni ulog | 1,00 | 300.000,00 | |
Ograničenje 4 - rizik | 8,00 | 3,00 | min |
U problemu su navedeni ključni dijelovi: ciljevi, ograničenja, i informacije potrebne za definiranje matematičkog modela. Evo kako svaki dio teksta povezujemo s elementima LP:
Varijable odluke:
Iz opisa problema: „Koliko bi kojih udjela trebalo kupiti…?“
Ovdje tražimo broj udjela koji treba kupiti u dioničkom fondu (\(x_1\)) i novčanom fondu (\(x_2\)).
Varijable odluke su upravo ti brojevi udjela jer o njima ovisi ispunjenje ciljeva klijenta (minimizacija rizika ili maksimizacija profita) i njihovo raspoređivanje mora zadovoljiti zadana ograničenja.
Dakle, varijable odluke \(x_1\) i \(x_2\) predstavljaju broj udjela koji treba kupiti u dioničkom i novčanom fondu. One su direktno uključene u:
Zašto su baš to varijable odluke?
Ograničenja:
Ukupno ulaganje: „Klijent želi investirati iznos do 1.2 milijuna eura.“
Minimalni prihod: „Uz uvjet minimalnog godišnjeg prihoda od 60000 €.“
Minimalni ulog u novčani fond: „Minimalno 300000 € uložiti u novčani fond.“
Ne-negativnost varijabli: „Koliko bi kojih udjela trebalo kupiti?“
Funkcija cilja
Minimizacija rizika: „Klijent želi minimizirati rizik“
Maksimizacija prinosa: „Kolika bi bila raspodjela investicija kad bi glavni kriterij bila maksimizacija profita?“
Raspodjela udjela s obzirom na minimizaciju rizika
Funkcija cilja:
\[ \text{Min } 8x_1 + 3x_2 \]
Ograničenja:
\[ \begin{aligned} 50x_1 + 100x_2 &\leq 1200000 \\ 0.1 \cdot 50 \cdot x_1 + 0.04 \cdot 100 \cdot x_2 &\geq 60000 \\ x_2 &\geq \frac{300000}{100} \\ x_1, x_2 &\geq 0 \end{aligned} \]
Raspodjela udjela s obzirom na maksimizaciju profita
Funkcija cilja:
\[ \text{Max } 0.1 \cdot 50 \cdot x_1 + 0.04 \cdot 100 \cdot x_2 \]
Ograničenja:
\[ \begin{aligned} 50x_1 + 100x_2 &\leq 1200000 \\ 0.1 \cdot 50 \cdot x_1 + 0.04 \cdot 100 \cdot x_2 &\geq 60000 \\ x_2 &\geq \frac{300000}{100} \\ x_1, x_2 &\geq 0 \end{aligned} \]
Ovaj primjer ilustrira kako povezati financijske ciljeve klijenta s matematičkim modelom. Poseban fokus stavljen je na varijable odluke (broj udjela u fondovima), funkciju cilja (minimizacija rizika ili maksimizacija prihoda) te ograničenja vezana uz budžet i minimalni prihod. Naučili smo kako različiti ciljevi zahtijevaju prilagodbu funkcije cilja, dok ograničenja ostaju jasno definirana iz problema.
Uz malo istraživanja, možete kreirati sličan model za alokaciju vlastite štednje i investicija. Takav model može vam pomoći u donošenju informiranih financijskih odluka i optimizaciji vašeg kapitala za postizanje ciljeva, poput minimizacije rizika ili povećanja povrata.
Poduzeće ElektroX d.o.o. proizvodi SSD M.2 komponente koje imaju namjeru distribuirati preko četiri kanala distribucije: trgovačih putnika, distributera za poduzeća, maloprodajnih dućana unutar države i on-line prodajom.
Simbolična ilustracija
Izvor: DALL-E
Profit ostvaren od prodaje jednog SSD-a preko trgovačkih putnika iznosi 65 €, potreban trošak oglašavanja iznosi 9 € po prodanom proizvodu, a prodajni predstavnici potroše 3 sata na prodaju jednog proizvoda. Profit ostvaren od prodaje jednog SSD-a preko distributera za poduzeća iznosi 76 €, potreban trošak oglašavanja iznosi 8 € po prodanom proizvodu, a prodajni predstavnici potroše 3 sata na po prodaji proizvoda. Profit ostvaren od prodaje jednog SSD-a preko maloprodajnih dućana unutar države iznosi 75 €, potreban trošak oglašavanja iznosi 10 € po prodanom proizvodu, a prodajni predstavnici potroše 4 sata na prodaju jednog proizvoda. Profit ostvaren od prodaje jednog SSD-a preko on – line prodaje iznosi 68 €, potreban trošak oglašavanja iznosi 11 € po prodanom proizvodu, dok nema naknade prodajnim predstavnicima. ElektroX d.o.o. ima na raspolaganju budžet od 7200 € za oglašavanje i može pokriti maksimalno 2000 sati rada prodajnih predstavnika.
Menadžment je odlučio proizvoditi točno 800 proizvoda ove proizvodne linije. S obzirom na postojeći ugovor s maloprodajnim dućanima unutar države, obvezani su ih opskrbiti s minimalno 100 proizvoda. Menadžment ElektroX d.o.o. mora donijeti odluku o alokaciji proizvoda po distribucijskim kanalima koja će dovesti do maksimizacije profita, poštujući zadana ograničenja.
Ovdje tablica nije dana u tekstu zadatka, ali nam može biti korisna pri sistematizaciji dostupnih podataka, pa ju možemo kreirati sami.
Kanal distribucije | Profit po SSD-u (€) | Trošak oglašavanja po SSD-u (€) | Vrijeme prodajnog predstavnika po SSD-u (sati) | Minimalni broj SSD-ova |
---|---|---|---|---|
Trgovački putnici | 65 | 9 | 3 | 0 |
Distributeri za poduzeća | 76 | 8 | 3 | 0 |
Maloprodajni dućani | 75 | 10 | 4 | 100 |
On-line prodaja | 68 | 11 | 0 | 0 |
Ukupno / dostupno | max | 7200 | 2000 | 800 |
Varijable odluke
Iz opisa problema: “Kako raspodijeliti 800 proizvoda između distribucijskih kanala?”
Varijable odluke predstavljaju broj proizvoda distribuiranih kroz svaki kanal:
Zašto su \(x,y,z,w\) varijable odluke?
Funkcija cilja
Iz opisa problema:
Cilj je maksimizacija profita od prodaje SSD-ova kroz četiri distribucijska kanala.
Profit za svaki kanal po prodanom proizvodu:
Ukupan profit izražava se kao: \(Max\ 65x+76y+75z+68w\)
\(x, y, z\), i \(w\) predstavljaju broj proizvoda distribuiranih kroz trgovačke putnike, distributere za poduzeća, maloprodajne dućane i on-line prodaju.
Koeficijenti (65,76,75,68) predstavljaju profit po proizvodu za svaki kanal.
Zašto maksimizacija? Profit je primarni cilj poduzeća, općenito se smatra pozitivnim aspektom koji se želi maksimizirati.
Ograničenja
Svaki kanal distribucije ima svoj trošak oglašavanja po proizvodu:
Trgovački putnici: 9 €.
Distributeri za poduzeća: 8 €.
Maloprodajni dućani: 10 €.
On-line prodaja: 11 €.
Ukupni trošak oglašavanja izražava se kao zbroj proizvoda (\(x,y,z,w\)) pomnoženih s njihovim pojedinačnim troškovima:
\(x, y, z\), i \(w\) predstavljaju broj proizvoda distribuiranih kroz trgovačke putnike, distributere za poduzeća, maloprodajne dućane i on-line prodaju. Ukupan trošak je \(9x+8y+10z+11w≤7200\)
Zašto \(≤7200\)? Budžet za oglašavanje je ograničen na 7200 €, što predstavlja gornju granicu.
Potrebni sati rada prodajnih predstavnika po proizvodu:
Trgovački putnici: 3 sata.
Distributeri za poduzeća: 3 sata.
Maloprodajni dućani: 4 sata.
On-line prodaja: 0 sati.
Ukupni broj sati rada izražava se kao zbroj:
Zašto \(≤2000\)? Dostupno je maksimalno 2000 sati rada prodajnih predstavnika, što je gornja granica.
Ukupna proizvodnja - Poduzeće je proizvelo točno 800 proizvoda:
Ugovorna obveza s maloprodajnim dućanima
Ne-negativnost varijabli
Funkcija cilja:
\[\text{max } 65x + 76y + 75z + 68w\]
Ograničenja:
\[9x + 8y + 10z + 11w \leq 7200\]
\[3x + 3y + 4z \leq 2000\]
\[x + y + z + w \leq 800\]
\[z \geq 100\]
Uvjet ne-negativnosti:
\[x, y, z, w \geq 0\]
Ovdje smo istražili problem distribucije proizvoda kroz različite kanale, gdje su varijable odluke (broj proizvoda po kanalu) osnova za optimizaciju profita. Ograničenja odražavaju realna poslovna ograničenja, poput radnih sati i budžeta za oglašavanje. Primjer naglašava važnost razumijevanja resursa i njihovog odnosa prema funkciji cilja, te pokazuje kako ograničenja oblikuju model i osiguravaju realističnost rješenja.
Ovaj način razmišljanja može se primijeniti na brojne vrste alokacija – od planiranja marketinških kampanja u vašem budućem poslu, do odlučivanja kako podijeliti vrijeme između studija i slobodnih aktivnosti.
U današnjem ubrzanom načinu života, mnogi ljudi prepoznaju potrebu za zdravom prehranom. Veganska prehrana, koja isključuje konzumaciju životinjskih proizvoda, postala je popularna zbog svojih zdravstvenih i etičkih prednosti. No, kako stvoriti nutritivno uravnotežen veganski obrok unutar ograničenog proračuna?
U ovom slučaju, nutricionist sudjeluje u kulinarskom natjecanju i mora stvoriti hranjiv veganski ručak s ograničenim proračunom od 7 eura. Ručak mora sadržavati određenu količinu proteina, vitamina, minerala, vlakana i kalorija. S obzirom na različite troškove i nutritivne vrijednosti pojedinih sastojaka, važno je odabrati optimalnu kombinaciju koja će klijentu pružiti sve potrebne nutrijente uz što niže troškove. Pritom, obrok također treba osigurati raznolikost u teksturi i okusu kako bi žiri bio zadovoljan.
Simbolična ilustracija
Izvor: DALL-E
Ručak koji treba kreirati mora zadovoljiti sljedeće kriterije:
Dopušteni sastojci koji se uzimaju u obzir prilikom kreiranja ovog obroka su kvinoja, leća, brokula, avokado i tofu. Ne postoji nikakvo ograničenje po pitanju začina, pa oni nisu specificirani u opisu problema. Svaki od ovih sastojaka donosi svoje nutritivne vrijednosti, ali i ima svoju cijenu po gramu.
Opis sastojaka:
Ovom kombinacijom sastojaka, nutricionist treba kreirati obrok koji će zadovoljiti sve nutritivne potrebe unutar zadanog proračuna. Osim toga, potrebno je uzeti u obzir i ukupnu težinu obroka, raznolikost okusa i teksturu kako bi obrok bio ukusan i privlačan. Izazov je stvoriti obrok koji je ujedno i ekonomski prihvatljiv, koristeći optimalne količine svakog sastojka.
Prvo, ovdje moramo jasno naznačiti da ćemo se usmjeriti na nutritivne vrijednosti obroja i da apsolutno nikako ne možemo jamčiti za okus. :)
Nutricionist se suočava s izazovom optimizacije nutritivno bogatog obroka unutar zadanog proračuna. Problem uključuje odabir optimalnih količina različitih sastojaka kako bi se zadovoljili prehrambeni zahtjevi, poput minimalnog unosa proteina, vlakana i vitamina, dok se održava raznovrsnost i ukupan trošak ostaje unutar proračuna od 7€. Ovaj problem možemo riješiti pomoću linearne optimizacije.
Varijable odluke:
Varijable odluke predstavljaju količine svakog sastojka (izražene u gramima) koje će nutricionist koristiti za kreiranje obroka:
Funkcija cilja
Ograničenja
Minimalni unos proteina
Iz teksta zadatka: “Ručak mora sadržavati minimalno 25g proteina kako bi zadovoljio dnevne potrebe za proteinima.”
Svaki sastojak doprinosi unosu proteina u količini definiranoj koeficijentima:
Ukupni unos proteina je suma ovih vrijednosti, a ograničenje osigurava da ukupna količina proteina bude barem 25g: \(0.14x_1 + 0.25x_2 + 0.037x_3 + 0.02x_4 + 0.15x_5 \geq 25\)
Maksimalni broj kalorija
Minimalni unos vlakana
Iz teksta zadatka: “Ručak mora sadržavati barem 15g vlakana zbog važnosti vlakana za probavu.”
Samo brokula i avokado doprinose vlaknima:
Ovo ograničenje osigurava da ukupna količina vlakana bude barem 15g, što je važno za probavno zdravlje: \(0.05x_3 + 0.10x_4 \geq 15\)
Minimalna količina brokule
Minimalna količina avokada
Maksimalna težina obroka
Proračun
Iz teksta zadatka: “Proračun za obrok je 7€.”
Svaki sastojak ima određeni trošak po gramu:
Ukupni trošak sastojaka mora biti manji ili jednak proračunu od 7€: \(0.02x_1 + 0.01x_2 + 0.005x_3 + 0.03x_4 + 0.025x_5 \leq 7\)
Minimalna količina leće
Minimalna količina tofu-a
Nenegativnost varijabli
Funkcija cilja (minimizacija troška):
\(min\ 0.02x_1 + 0.01x_2 + 0.005x_3 + 0.03x_4 + 0.025x_5\)
Ograničenja:
\(0.14x_1 + 0.25x_2 + 0.037x_3 + 0.02x_4 + 0.15x_5 \geq 25\) - Minimalno 25g proteina
\(4x_1 + 3.3x_2 + 0.55x_3 + 2x_4 + 1.5x_5 \leq 600\) - Maksimalno 600 kalorija
\(0.05x_3 + 0.10x_4 \geq 15\) - Minimalno 15g vlakana
\(x_3 \geq 100\) - Barem 100g brokule za vitamine
\(x_4 \geq 50\) - Barem 50g avokada za kalij
\(x_1 + x_2 + x_3 + x_4 + x_5 \leq 500\) - Maksimalna težina ručka je 500g
\(0.02x_1 + 0.01x_2 + 0.005x_3 + 0.03x_4 + 0.025x_5 \leq 7\) - Proračun je 7€
\(x_2 \geq 50\) - Minimalno 50g leće za raznolikost okusa
\(x_5 \geq 60\) - Minimalno 60g tofu-a za teksturu i okus
\(x_1, x_2, x_3, x_4, x_5 \geq 0\) - nenegativnost
U ovom primjeru demonstrirali smo kako se linearno programiranje može koristiti za rješavanje izazova nutritivnog planiranja unutar ograničenog proračuna. Definiranjem varijabli odluka, funkcije cilja i niza ograničenja, stvorili smo model koji omogućava nutricionistu da odabere optimalne količine sastojaka kako bi zadovoljio sve prehrambene potrebe, ostao unutar zadanih troškova i osigurao ukupan uspjeh u kulinarskom natjecanju. Posebna vrijednost ovog modela je u njegovoj sposobnosti da u obzir uzme i praktične uvjete, poput težine obroka i raznolikosti sastojaka, čime se rješenje dodatno približava stvarnim zahtjevima.
Linearno programiranje nije korisno samo u poslovnim i proizvodnim procesima već i u svakodnevnom životu. Ovaj primjer jasno pokazuje kako možete koristiti iste alate za rješavanje problema poput planiranja nutritivno bogatih obroka, upravljanja budžetom ili maksimiziranja resursa. Ako jednog dana budete radili u prehrambenoj industriji, zdravstvenom sektoru ili se jednostavno suočite s osobnim izazovima poput kreiranja ekonomičnih, zdravih obroka, ovakav model može vam biti od velike koristi. Uz relativno jednostavne prilagodbe, isti pristup može se primijeniti u različitim scenarijima – od planiranja obroka za bolnice i škole, do izrade posebnih dijeta za sportaše ili osobe s posebnim zdravstvenim potrebama.
Obitelj Horvatić nastoji optimizirati svoj mjesečni budžet od 3000 eura kako bi uspješno pokrili sve svoje mjesečne troškove, a istovremeno i uštedjeli određenu svotu novca.
Troškovi obitelji uključuju hranu, prijevoz, zabavu i slobodno vrijeme, obrazovanje, kao i druge različite troškove. Specifični ciljevi i ograničenja obitelji Horvatić obuhvaćaju sljedeće:
Simbolična ilustracija
Izvor: DALL-E
Cilj obitelji Horvatić je pronaći optimalnu raspodjelu budžeta među različitim kategorijama troškova kako bi se postigla najveća moguća ušteda uz istovremeno zadovoljavanje svih navedenih ograničenja.
Varijable odluke
Funkcija cilja
Ograničenja
Ukupni troškovi
Troškovi hrane
Troškovi prijevoza
Troškovi za zabavu i slobodno vrijeme
Troškovi obrazovanja
Ostali troškovi
Troškovi hrane i prijevoza zajedno
Troškovi za zabavu i obrazovanje
Troškovi hrane, prijevoza i ostalih troškova
Minimalna ušteda
Uvjet nenegativosti:
Funkcija cilja (minimizacija):
\[min\ x_1+x_2+x_3+x_4+x_5\]
Ograničenja
Ukupni troškovi ne smiju premašiti budžet: \[x_1+x_2+x_3+x_4+x_5≤2500\]
Troškovi hrane ne smiju biti manji od 600 eura: \[x_1≥600\]
Troškovi prijevoza ne smiju biti manji od 200 eura: \[x_2\geq 200\]
Troškovi za zabavu ne smiju premašiti 400 eura: \[x_3≤400\]
Troškovi obrazovanja moraju biti veći od 100 eura: \[x_4\geq100\]
Troškovi obrazovanja moraju biti manji od 500 eura: \[x_4≤500\]
Ostali troškovi ne smiju biti manji od 150 eura: \[x_5≥150\]
Troškovi hrane i prijevoza zajedno ne smiju premašiti 1000 eura: \[x_1+x_2≤1000\]
Troškovi za zabavu i obrazovanje zajedno moraju biti manji od 800 eura: \[x_3+x_4<800\]
Troškovi hrane, prijevoza i ostalih troškova ne smiju premašiti 1500 eura: \[x_1+x_2+x_5≤1500\]
Minimalna ušteda mora biti 200 eura: \[x_1+x_2+x_3+x_4+x_5≤2300\]
Uvjet nenegativnosti: \[x_1, x_2, x_3, x_4, x_5 \geq 0\]
U linearnoj optimizaciji ponekad se pojavljuju ograničenja koja iz različitih aspekata reguliraju istu stvar. Neka od tih ograničenja su suvišna jer ih druga, stroža ograničenja već obuhvaćaju. U analizi modela je korisno identificirati koja su ograničenja zaista potrebna za rješavanje problema, a koja se mogu eliminirati bez gubitka informacije, jer na taj način pojednostavljujemo model i brže dolazimo do rješenja.
Primjer eliminacije redundantnog ograničenja
Zašto neka ograničenja treba zadržati
Kombinacije troškova: Iako ograničenje minimalne uštede postavlja granicu za ukupne troškove, ono ne specificira kako se ti troškovi raspodjeljuju među kategorijama. Zbog toga ograničenja poput:
Ponekad se čini da su dva ograničenja redundantna, ali zapravo služe različitim svrhama:
Na primjer, \(x_1+x_2≤1000\) (kombinirani troškovi hrane i prijevoza) i \(x_1+x_2+x_5≤1500\) (kombinirani troškovi hrane, prijevoza i ostalih troškova) oba reguliraju dijelove budžeta. Iako prvo ograničenje djeluje strože, drugo dodaje informaciju o ostalim troškovima i treba ga zadržati.
Kombinacija strožih i komplementarnih ograničenja omogućuje precizno definiranje problema i osigurava da rješenje bude realno i u skladu s prioritetima.
Ovaj primjer pruža realističan scenarij optimizacije resursa, koji je lako razumljiv jer se odnosi na svakodnevni život. Obitelj Horvatić suočava se s izazovima planiranja svog budžeta, što je iskustvo koje mnogi ljudi dijele. Model jasno pokazuje kako linearno programiranje može pomoći u donošenju odluka i omogućiti ravnotežu između potreba i ograničenja. Ipak, ne možemo jamčiti za provedbu - to ovisi o discipliniranosti članova obitelji Horvatić.
Sposobnost strukturiranja i optimizacije ovakvih problema nije korisna samo u osobnom životu nego se prenosi i na profesionalne situacije, poput upravljanja projektima, planiranja resursa ili donošenja strateških odluka. Ovaj primjer pokazuje kako linearno programiranje može imati praktičnu vrijednost u svakodnevnom životu, pružajući uvid u to kako alokacija ograničenih resursa može maksimizirati korist i omogućiti donošenje racionalnih odluka.
Start-up IronCoden razvija inovativnu mobilnu aplikaciju koja povezuje korisnike s mentorima iz različitih područja, poput karijere, zdravlja i osobnog razvoja. Na pragu lansiranja aplikacije, tim se suočava s ključnim izazovom – kako osigurati financijska sredstva potrebna za finalizaciju razvoja, pokretanje marketinške kampanje i pokrivanje operativnih troškova. Kao moderna tehnološka tvrtka, IronCoden istražuje alternativne oblike financiranja, poput crowdfundinga, venture capital ulaganja i poslovnih anđela.
Svaka opcija financiranja donosi različite uvjete. Na primjer, crowdfunding omogućuje prikupljanje sredstava bez ustupanja vlasničkog udjela, ali ovisi o atraktivnosti same aplikacije i marketingu. S druge strane, venture capital investitori nude značajna sredstva, ali zahtijevaju vlasnički udio i često sudjeluju u strateškim odlukama tvrtke. Tim također razmatra mikrokredite, koji su fleksibilniji, ali ograničeni u iznosu sredstava, i obveznice, koje zahtijevaju obvezu vraćanja s kamatama.
Izvor financiranja | Maksimalna količina sredstava (u dolarima) | Godišnja kamatna stopa | Postotak vlasničkog udjela |
---|---|---|---|
Crowdfunding | 200,000 | 5% | 0% |
Venture Capital | 500,000 | 8% | 3% |
Mikrokrediti | 150,000 | 3% | 0% |
Poslovni Anđeli | 250,000 | 7% | 1.5% |
Obveznice | 400,000 | 4% | 0% |
Tablica prikazuje različite opcije financiranja koje IronCode, startup za razvoj aplikacija, može koristiti kako bi prikupio potreban kapital od 1000000 dolara za razvoj i rast. Svaka od opcija ima specifične karakteristike koje je važno razumjeti:
Simbolična ilustracija
Izvor: DALL-E
Kako bi postigli svoje ciljeve, IronCoden mora pažljivo odabrati kombinaciju izvora financiranja koja će omogućiti potrebnih milijun dolara, uz minimalne troškove i zadržavanje kontrolnog udjela u tvrtki. Ova odluka predstavlja važnu prekretnicu za budućnost startupa i lansiranje aplikacije koja ima potencijal promijeniti industriju.
Ključno je da IronCoden nađe ravnotežu između dobivanja potrebnih sredstava i zadržavanja većinskog udjela u tvrtki. Odlučili su da za potrebe prikupljanja sredstava ne žele ustupiti više od 30% udjela u tvrtci. Također, bitno je proučiti i maksimalne količine sredstava koje svaki izvor može ponuditi.
Tvrtki je potrebno točno 1 000 000 dolara kako bi ostvarili planirani poslovni rast. Žele prikupiti sredstva uz minimalne troškove.
U stituacijama u kojima ne znamo dovoljno o kontekstu ili nam se u problemu pojavljuju pojmovi koje ne razumijemo dovoljno, moramo potražiti o čemu se radi. Ovo je prikladan primjer za ilustraciju kako ipak moramo donekle poznavati kontekst da bismo mogli pravilno postaviti problem.
Crowdfunding označava prikupljanje sredstava od velikog broja pojedinaca, obično putem digitalnih platformi. Ljudi koji podrže projekt ili ideju često ne očekuju povrat sredstava, već dobivaju simboličke nagrade, poput proizvoda ili usluga. Ovo je popularna opcija za startupe ili kreativne projekte jer ne zahtijeva ustupanje vlasničkog udjela ili vraćanje kamata, ali često ovisi o atraktivnosti ideje i marketingu.
Venture capital (VC) odnosi se na ulaganja fondova ili pojedinaca u rizične, ali potencijalno vrlo profitabilne projekte, poput tehnoloških startupa. VC ulagači često traže značajan vlasnički udio i uključuju se u donošenje strateških odluka unutar poduzeća. Iako ovakav oblik financiranja može omogućiti značajan rast, podrazumijeva dijeljenje kontrole i profita s investitorima.
Mikrokrediti su mali zajmovi, obično namijenjeni malim poduzećima ili pojedincima koji nemaju pristup tradicionalnim bankarskim uslugama. Ovi krediti često dolaze s nižim kamatnim stopama i fleksibilnijim uvjetima otplate, čime su privlačni za tvrtke u ranoj fazi razvoja koje trebaju ograničena sredstva za pokretanje ili proširenje poslovanja.
Poslovni anđeli su pojedinci s velikim osobnim kapitalom koji ulažu u rane faze poslovanja poduzeća. Osim financijskih sredstava, često nude svoje znanje, iskustvo i kontakte kako bi pomogli poduzeću da uspije. Kao i VC, poslovni anđeli obično traže vlasnički udio, ali su fleksibilniji i više usmjereni na podršku nego na strogi nadzor.
Obveznice su dugoročni financijski instrumenti kojima poduzeća prikupljaju kapital posuđujući novac od ulagača uz obvezu vraćanja glavnice i plaćanja kamata. Obveznice su atraktivan izvor financiranja jer ne zahtijevaju ustupanje vlasničkog udjela, ali poduzeće mora biti sigurno u svoju sposobnost da pravovremeno vraća dug i isplaćuje kamate.
Varijable
Varijable odluka predstavljaju količinu sredstava dobivenih iz svakog od pet ponuđenih izvora financiranja:
Funkcija cilja
Funkcija cilja definira cilj optimizacije u problemu.
Funkcija cilja u ovom problemu predstavlja minimizaciju ukupnih godišnjih troškova financiranja, koji se izražavaju kroz kamatne stope za svaki izvor financiranja
Koeficijenti (0.05, 0.08, 0.03, 0.07, 0.04) predstavljaju kamatne stope za svaki izvor financiranja zapisane u obliku proporcije, odnosno trošak po jedinici sredstava (1 dolar) dobivenih iz određenog izvora, ili preciznije:
Cilj je pronaći optimalnu kombinaciju vrijednosti varijabli \(CF\), \(VC\), \(MK\), \(PA\), \(OB\) koja minimizira ukupne troškove.
Kad povežemo (tj. pomnožimo) koeficijente koji predstavljaju kamatne stope po izvoru financiranja s varijablama i zbrojimo, dobivamo: \(min (0.05CF + 0.08VC + 0.03MK + 0.07PA + 0.04OB)\)
Funkcija cilja jasno reflektira poslovni cilj tvrtke IronCoden – minimizaciju troškova financiranja uz očuvanje operativne održivosti.
Koeficijenti (kamatne stope) odražavaju relativni trošak svakog izvora financiranja, omogućujući tvrtki da preferira povoljnije izvore (poput mikrokredita i obveznica) gdje je to moguće.
Ograničenja
Ograničenja u modelu definiraju uvjete i pravila koja tvrtka IronCoden mora zadovoljiti pri odabiru izvora financiranja. Svako ograničenje povezano je s poslovnim okolnostima i izravno utječe na varijable odluka.
Ograničenje budžeta
Tvrtka treba točno 1000000 USD za poslovni rast i pokrivanje operativnih troškova. Ovo ograničenje osigurava da iznos sredstava prikupljenih iz svih izvora zadovoljava tu potrebu.
Ukupni vlasnički udjel
Maksimalni iznosi po izvorima financiranja
Ova skupina ograničenja odražava maksimalnu količinu sredstava koja svaki izvor može ponuditi. Svako ograničenje ima specifičan kontekst povezan s kapacitetima izvora:
Maksimalni iznos sredstava putem crowdfundinga ograničen je na 200000 USD zbog kapaciteta ovog financijskog kanala.
Varijabla \(CF\) predstavlja iznos koji će tvrtka povući iz crowdfundinga.
Ako tvrtka povuče maksimalnih 200000 USD, dodatna sredstva iz ovog izvora nisu dostupna.
VC investitori spremni su uložiti maksimalno 500000 USD. Ovo ograničenje odražava kapacitete i poslovne uvjete VC fondova.
Varijabla \(VC\) označava iznos sredstava iz VC.
Ako tvrtka povuče maksimalnih 500000 USD iz VC, dodatni kapital iz ovog izvora nije dostupan.
Mikrokreditni fond može osigurati maksimalno 150000 USD. Ovo ograničenje proizlazi iz specifičnosti mikrokreditnih programa koji su često namijenjeni manjim projektima.
Varijabla \(MK\) označava iznos iz mikrokredita.
Ako tvrtka povuče 150000 USD, iscrpila je sva dostupna sredstva iz mikrokreditnog fonda.
Poslovni anđeli spremni su uložiti do 250000 USD, što odražava njihovu investicijsku strategiju i dostupne resurse.
Varijabla \(PA\) označava iznos sredstava od poslovnih anđela.
Ako tvrtka povuče 250000 USD, dodatna sredstva iz ovog izvora nisu dostupna.
Tvrtka može izdati obveznice u ukupnom iznosu do 400000 USD, što je određeno njihovom sposobnošću da servisiraju dug i tržišnim interesom.
Varijabla \(OB\) označava iznos sredstava iz obveznica.
Ako tvrtka izda maksimalan iznos obveznica, više nije moguće prikupljati sredstva ovim putem.
Nenegativnost varijabli
Funkcija cilja:
\(min (0.05CF + 0.08VC + 0.03MK + 0.07PA + 0.04OB)\)
Ograničenja:
\(CF + VC + MK + PA + OB = 1,000,000\) (ukupno sredstava)
\(0.03VC + 0.015PA ≤ 300,000\) (ukupni vlasnički udjel ne smije biti više od 30% od 1,000,000)
\(CF ≤ 200,000\) (maksimalna količina sredstava putem Crowdfundinga)
\(VC ≤ 500,000\) (maksimalna količina sredstava putem Venture Capital-a)
\(MK ≤ 150,000\) (maksimalna količina sredstava putem Mikrokredita)
\(PA ≤ 250,000\) (maksimalna količina sredstava putem Poslovnih Anđela)
\(OB ≤ 400,000\) (maksimalna količina sredstava putem Obveznica)
U ovom primjeru strukturirali smo izazov financiranja startupa koristeći linearnu optimizaciju kako bismo pokazali kako se modeliraju stvarni poslovni problemi. Definirali smo varijable odluka koje predstavljaju iznos sredstava dobivenih iz svakog financijskog izvora, funkciju cilja koja minimizira ukupne troškove financiranja te postavili ograničenja koja odražavaju specifične uvjete svakog izvora financiranja i strateške ciljeve startupa.
Ovaj model jasno pokazuje kako linearno programiranje može pomoći u donošenju optimalnih odluka u poslovnim situacijama, ako ih možemo dovoljno pojednostaviti za analizu. Kroz kvantitativnu analizu, omogućeno je informirano odlučivanje koje usklađuje financijske, strateške i operativne ciljeve.
Ako jednog dana budete pokretali vlastiti startup ili se nađete u timu koji razvija poslovne strategije, sposobnost strukturiranja i optimizacije problema poput ovog bit će vaša velika prednost. Moći ćete modelirati slične izazove – poput odabira izvora financiranja, raspodjele budžeta ili planiranja resursa – kako biste donijeli bolje odluke uz minimalne troškove i maksimalan učinak.
Simbolična ilustracija
Izvor: DALL-E
Zaposleni ste u Agenciji promocija d.o.o. Upravo Vam se javio novi klijent, poduzeće AZBC kojem je potreban savjet o odabiru i alokaciji sredstava za promociju putem medija pri dizajnu promotivne kampanje. U Agenciji promocija već ste prikupili sljedeće podatke: doseg potencijalnih klijenata (broj klijenata koji će vidjeti oglas), trošak po oglasu, maksimalni broj puta angažmana medija (dostupnost medija) te rejting kvalitete izloženosti za 5 medija. Podatci su prikazani tablicom.
Oglašivači / Mediji | Doseg | Trošak (€) | Dostupnost medija | Kvaliteta izloženosti |
---|---|---|---|---|
1. Dnevna TV (1 min), postaja Pula, DTV | 1,000 | 1,500 | 15 | 65 |
2. Večernja TV (30 sek), postaja Pula, VTV | 2,000 | 3,000 | 10 | 90 |
3. Dnevne novine (cijela stranica), Glas Pule, DNGP | 1,500 | 400 | 25 | 40 |
4. Nedjeljni magazin (1/2 stranice u boji), NM | 2,500 | 1,000 | 4 | 60 |
5. Radio (30 sek, u 8.00 ili 17.00 h), postaja Pulala, R | 300 | 100 | 30 | 20 |
Što ćete preporučiti poduzeću AZBC ako im je kriterij maksimizirati kvalitetu izloženosti, uz budžet od 30 000 € i uvjete da mora biti bar 10 televizijskih oglasa uz maksimalni utrošak od 18000€ i ukupni doseg od bar 50 000 potencijalnih klijenata?
Varijable odluke
Iz opisa problema: “Koliko oglasa treba prikazati na svakom mediju kako bi se maksimizirala kvaliteta izloženosti, uz poštivanje svih ograničenja?”
Definiramo varijable odluke:
Zašto su \(x_1\),\(x_2\),\(x_3\),\(x_4\),\(x_5\) varijable odluke?
Funkcija cilja
Iz opisa problema:
Cilj je maksimizirati kvalitetu izloženosti, a kvaliteta izloženosti svakog medija definirana je u tablici:
treba nam ukupna (a ne pojedinačna) kvaliteta izloženosti, koja se dobiva množenjem broja oglasa s pripadajućom izloženosti: \(max\ 65x_1+90x_2+40x_3+60x_4+20x_5\)
Zašto maksimizacija? Kvaliteta izloženosti predstavlja mjerilo uspjeha kampanje, a s obzirom da želimo da kampanja bude što uspješnija, maksimiziramo kvalitetu izloženosti
Ograničenja
Ograničenja dolaze iz resursa i specifičnih zahtjeva klijenta.
Budžet
Trošak oglašavanja za svaki medij dan je u tablici:
Ukupni trošak svih oglasa mora biti manji ili jednak budžetu od 30000 €: \(1500x_1+3000x_2+400x_3+1000x_4+100x_5≤30000\)
Varijable \(x_1\),\(x_2\),\(x_3\),\(x_4\),\(x_5\) predstavljaju broj oglasa za svaki medij.
Troškovi svakog oglasa ovise o broju oglasa na svakom mediju.
Broj televizijskih oglasa
Trošak televizijskih oglasa
Doseg klijenata
Kampanja mora doseći barem 50000 potencijalnih klijenata kako bi bila uspješna: \(1000x_1+2000x_2+1500x_3+2500x_4+300x_5≥50000\)
Veza s varijablama odluke:
onda je ukupan doseg: \(1000x_1+2000x_2+1500x_3+2500x_4+300x_5≥50000\)
Ovo ograničenje osigurava da kampanja postigne željeni marketinški učinak, dosežući minimalni broj potencijalnih klijenata.
Dostupnost medija
\(x_1≤15\)
\(x_2≤10\)
\(x_3≤25\)
\(x_4≤4\)
\(x_5≤30\)
Ne-negativnost varijabli
Funkcija cilja:
\[ \text{Max } 65x_1 + 90x_2 + 40x_3 + 60x_4 + 20x_5 \]
Ograničenja:
Dostupnost medija:
\[ \begin{aligned} x_1 &\leq 15 \quad &\text{(maksimalno 15 oglasa na dnevnoj TV, \(x_1\))} \\ x_2 &\leq 10 \quad &\text{(maksimalno 10 oglasa na večernjoj TV, \(x_2\))} \\ x_3 &\leq 25 \quad &\text{(maksimalno 25 oglasa u dnevnim novinama, \(x_3\))} \\ x_4 &\leq 4 \quad &\text{(maksimalno 4 oglasa u nedjeljnom magazinu, \(x_4\))} \\ x_5 &\leq 30 \quad &\text{(maksimalno 30 oglasa na radiju, \(x_5\))} \end{aligned} \]
\[ 1500x_1 + 3000x_2 + 400x_3 + 1000x_4 + 100x_5 \leq 30000 \]
\[ x_1 + x_2 \geq 10 \]
\[ 1500x_1 + 3000x_2 \leq 18000 \]
\[ 1000x_1 + 2000x_2 + 1500x_3 + 2500x_4 + 300x_5 \geq 50000 \]
\[ x_1, x_2, x_3, x_4, x_5 \geq 0 \]
U ovom primjeru analizirali smo kako strukturirati problem optimizacije marketinške kampanje. Varijable odluke (broj oglasa po mediju) i funkcija cilja (maksimizacija kvalitete izloženosti) jasno su definirane, dok ograničenja uključuju budžet, doseg klijenata i dostupnost medija. Naučili smo kako modelirati kompleksne ciljeve koji uključuju više kriterija, poput troška i dosega, unutar jedinstvenog matematičkog okvira.
Marketinške odluke često se temelje na intuiciji, no uz ovakav pristup, možete donositi odluke temeljene na analizi podataka i preciznim proračunima. Također, na konceptualnoj razini, zapravo smo utvrdili kako najbolje iskoristiti vrijeme. Možda vas to inspirira za vlastiti model kako najbolje iskoristiti vrijeme?
U ambulanti jutro započinje uobičajenom žurbom. Medicinska sestra zadužena za zalihe lijekova i pripremu otopina za pacijente, suočava se s posebnim izazovom. U ambulantu su pristigle dvije osobe za čije su liječenje potrebne dvije vrste otopina koje se koriste za liječenje pacijenata – hidratacijsku otopinu, koja pomaže u obnavljanju tekućine i elektrolita, i nutritivnu otopinu, koja pacijentima pruža osnovne hranjive tvari potrebne za oporavak. Uočila je da tih otopina nema na stanju. Ipak, te se otopine mogu pripremiti temeljem drugih sastojaka.
Simbolična ilustracija
Izvor: DALL-E
Otopine se pripremaju iz unaprijed određene količine četiri glavna sastojka: fiziološka otopina, glukoza, kalijev klorid i multivitamini. Hidratacijska otopina zahtijeva precizno kombiniranje fiziološke otopine, glukoze, kalijevog klorida i dodatka vitamina B-kompleksa. Nutritivna otopina sadrži iste sastojke, ali u drugačijim omjerima, kako bi zadovoljila specifične nutritivne potrebe pacijenata. Dok pregledava zalihe u ljekarni, Ana primjećuje ograničenja. Fiziološke otopine ima nešto više, ali zalihe glukoze i kalijevog klorida su ograničene. B-kompleksa, koji se dodaje u malim količinama, također nema puno. Dakle, ukupna količina svakog sastojka je ograničena, što otežava zadatak pripreme maksimalnih mogućih količina obje otopine uz poštivanje preciznih recepata.
Svaka od ovih otopina ima jasno definirane proporcije sastojaka, a njihova ukupna količina mora biti unutar dozvoljenih granica. Medicinska sestra ima sljedeće količine sastojaka na raspolaganju:
Također, kako je već naglašeno ranije, otopine je važno pripremiti strogo prema receptima. Recept za otopinu za hidrataciju:
Recept za otopinu za nutritivnu podršku:
Koje su najveće količine otopine za rehidraciju i otopine za nutritivnu podršku koje sestra može pripremiti uzimajući u obzir raspoložive zalihe sastojaka i postavljena ograničenja? Svaka otopina mora zadovoljiti određene zahtjeve glede sastava, a uz to, minimalna količina koja se mora isporučiti je 0,5 litre za svaku od otopina.
Ovo je sigurno jedan od slučajeva u kojima nam tablica može pomoći za pregledan prikaz proporcija i ukupnih količina. Može se uočiti da smo ovdje već mjerne jedinice dostupnih količina ujednačili i to prema mjernoj jedinici minimalnih količina koje se potražuju
Sastojak | Proporcija u x1 (Rehidracija) | Proporcija u x2 (Nutritivna podrška) | Maksimalno dostupno (litre/ml) |
---|---|---|---|
Fiziološka otopina | 50% - 70% | 30% - 50% | 2 |
Glukoza | 20% - 40% | 40% - 60% | 0.6 |
Kalijev klorid | 5% | 5% | 0.15 |
B-kompleks | do 5% | 10% - 15% | 0.15 |
Min. količine | 0,5 l | 0,5 l | / |
Varijable odluka
Možda će se nekome činiti na prvi pogled da je ovo slično kuhanju ručka, čak imamo i recept. Imamo neke sastojke i intuitivno ih krećemo koristiti, pa eventualno dodajemo još sastojaka kako bi postogli odgovarajuću teksturu ili gustoću. Slično, u stvarnom životu, medicinska sestra će vjerojatno najprije razmišljati o dostupnim sastojcima, uostalom, mora i provjeriti što ima na raspolaganju.
Sastojci su osnovni resursi koji određuju što se može pripremiti, pa se često intuitivno usmjeravamo na procjenu zaliha i sastojke. Međutim, ovdje fokus prvenstveno treba biti na onom što želimo postići (otopine) i to činimo strukturirano, a ne proizvoljno (kao što bi to bio slučaj s kuhanjem ručka od dostupnih namirnica). Dakle, u strukturiranom pristupu pri identifikaciji varijabli odluka, moramo koristiti količine otopina (rehidratacijske i nutritivne) kao varijable odluke. To znači da se pomoću modela odlučuje koliko će pripremiti litara otopine za rehidraciju i otopine za nutritivnu podršku.
To zapisujemo na sljedeći način:
Međutim, zbog recepata koji preciziraju udjele pojedinih sastojaka u otopinama, količine sastojaka će također postati varijable odluka. Za svaku otopinu, sastojci su specificirani kao postotci ukupne količine otopine (\(x_1\) ili \(x_2\)), a zbroj tih sastojaka ujedno predstavlja ukupne količine otopina, tj. \(x_1\) i \(x_2\). Drugim riječima, stvarna upotreba svakog sastojka je funkcija ukupne količine otopine i ako bismo to htjeli direktno modelirati, dobili bismo nelinearni model, i to prilično zapetljani.
Kako bismo zadržali problem linearnim, sastojci se definiraju kao zasebne varijable odluke. To znači da se definiraju varijable poput \(f_1\) (količina fiziološke otopine za rehidraciju) i \(g_1\) (količina glukoze za rehidraciju), itd.. Definiranjem sastojaka kao varijabli odluka, možemo izravno postaviti ograničenja za udjele sastojaka u otopinama na način da model ostaje linearan i jednostavan. Time postižemo jednostavniji i učinkovitiji pristup rješavanju problema.
Označimo preostale varijable odluke kao količine pojedinih sastojaka koje se koriste za pripremu otopina:
Prije nego nastavimo dalje, bit će korisno usporediti/ povezati sa 6. Primjerom, uz utvrđivanje sličnosti i razlika u definiranju varijabli odluka. Naime, može se činiti da je zadatak konceptualno sličan, pa ćemo se zbog toga detaljnije pozabaviti time.
Glavne razlike odnose se na prirodu varijabli odluka i način na koji su one povezane s ciljem i ograničenjima. U primjeru 6, varijable odluka predstavljaju količine pojedinih sastojaka (u gramima) koje se koriste za izradu obroka. Te varijable izravno definiraju konkretne sastojke i njihove količine, poput kvinoje, leće ili brokule. Zbroj tih varijabli mora zadovoljiti zadane ciljeve i ograničenja, kao što su minimalni unos proteina, vlakana i vitamina te maksimalni broj kalorija i ukupna težina obroka. Modeliranje je relativno jednostavno jer svaka varijabla izravno doprinosi ukupnim nutritivnim vrijednostima i troškovima, bez potrebe za dodatnim poveznicama ili proporcionalnim zahtjevima. Može se reći da je cilj 6. primjera zapravo kreiranje ‘recepta’.
S druge strane, u ovom primjeru, varijable odluka prvenstveno predstavljaju količine gotovih proizvoda – rehidratacijskih i nutritivnih otopina. Sastojci tih otopina, poput fiziološke otopine, glukoze, kalijevog klorida i B-kompleksa, postaju sekundarne varijable koje su definirane proporcionalnim zahtjevima prema receptima. Ovdje su glavni fokus varijable \(x_1\) i \(x_2\), koje predstavljaju ukupne količine otopina, dok količine sastojaka ovise o proporcijama definiranima u receptima i zapravo predstavljaju pomoćne radnje. Ova struktura zahtijeva složenija ograničenja kako bi se osigurala usklađenost s dostupnim zalihama i pravilnim omjerima sastojaka. Ovdje već imamo zadan recept i moramo isporučiti određene finalne količine, a pritom prilagoditi količine sastojaka s obzirom na recept i ograničenja.
Općenito, primjer 6 može se smatrati klasičnim problemom kreiranja mješavine (mixing problem), gdje se različiti sastojci kombiniraju kako bi zadovoljili nutritivne i troškovne zahtjeve. Sastojak doprinosi cilju samostalno. Primjer 10 je složeniji problem proporcionalne optimizacije, gdje proporcije igraju ključnu ulogu i definiraju međusobnu povezanost varijabli odluka.
Funkcija cilja
Funkcija cilja ima za cilj maksimizirati količinu pripremljenih otopina – rehidratacijske i nutritivne – uz poštivanje svih ograničenja dostupnih resursa i proporcija sastojaka. Preciznije, cilj je maksimizirati ukupnu količinu pripremljenih otopina. Funkcija cilja može se zapisati kao: \(max\ x_1 + x_2\)
Svaka litra otopine doprinosi jednako cilju, pa težinski koeficijenti varijabli u funkciji cilja imaju vrijednost 1.
Funkcija cilja postavlja fokus na maksimalnu proizvodnju obje otopine, što je u skladu s potrebama pacijenata i medicinske sestre.
pritom će vrijediti i ovi uvjeti, odnosno ograničenja:
Ograničenja
Medicinska sestra ima ograničene zalihe fiziološke otopine, glukoze, kalijevog klorida i B-kompleksa. Ukupna količina svakog sastojka ne smije premašiti dostupne zalihe (iako ovo već piše u prethodnom tekstu, ponekad je zgodno kopirati određeni dio da se možemo fokusirati na sastavljanje ograničenja, bez skrolanja gore-dolje, što ometa koncentraciju):
Ali ti sastojci se koriste u različitim udjelima u pojedinoj otopini. Stoga, ograničenja za svaki sastojak postavljamo kao linearnu kombinaciju udjela u otopinama:
Fiziološka otopina se koristi u količini od 0.5 od 0.7 litre po litri otopine za rehidraciju (\(x_1\)) i 0.3 do 0.5 litre po litri otopine za nutritivnu podršku (\(x_2\)), a ukupno je moguće potrošiti do 2 litre fiziološke otopine:
Glukoza se koristi u količini od 0.2 do 0.4 litre po litri otopine za rehidraciju (\(x_1\)) i od 0.4 do 0.6 litre po litri otopine za nutritivnu podršku (\(x_2\)), a ukupno je na raspolaganju do 600 ml glukoze:
Kalijev klorid se koristi u količini od 0.05 litre po litri otopine za rehidraciju (\(x_1\)) i 0.05 litre po litri otopine za nutritivnu podršku (\(x_2\)), a ukupno je na raspolaganju do 150 ml kalijevog klorida:
B-kompleks se koristi u količini do 0.05 litre po litri otopine za rehidraciju (\(x_1\)) i između 0.1 i 0.15 litre po litri otopine za nutritivnu podršku (\(x_2\)), pri čemu je ukupno na raspolaganju 150 ml B-kompleksa:
Ova ograničenja osiguravaju da količine svakog sastojka koje se koriste u pripremi otopina ne premašuju dostupne zalihe i da se pripreme po receptu.Ranije su navedena dva ograničenja pri pojašnjenju funkcije cilja, a sad ćemo ih ponoviti, kako bi bili pravilno sistematizirani:
U opisu preblome zadano je da treba kreirati barem 0.5 litara svake otopine, pa to moramo zasebno postaviti kao ograničenja:
Ograničenja modela osiguravaju da količine sastojaka zadovoljavaju dostupne zalihe i da svaka otopina slijedi točno definirane recepte. Ova ograničenja također povezuju ukupne količine otopina s količinama sastojaka, omogućujući točno određivanje njihovih proporcija u skladu s receptima.
Funkcija cilja
\[\text{max}\ x_1 + x_2\]
Ograničenja
Ukupne zalihe:
\[f_1 + f_2 \leq 2\]
\[g_1 + g_2 \leq 0.6\]
\[k_1 + k_2 \leq 0.15\]
\[b_1 + b_2 \leq 0.15\]
Fiziološka otopina:
\[0.5x_1 - f_1 \leq 0\]
\[f_1 - 0.7x_1 \leq 0\]
\[0.3x_2 - f_2 \leq 0\]
\[f_2 - 0.5x_2 \leq 0\]
Glukoza:
\[0.2x_1 - g_1 \leq 0\]
\[g_1 - 0.4x_1 \leq 0\]
\[0.4x_2 - g_2 \leq 0\]
\[g_2 - 0.6x_2 \leq 0\]
Kalijev klorid:
\[ 0.05x_1 - k_1 = 0\]
\[ 0.05x_2 - k_2 = 0\]
B-kompleks:
\[0.05x_1 - b_1 \leq 0\]
\[0.1x_2 - b_2 \leq 0\]
\[b_2 - 0.15x_2 \leq 0\]
Ukupne količine otopina
\[x_1=f_1+g_1+k_1+b_1\]
\[x_2=f_2+g_2+k_2+b_2\]
\[x_1 \geq 0.5\]
\[x_2 \geq 0.5\]
\(x_1, x_2, f_1, f_2, g_1, g_2, k_1, k_2, b_1, b_2 \geq 0\)
S obzirom na ograničene resurse i precizne recepte za pripremu otopina, ovaj model omogućuje medicinskoj sestri optimalno iskorištavanje dostupnih sastojaka za pripremu najvećih mogućih količina otopine za rehidraciju i otopine za nutritivnu podršku. Sve to bilo bi još lakše uz postojanje jednostavne aplikacije, koja bi mogla značajno olakšati rad medicinskim sestrama i drugim zdravstvenim radnicima. Takva aplikacija mogla bi omogućiti unos dostupnih količina sastojaka i recepata te automatski izračunati optimalne količine otopina koje se mogu pripremiti, a to je nešto što bi npr. studenti studija informatika s lakoćom mogli napraviti.
Ovaj primjer ilustrira kako matematičko modeliranje može pomoći u stvarnim situacijama, čak i izvan industrijskih procesa ili proizvodnje. Medicinsko okruženje zahtijeva pažljivo planiranje i donošenje odluka, često u uvjetima ograničenih resursa i visokog pritiska. Matematički pristup osigurava strukturu i jasnoću, omogućujući postizanje najboljeg mogućeg ishoda.
Model nije samo alat za rješavanje problema, već i koristan okvir za razmišljanje. Ovaj pristup ne samo da podržava praktično donošenje odluka, nego i ilustrira važnost kvantitativnog razmišljanja u kontekstu svakodnevnih profesionalnih izazova. Medicinske sestre i drugi zdravstveni radnici mogu primijeniti slične principe kako bi se uspješno nosili s ograničenjima i složenim zahtjevima.
Simbolična ilustracija
Izvor: DALL-E
U današnjem globalnom poslovnom okruženju, korporativna odgovornost postala je ne samo moralna obaveza, već i poslovni imperativ. Tvrtke sve više shvaćaju da odgovorno poslovanje može dovesti do povećanja profita, boljeg odnosa s zajednicom i smanjenja ekološkog otiska.
Tvrtka „Stayzila“ razmatra sedam ključnih inicijativa korporativne odgovornosti kako bi smanjila svoj utjecaj na okoliš, poboljšala odnose s lokalnom zajednicom te podržala obrazovanje i zdravstvo. Svaka od ovih inicijativa ima svoje početne troškove, ali dugoročni povrat ulaganja kroz poboljšanu reputaciju, povećane prodaje ili smanjenje regulatornih kazni može biti značajan.
S obzirom na različite troškove i povrate svake inicijative, tvrtka teži optimalnoj raspodjeli sredstava kako bi postigla najveću korist uz minimalne troškove. Kako bi se ovo postiglo, tvrtka treba uzeti u obzir brojne faktore, poput kapaciteta za edukaciju zaposlenika, očekivanog smanjenja emisije ugljika i dostupnog financiranja.
Inicijative su:
Cilj tvrtke je minimizirati ukupne troškove dok udovoljava sljedećim ograničenjima:
Varijable odluke:
Varijable odluke predstavljaju broj ili količinu svakog tipa inicijative u kojoj će tvrtka sudjelovati. To su:
Zašto su ove varijable odabrane?
Dakle, svaka od ovih varijabli vezana je uz ostvarenje cilja (odnosno, funkciju cilja) te ograničenja (barem jedno)
Funkcija cilja:
Ograničenja:
Svaka inicijativa ima minimalne ciljeve koje mora ispuniti:
Obnovljivi izvori energije
Projekti u lokalnoj zajednici
Recikliranje otpada
Edukacija zaposlenika
Zamjena materijala
Partnerstva
Smanjenje emisije CO2
Financijska ograničenja:
Kapacitet edukacije
Kapacitet obnovljivih izvora energije
Zajednički utjecaj projekata i partnerstava
Napomena: Kroz dana razmatranja može se uočiti da bi rješavanje stvarnog problema bilo puno kompleksnije i da su brojna realna ograničenja i razmatranja objedinjena u svakom od navednih ograničenja, koja su ovdje pojednostavljena. Ponekad su takve aktivnosti nužne kako bi se problem dovoljno pojednostavio da bi bio rješiv.
Funkcija cilja (minimizacija troškova):
\(min\ ∑C_i \cdot x_i\)
Ograničenja:
Ovdje se u funkciji cilja pojavljuje skraćeni zapis, \(min\ ∑C_i \cdot x_i\), gdje \(C_i\) označavaju sve koeficijente (troškove) uz varijable u funkciji cilja, a \(x_i\) su
Primjer korporativne odgovornosti ilustrira kako strukturirati problem s više različitih inicijativa. Fokus je na varijablama odluke koje odgovaraju svakom tipu ulaganja, dok funkcija cilja (minimizacija troškova) i ograničenja osiguravaju da model odražava stvarne prioritete tvrtke. Ovaj primjer naglašava važnost balansiranja između različitih ciljeva i resursa te preciznog formuliranja problema kako bi bio rješiv linearnim programiranjem.
S ovakvim modelom, možete sudjelovati u donošenju odluka koje pozitivno utječu na društvo i okoliš, dok istovremeno osiguravate financijsku održivost projekata. Ovo je primjer kako kvantitativne metode mogu pomoći u postizanju širih društvenih ciljeva, odnosno poslužiti kao argument za njihovu realizaciju.
Acuna, M. (2017). Timber and biomass transport optimization: A review of planning issues, solution techniques and decision support tools. Croatian Journal of Forest Engineering: Journal for Theory and Application of Forestry Engineering, 38(2), 279-290.
Ahmad, A., El-Shafie, A., Razali, S. F. M., & Mohamad, Z. S. (2014). Reservoir optimization in water resources: a review. Water resources management, 28(11), 3391-3405.
Alotaibi, A., & Nadeem, F. (2021). A Review of Applications of Linear Programming to Optimize Agricultural Solutions. International Journal of Information Engineering & Electronic Business, 13(2).
Asadi, E., & Sadjadi, S. (2017). Optimization methods applied to renewable and sustainable energy: A review. Uncertain supply chain management, 5(1), 1-26.
Bagshaw, K. B. (2019). A Review of Quantitative Analysis (QA) in Production Planning Decisions Using the Linear Programming Model. American Journal of Operations Research, 9(06), 255.
Bouajaja, S., & Dridi, N. (2017). A survey on human resource allocation problem and its applications. Operational Research, 17(2), 339-369.
Chandru, V., & Rao, M. R. (1997). Combinatorial Optimization.
Dantzig, G. B. (1951). Maximization of a linear function of variables subject to linear inequalities. Activity analysis of production and allocation, 13, 339-347.
Dantzig, G. B. (1951). Application of the simplex method to a transportation problem. Ed. Koopmans, T.C. Activity analysis and production and allocation. John Wiley and Sons, New York.
Díaz-Madroñero, M., Mula, J., & Peidro, D. (2014). A review of discrete-time optimization models for tactical production planning. International Journal of Production Research, 52(17), 5171-5205.
Floudas, C. A., & Lin, X. (2005). Mixed integer linear programming in process scheduling: Modeling, algorithms, and applications. Annals of Operations Research, 139(1), 131-162.
Gero, J. S. (1975). Architectural optimization-a review. Engineering Optimization, 1(3), 189-199.
Juul, N., Münster, M., Ravn, H., & Söderman, M. L. (2013). Challenges when performing economic optimization of waste treatment: A review. Waste management, 33(9), 1918-1925.
Manopiniwes, W., & Irohara, T. (2014). A review of relief supply chain optimization. Industrial Engineering and Management Systems, 13(1), 1-14.
Nunes, L. J. R., Causer, T. P., & Ciolkosz, D. (2020). Biomass for energy: A review on supply chain management models. Renewable and Sustainable Energy Reviews, 120, 109658.
Pérez-Rúa, J. A., & Cutululis, N. A. (2019). Electrical cable optimization in offshore wind farms—A review. IEEE Access, 7, 85796-85811.
Polat, U., & Gürtuna, F. (2018). A review of applications of linear programming and mixed integer linear programming in energy management: From policy makers/producers to consumers. European Journal of Engineering and Applied Sciences, 1(2), 84-89.
Pradana, M. F., & Noche, B. (2019, December). A Systematic literature review on maritime transportation optimization using linear programming. In IOP Conference Series: Materials Science and Engineering (Vol. 673, No. 1, p. 012041). IOP Publishing.Reidhead, 1979
Van Dooren, C. (2018). A review of the use of linear programming to optimize diets, nutritiously, economically and environmentally. Frontiers in nutrition, 5, 48.