Izvor: Saaty i Vargas (2012)
Višekriterijsko odlučivanje (engl. multicriteria decision-making, MCDM, engl. multicriteria decision analysis, MCDA) odnosi se, u pravilu, na donošenje odluke temeljem različitih kriterija, pri čemu postoje konfliktni ili teško usporedivi kriteriji. Postoji još i multiatributivno odlučivanje (engl. multiattribute decision-making, MADM) te višeciljno odlučivanje (multiobjective decision-making, MODM). Iako se ponekad i ove skupine zabunom svrstavaju pod višekriterijsko odlučivanje, radi se o zasebnim metodama. Ipak, s obzirom na razvoj metoda i kompleksnost problema koji se rješava, u novije vrijeme dolazi do preklapanja. Multiatributivno odlučivanje usmjereno je na karakteristike pojave o kojoj se odlučuje, višekriterijsko je usmjereno na kriterije prema kojima se alternative vrednuju, a višeciljno je usmjereno na rješavanje problema s više ciljeva.
U stvarnom svijetu, problemi odlučivanja često su previše kompleksni ili se ne mogu strukturirati na način koji vodi jednom optimalnom rješenju (Kahraman et al., 2015). Isti autori smatraju da se jedino zadržavanjem kompleksnosti modelira rješenje prikladno stvarnoj situaciji.
Višekriterijsko odlučivanje karakterizira potreba za evaluacijom konačnog skupa alternativa temeljem višestrukih kriterija (Choo et al., 1999). Pritom postoje različiti načini vaganja kriterija te pravila agregiranja koja dovode do različitih rješenja. Vrijednosti koje se pripisuju kriterijima najčešće su izražene na ordinalnoj i omjernoj mjernoj ljestvici, iako mogu biti mjerene i na intervalnoj ljestvici (no to se češće koristi u multiatributivnoj teoriji korisnosti, Choo et al., 1999). Smatra se da vaganje kriterija odražava važnost kriterija. Postupak višekriterijskog odlučivanja može se shematski prikazati.
Shematski prikaz postupka višekriterijskog odlučivanja
Izvor: prilagođeno iz Pohekar i Ramachandran, 2004.
Općenito, u višekriterijskom odlučivanju s p kriterija, \(C_1,\ldots,C_p\), svaka alternativa \(x\) predstavljena je vektorom \(x=[x_1,\ldots,x_p]\), gdje je \(x_k\) (za \(k=1,\ldots,p\)) mjera ili opis utjecaja alternative \(x\) na kriterij \(C_k\). Skup \(S=\{x^1,\ldots,x^m\}\) označava skup svih m alternativa koje se evaluiraju. Smatra se da su preferencije alternativa s obzirom na samo jedan kriterij \(C_k\) potpuno poznate i mjerljive. Generalni problem višekriterijskog odlučivanja jest evaluacija \(Z(x^i)=[z_1(x^i),\ldots,z_p(x^i)]\), \(i=1,\ldots,m\) te određivanje konačnih vrijednosti pripisanih alternativama uz odabir najbolje alternative (Choo et al., 1999).
Jedan od glavnih problema vezan uz ovu metodu je rangiranje kriterija i alternativa prema preferencijama. Ako osoba preferira A u odnosu na B i B u odnosu na C, tada se očekuje da će osoba preferirati A u odnosu na C. Ipak, u svakodnevnim situacijama odlučivanja, to nije uvijek tako. Drugi dio problema leži u percepciji kriterija i alternativa. Odnosno, kako Buchanan i Shepard (1998) ilustriraju kroz primjer, ako osoba bira temeljem kriterija „šećer“ između šalice čaja s 10 mg šećera i šalice čaja s 11 mg šećera, prema tradicionalnom pristupu modeliranju, osoba bi trebala odabrati šalicu čaja s više šećera. No, u stvarnosti, osobe teško percipiraju suptilne razlike. Navedeni problem i slični problemi koji se pojavljuju pri višekriterijskom odlučivanju u praksi, doveli su do razvoja brojnih metoda u ovom području.
Razlike u metodama višekriterijskog odlučivanju proizlaze iz načina vaganja kriterija i načina izračuna konačnih vrijednosti alternativa. Metode koje se češće upotrebljavaju u praksi (Ho et al., 2010; Pohekar i Ramachandran, 2004.) su:
Naravno, postoje i druge metode te kombinacije navedenih metoda. Štoviše, radi se o području koje se ubrzano razvija te svake godine producira nekoliko novih pristupa koji rješavaju neke od nedostataka postojećih metoda. Osim toga, navedene metode koriste se u kombinaciji s linearnim programiranjem, višeciljnim programiranjem, metodom omeđivanja podataka (engl. data envelopment analysis, DEA) te sustavima za potporu odlučivanju (engl. decision support system, DSS). Zopounidas i Doumpos (2002) smatraju da postoje tri glavna oblika metoda prema načinu agregiranja:
U praksi se ovakvi modeli koriste u kompleksnim situacijama, na primjer, pri procjeni kreditnog rizika (Sriniavasan i Ruparel, 1990; Jablonsky, 1993; Khalil et al., 2000), upravljanju portfolijom (Saaty et al., 1980; Hurson and Ricci-Xella, 1998), procjeni performansi poduzeća (Babić i Plazibat, 1998; Baourakis et al., 2002), procjeni investicije (Ribarović and Mladineo, 1987), planiranju održivog korištenja energije (Pohekar i Ramachandran, 2004), odabiru dobavljača (Ho et al., 2010), prometu (Kovačić, 2004) i drugim kompleksnim situacijama.
U nastavku će se obraditi samo tri češće korištene metode, a pri rješavanju će se koristiti R (i MS Excel za dijelove vizualizacija). Osim tih alata, na raspolaganju su i drugi brojni softveri koji se koriste kao potpora za MCDM. Međunarodno društvo MCDM sistematiziralo je dostupne softvere i popis je dostupan na poveznici.
Ovu metodu razvio je Edwards, 1971 godine, uz kasniju nadopunu Edwardsa i Barrona (1994) koja je rezultirala inačicama SMARTS i SMARTER. Jednostavnost ove metode proizlazi iz direktnog ocjenjivanja alternativa uz korištenje prirodne mjerne ljestvice, vaganja kriterija i odvajanja alternativa i kriterija. Ukoliko postoje različite mjerne ljestvice (na primjer, u kilogramima, u centimetrima i kilometrima na sat), tada ih je potrebno pretvoriti u jedinstvenu ljestvicu.
SMART metoda primjenjuje se u inženjerstvu, poljoprivredi, vojsci, sigurnosti, proizvodnji, odabiru lokacije, planiranju prijevoza, odabiru među rutama, pri razvoju logistike, upravljanju resursima te procjenama učinka na okoliš (Patel et al., 2017). Prema istim autorima, prednost ove metode predstavlja upotreba linearne funkcije kao funkcije vrijednosti, jednostavnost upotrebe (zbog linearnosti), odluka koja je nezavisna od alternativa te robusnost na promjene alternativa (npr. dodavanje alternativa neće utjecati na ocjenu postojećih alternativa – za razliku, na primjer, od AHP-a). Nedostaci metode očituju se u povećanju kompleksnosti kao posljedice povećanja broja kriterija, brzo odbacivanje nisko rangiranih alternativa, problematično određivanje odgovarajućeg vaganja i nekonzistentnost zbog subjektivnog pristupa provedbi metode.
Postupak se provodi kroz nekoliko koraka (Patel et al., 2017):
Primjer
Ovdje će se navedeno prikazati na primjeru odabira lokacije zbrinjavanja nuklearnog otpada (Patel et al., 2017; Olson, 1996). Entitet je u ovom slučaju osoba koja donosi odluku o lokaciji, a koja je zadužena i za na tu temu pitanja u javnosti. Problem koji se javlja odnosi se na troškove, očekivani broj izgubljenih života (radnici na izgradnji, upravljanje sustavom te ostale osobe koje bi mogle stradati), rizik katastrofe (mogućnost potresa, poplava i drugih nepogoda koji bi narušili djelovanje postrojenja) te sudjelovanje zajednice (na primjer, mogućnost javnih radova i sl.). Alternative se odnose na pet odabranih gradova u SAD-u. Ovi su podaci objedinjeni u sljedećoj tablici.
Podaci o lokacijama zbrinjavanja otpada prema relevantnim varijablama
| Lokacija | Troškovi (u milijardama $) | Očekivani gubici života | Rizik | Sudjelovanje zajednice |
|---|---|---|---|---|
| Nome | 40 | 60 | Vrlo visok | Nisko |
| Newark | 100 | 140 | Vrlo nizak | Vrlo visoko |
| Rock Springs | 60 | 40 | Nizak | Visoko |
| Duquesne | 60 | 40 | Srednji | Srednje |
| Gary | 70 | 80 | Nizak | Vrlo visok |
Rangiranje dimenzija prema važnosti u ovom slučaju je:
Očekivani gubici života > Rizik > Trošak > Sudjelovanje zajednice.
Najmanje važnoj alternativi, Sudjelovanje zajednice (SZ), pripisuje se vrijednost 10. U usporedbi sa SZ, trošku je pripisana vrijednost od 60. Pri usporedbi rizika i SZ, riziku je pripisana vrijednost 150. Pri usporedbi rizika i troška, utvrđeno je da je rizik tri puta važniji, pa mu je pripisana vrijednost 180. Ovdje se uočava raskorak između vrijednosti koji treba ukloniti. Recimo da je osoba nakon promišljanja promijenila vrijednost pripisanu trošku na 50 (umjesto 60) te je time usklađen odnos SZ, troška i rizika (koji poprima vrijednost 150). Procijenjeno je da su životi 25 puta važniji od SZ, 7 puta važniji od troška i dva puta važniji nego rizik. To dovodi do sljedećih vrijednosti: 350, 250 i 100. Ponovo je potrebno uskladiti odnose. Ovdje se uočava da postupak postaje zahtjevan kako se povećava broj dimenzija. Konačno, relativne vrijednosti pripisane dimenzijama su sljedeće: SZ=10, Trošak=40, Rizik=150 i Životi=250.
U sljedećem je koraku potrebno utvrditi sumu vrijednosti pripisanih dimenzijama te vrijednost svake dimenzije podijeliti sa sumom, kao što je prikazano u tablici. U ovom slučaju, normalizirane vrijednosti ne daju sumu 1 nego 100 (pa ih se može promatrati i kao indekse).
Normalizacija rangova dimenzija
Neka su kriteriji \(C_1,\dots,C_p\). Donositelj odluke dodjeljuje relativne rang-vrijednosti (bodove) \(r_k>0\) za svaki kriterij \(k\).
Suma rang-vrijednosti: \[ R=\sum_{k=1}^{p} r_k \]
Normalizirane vrijednosti (indeksi) kriterija: - ako želimo da suma bude \(1\): \[ w_k=\frac{r_k}{R} \] - ako želimo da suma bude \(100\) (kao u prikazu): \[ W_k = 100\cdot \frac{r_k}{R} \]
gdje je \(r_k\) dodijeljena važnost kriterija \(k\), a \(w_k\) (ili \(W_k\)) normalizirana težina/indeks kriterija.
U sljedećem je koraku potrebno ocijeniti alternative. Na primjer, trošak je kontinuirana varijabla, mjerena na omjernoj ljestvici i predstavlja procijenjeni trošak. Da bi se trošak prenio na ljestvicu od 0 do 100 uz zadržavanje omjera, u obzir je potrebno uzeti najmanju (40) i najveću (100) procijenjenu vrijednost, a to je moguće učiniti koristeći sljedeći izraz: \(\frac{100-c_j}{100-40} 100\), gdje je \(c_j\) procijenjeni trošak uz pojedinu alternativu. Životi su također mjereni na omjernoj ljestvici, pa je moguće primijeniti isti pristup. Navedene vrijednosti ovih dviju varijabli su procijenjene, što znači da nose određeni stupanj neizvjesnosti i u ovom se trenutku može izvršiti konačna provjera minimalnih i maksimalnih očekivanih vrijednosti i s njima dalje računati (čak iako se razlikuju od zapisanih u tablici).
Rizik i sudjelovanje zajednice su stupnjevite varijable s vrijednostima nalik Likertovoj skali, pa ih je nužno prekodirati. S obzirom da se radi o pet vrijednosti, moguće ju je preslikati na ljestvicu od 0-100 na sljedeći način: vrlo nizak=100, nizak=75, srednji=50, visok=25, vrlo visok=0.
Skaliranje rangova dimenzija
Neka je \(x_{ik}\) izvorna vrijednost alternative \(i\) na kriteriju \(k\), za \(i=1,\dots,m\).
Kvantitativni kriteriji (0–100)
Ako je kriterij troškovni (manje je bolje), skaliranje je: \[ s_{ik}=100\cdot \frac{\max_i(x_{ik})-x_{ik}}{\max_i(x_{ik})-\min_i(x_{ik})} \]
Ako je kriterij korisni (više je bolje), skaliranje je: \[ s_{ik}=100\cdot \frac{x_{ik}-\min_i(x_{ik})}{\max_i(x_{ik})-\min_i(x_{ik})} \]
gdje je \(s_{ik}\) skalirana vrijednost alternative \(i\) po kriteriju \(k\).
Ordinalni kriteriji (Likert-stupnjevi)
Ordinalne kategorije se prekodiraju mapiranjem: \[ s_{ik}=g_k(x_{ik}), \] gdje je \(g_k(\cdot)\) tablica preslikavanja na \(\{0,25,50,75,100\}\), npr.: \[ \text{vrlo nizak}=100,\; \text{nizak}=75,\; \text{srednji}=50,\; \text{visok}=25,\; \text{vrlo visok}=0. \]
Nakon toga je prvi korak pri utvrđivanju težina množenje pripisanih vrijednosti s normaliziranim relativnim vrijednostima dimenzija i zbrajanje tih umnožaka po dimenziji. Potom je dobivene sume potrebno zbrojiti po retku i podijeliti svaku sumu stupca sa sumom retka. Utvrđene težine su osnova za izračun ukupne korisnosti alternative u sljedećem koraku.
Utvrđivanje ukupne korisnosti alternative
U ovom pristupu normalizirane rang-težine dodatno se kombiniraju s raspodjelom skaliranih vrijednosti po alternativama.
Agregat kriterija preko alternativa (po stupcu): \[ A_k=\sum_{i=1}^{m} s_{ik} \]
Kombiniranje s normaliziranim rangovima: - uz \(w_k\) (suma \(=1\)): \[ u_k = w_k \cdot A_k \] - uz \(W_k\) (suma \(=100\)): \[ u_k = W_k \cdot A_k \]
Normalizacija dobivenih vrijednosti u konačne težine: \[ \tilde{w}_k=\frac{u_k}{\sum_{k=1}^{p} u_k} \]
gdje je \(A_k\) zbroj skaliranih vrijednosti za kriterij \(k\), \(u_k\) međukorak, a \(\tilde{w}_k\) konačna težina kriterija.
Skalirane vrijednosti pripisane alternativama po dimenzijama množe se s utvrđenim težinama dimenzija i zbrajaju po retku, tj. po alternativi. Na taj je način dobivena ukupna korisnost svake alternative. Najveću vrijednost poprima Rocky Springs, što se koristi kao indikator najbolje odluke.
Konačna korisnost alternative \(i\) računa se kao težinski zbroj skaliranih vrijednosti: \[ U_i=\sum_{k=1}^{p} \tilde{w}_k \, s_{ik} \]
Najbolja alternativa je ona s najvećom vrijednosti: \[ i^{*}=\arg\max_{i} U_i \]
gdje je \(\tilde{w}_k\) konačna težina kriterija, \(s_{ik}\) skalirana vrijednost, a \(U_i\) ukupna korisnost alternative.
Ova metoda nije obuhvaćena MCDM paketom u R-u. No, svejedno možemo “ručno” iskodirati proceduru.
# 1) Podaci
alts <- data.frame(
alternativa = c("Nome", "Newark", "Rock Springs", "Duquesne", "Gary"),
trosak = c(40, 100, 60, 60, 70), # u mlrd $
zivoti = c(60, 140, 40, 40, 80), # očekivani gubici života
rizik = c("Vrlo visok", "Vrlo nizak", "Nizak", "Srednji", "Nizak"),
sz = c("Nizak", "Vrlo visok", "Visok", "Srednji", "Vrlo visok"),
stringsAsFactors = FALSE
)
alts
## alternativa trosak zivoti rizik sz
## 1 Nome 40 60 Vrlo visok Nizak
## 2 Newark 100 140 Vrlo nizak Vrlo visok
## 3 Rock Springs 60 40 Nizak Visok
## 4 Duquesne 60 40 Srednji Srednji
## 5 Gary 70 80 Nizak Vrlo visok
# 2) Težine dimenzija + normalizacija
w_raw <- c(sz = 10, trosak = 40, rizik = 150, zivoti = 250)
w <- w_raw / sum(w_raw) # suma = 1
w
## sz trosak rizik zivoti
## 0.02222222 0.08888889 0.33333333 0.55555556
# 3) Funkcije skaliranja na 0-100
scale_benefit <- function(x) { # veće je bolje
if (diff(range(x)) == 0) return(rep(100, length(x)))
(x - min(x)) / (max(x) - min(x)) * 100
}
scale_cost <- function(x) { # manje je bolje
if (diff(range(x)) == 0) return(rep(100, length(x)))
(max(x) - x) / (max(x) - min(x)) * 100
}
# 4) Prekodiranje ordinalnih kategorija na 0-100
likert_0_100_riz <- c(
"Vrlo nizak" = 100,
"Nizak" = 75,
"Srednji" = 50,
"Visok" = 25,
"Vrlo visok" = 0
)
likert_0_100_sz <- c(
"Vrlo visok"= 100,
"Visok" = 75,
"Srednji" = 50,
"Nizak" = 25,
"Vrlo nizak" = 0
)
# 5) Skaliranje kriterija u jednu (0-100) ljestvicu
scores <- within(alts, {
s_trosak <- scale_cost(trosak)
s_zivoti <- scale_cost(zivoti)
s_rizik <- unname(likert_0_100_riz[rizik])
s_sz <- unname(likert_0_100_sz[sz])
})
scores
## alternativa trosak zivoti rizik sz s_sz s_rizik s_zivoti
## 1 Nome 40 60 Vrlo visok Nizak 25 0 80
## 2 Newark 100 140 Vrlo nizak Vrlo visok 100 100 0
## 3 Rock Springs 60 40 Nizak Visok 75 75 100
## 4 Duquesne 60 40 Srednji Srednji 50 50 100
## 5 Gary 70 80 Nizak Vrlo visok 100 75 60
## s_trosak
## 1 100.00000
## 2 0.00000
## 3 66.66667
## 4 66.66667
## 5 50.00000
# 6) SMART ukupna korisnost (težinski zbroj)
scores$SMART <- with(scores,
w["trosak"] * s_trosak +
w["zivoti"] * s_zivoti +
w["rizik"] * s_rizik +
w["sz"] * s_sz
)
scores$SMART
## [1] 53.88889 35.55556 88.14815 79.25926 65.00000
# 7) Rangiranje i pregled (sa skaliranim podacima)
out <- scores[order(-scores$SMART), c(
"alternativa",
"s_trosak", "s_zivoti", "s_rizik", "s_sz",
"SMART"
)]
out
## alternativa s_trosak s_zivoti s_rizik s_sz SMART
## 3 Rock Springs 66.66667 100 75 75 88.14815
## 4 Duquesne 66.66667 100 50 50 79.25926
## 5 Gary 50.00000 60 75 100 65.00000
## 1 Nome 100.00000 80 0 25 53.88889
## 2 Newark 0.00000 0 100 100 35.55556
SMART (klasično) - težine kriterija zadaje donositelj odluke i one su neovisne o alternativama.
Varijanta iz rada/Excela: težine se dodatno korigiraju prema rasponu/raspodjeli skaliranih vrijednosti alternativa (jer se radi skalirano * w pa normalizacija). To je praktična heuristika, ali nije klasični SMART:
scores$SMART <- with(scores,
w["trosak"] * s_trosak +
w["zivoti"] * s_zivoti +
w["rizik"] * s_rizik +
w["sz"] * s_sz
)
S <- cbind(
zivoti = scores$s_zivoti,
rizik = scores$s_rizik,
trosak = scores$s_trosak,
sz = scores$s_sz
)
w0 <- w_raw[c("zivoti","rizik","trosak","sz")] / sum(w_raw) # osnovne težine
w_v2 <- colSums(S) * w0
w_v2 <- w_v2 / sum(w_v2)
scores$SMART_v2 <- as.numeric(S %*% w_v2)
scores[, c(1,10:11)]
## alternativa SMART SMART_v2
## 1 Nome 53.88889 55.37975
## 2 Newark 35.55556 33.48677
## 3 Rock Springs 88.14815 89.01995
## 4 Duquesne 79.25926 80.64825
## 5 Gary 65.00000 64.84465
Klasični SMART koristi težine koje zadaje donositelj odluke i one su neovisne o alternativama: ukupna korisnost je težinski zbroj skaliranih ocjena. Druga varijanta radi dodatni korak: osnovne težine se korigiraju prema “snazi signala” u podacima (npr. prema zbroju/rasponu skaliranih vrijednosti po kriteriju), pa kriteriji koji u skupu alternativa više razlikuju alternative dobiju veću efektivnu težinu.
Time se dobiva praktična, data-driven stabilizacija (manje utjecaja kriterija koji su gotovo isti za sve alternative i ne nose informaciju), ali se gubi čista interpretacija važnosti kriterija jer težine postaju ovisne o trenutnom skupu alternativa (dodavanje/uklanjanje alternative može promijeniti težine i rang). Klasični SMART koristi se kad želimo vjerno modelirati preferencije i transparentno obraniti “važnost kriterija”, dok se drugi pristup preferira kad je cilj operativno rangiranje i želite da kriteriji koji stvarno diferenciraju alternative imaju veći utjecaj (uz napomenu da je to heuristika).
Rezultat SMART metode je ukupna (agregirana) korisnost svake alternative dobivena kao težinski zbroj skaliranih ocjena po kriterijima. Alternative se zatim rangiraju prema toj ukupnoj vrijednosti: veća SMART vrijednost znači da alternativa, uz zadane težine i način skaliranja, predstavlja “bolji kompromis” između kriterija.
Važno je naglasiti da su SMART vrijednosti relativne: ovise o:
Zbog toga SMART prvenstveno služi za usporedbu i rangiranje alternativa unutar istog problema, a manje za interpretaciju apsolutne “kvalitete” rješenja.
Ako su razlike u ukupnim vrijednostima male, preporučuje se napraviti analizu osjetljivosti (npr. lagano mijenjati težine ili granice skaliranja) kako bi se provjerilo je li rang stabilan ili se lako mijenja pod razumnim promjenama pretpostavki.
Pretpostavimo da tim razvija internu web aplikaciju (CRUD + autentikacija + izvještaji) koja mora biti spremna u relativno kratkom roku, uz naglasak na sigurnost i buduću skalabilnost. U užem izboru su sljedeći frameworci:
Definirani su kriteriji (dimenzije vrijednosti) za procjenu alternativa:
Podaci (pretpostavljene vrijednosti) prikazani su u tablici.
| Alternativa | Framework | Razvoj (tjedni) | Perf. (req/s) | Sigurnost (1–5) | Skalabilnost (1–5) | Učenje (tjedni) | Ekosustav (1–5) | Trošak (€ / mj) |
|---|---|---|---|---|---|---|---|---|
| A1 | Django | 8 | 1200 | 4.0 | 4.0 | 3 | 5.0 | 350 |
| A2 | Spring Boot | 10 | 1800 | 4.5 | 5.0 | 6 | 5.0 | 500 |
| A3 | ASP.NET Core | 9 | 1700 | 4.5 | 4.5 | 5 | 4.5 | 450 |
| A4 | NestJS | 7 | 1500 | 3.8 | 4.2 | 4 | 4.5 | 400 |
| A5 | Rails | 8 | 1100 | 3.7 | 3.8 | 4 | 4.2 | 330 |
Korak 1: Težine kriterija
Donositelj odluke dodjeljuje bodove (rang-vrijednosti) kriterijima. Pretpostavimo sljedeće bodove:
Neka su rang-vrijednosti \(r_k\), a normalizirane težine \(w_k\) definirane su kao:
\[ R=\sum_{k=1}^{p} r_k,\qquad w_k=\frac{r_k}{R}. \]
Korak 2: Skaliranje na 0–100
Neka je \(x_{ik}\) izvorna vrijednost alternative \(i\) na kriteriju \(k\), a \(s_{ik}\) skalirana vrijednost (0–100).
Za troškovne kriterije (manje je bolje): \[ s_{ik}=100\cdot \frac{\max_i(x_{ik})-x_{ik}}{\max_i(x_{ik})-\min_i(x_{ik})}. \]
Za korisne kriterije (više je bolje): \[ s_{ik}=100\cdot \frac{x_{ik}-\min_i(x_{ik})}{\max_i(x_{ik})-\min_i(x_{ik})}. \]
Korak 3: Ukupna SMART korisnost i rangiranje
Ukupna korisnost alternative \(i\):
\[ U_i=\sum_{k=1}^{p} w_k\, s_{ik}. \]
Najbolja alternativa je ona s najvećim \(U_i\).
Izračun u R-u
# 1) Podaci
alts <- data.frame(
alternativa = c("A1","A2","A3","A4","A5"),
framework = c("Django","Spring Boot","ASP.NET Core","NestJS","Rails"),
razvoj_tjedni = c(8,10,9,7,8), # cost
perf_rps = c(1200,1800,1700,1500,1100), # benefit
sigurnost = c(4.0,4.5,4.5,3.8,3.7), # benefit
skalabilnost = c(4.0,5.0,4.5,4.2,3.8), # benefit
ucenje_tjedni = c(3,6,5,4,4), # cost
ekosustav = c(5.0,5.0,4.5,4.5,4.2), # benefit
trosak_eur = c(350,500,450,400,330) # cost
)
alts
## alternativa framework razvoj_tjedni perf_rps sigurnost skalabilnost
## 1 A1 Django 8 1200 4.0 4.0
## 2 A2 Spring Boot 10 1800 4.5 5.0
## 3 A3 ASP.NET Core 9 1700 4.5 4.5
## 4 A4 NestJS 7 1500 3.8 4.2
## 5 A5 Rails 8 1100 3.7 3.8
## ucenje_tjedni ekosustav trosak_eur
## 1 3 5.0 350
## 2 6 5.0 500
## 3 5 4.5 450
## 4 4 4.5 400
## 5 4 4.2 330
# 2) Težine (rang-vrijednosti) + normalizacija
r_k <- c(
razvoj_tjedni = 180,
perf_rps = 120,
sigurnost = 250,
skalabilnost = 160,
ucenje_tjedni = 60,
ekosustav = 50,
trosak_eur = 80
)
w <- r_k / sum(r_k)
w
## razvoj_tjedni perf_rps sigurnost skalabilnost ucenje_tjedni
## 0.20000000 0.13333333 0.27777778 0.17777778 0.06666667
## ekosustav trosak_eur
## 0.05555556 0.08888889
# 3) Funkcije skaliranja 0-100
scale_benefit <- function(x) {
if (diff(range(x)) == 0) return(rep(100, length(x)))
(x - min(x)) / (max(x) - min(x)) * 100
}
scale_cost <- function(x) {
if (diff(range(x)) == 0) return(rep(100, length(x)))
(max(x) - x) / (max(x) - min(x)) * 100
}
# 4) Skaliranje kriterija
scores <- within(alts, {
s_razvoj <- scale_cost(razvoj_tjedni)
s_perf <- scale_benefit(perf_rps)
s_sig <- scale_benefit(sigurnost)
s_skal <- scale_benefit(skalabilnost)
s_ucenje <- scale_cost(ucenje_tjedni)
s_ekos <- scale_benefit(ekosustav)
s_trosak <- scale_cost(trosak_eur)
})
# 5) SMART (klasični): težinski zbroj
scores$SMART <- with(scores,
w["razvoj_tjedni"] * s_razvoj +
w["perf_rps"] * s_perf +
w["sigurnost"] * s_sig +
w["skalabilnost"] * s_skal +
w["ucenje_tjedni"] * s_ucenje +
w["ekosustav"] * s_ekos +
w["trosak_eur"] * s_trosak
)
# 6) Pregled skaliranih vrijednosti i ranga
out <- scores[order(-scores$SMART), c(
"alternativa","framework",
"s_razvoj","s_perf","s_sig","s_skal","s_ucenje","s_ekos","s_trosak",
"SMART"
)]
knitr::kable(out, digits = 2, caption = "SMART: skalirane vrijednosti (0–100) i ukupna korisnost")
| alternativa | framework | s_razvoj | s_perf | s_sig | s_skal | s_ucenje | s_ekos | s_trosak | SMART | |
|---|---|---|---|---|---|---|---|---|---|---|
| 2 | A2 | Spring Boot | 0.00 | 100.00 | 100.0 | 100.00 | 0.00 | 100.0 | 0.00 | 64.44 |
| 3 | A3 | ASP.NET Core | 33.33 | 85.71 | 100.0 | 58.33 | 33.33 | 37.5 | 29.41 | 63.16 |
| 4 | A4 | NestJS | 100.00 | 57.14 | 12.5 | 33.33 | 66.67 | 37.5 | 58.82 | 48.77 |
| 1 | A1 | Django | 66.67 | 14.29 | 37.5 | 16.67 | 100.00 | 100.0 | 88.24 | 48.68 |
| 5 | A5 | Rails | 66.67 | 0.00 | 0.0 | 0.00 | 66.67 | 0.0 | 100.00 | 26.67 |
Dobiveni SMART rezultat \(Ui\) predstavlja ukupnu korisnost alternative kao kompromis između kriterija, uz zadane težine i skaliranje. Alternativa s najvećim \(Ui\) je preporučeni izbor.
Važno: SMART vrijednosti su relativne i ovise o:
Ako su razlike među prvoplasiranim alternativama male, preporučuje se analiza osjetljivosti (npr. promjena težine sigurnosti ili vremena razvoja za ±10%) kako bi se provjerilo je li rang stabilan.
Ovdje su razlike prilično male, prvoplasirani ima 64.44, a drugoplasirani 63.16 (≈ 1.28 boda na skali 0–100). Možda bi ovdje bilo dobro dodati još jedan kriterij, maknuti jedan kriterij ili ponovno razmitriti važnost dimenzija?
Što znači mala razlika?
Što dobivamo ako dodamo/izmijenimo kriterije?
Dodati kriterij je opravdano ako postoji realna dimenzija koja u praksi presudi, a trenutno nije modelirana. U IT-u tipični “tie-breakeri” su:
To su kriteriji koji često naprave razliku kad su performanse/sigurnost “u istom rangu”.
Kad ima smisla maknuti kriterij?
Uklonit ćemo kriterij ako:
Kad ponovno razmisliti o važnosti dimenzija?
Kad mala razlika dolazi od toga da su težine postavljene “na autopilotu”, a u stvarnom projektu postoji jasna strategija:
Provjera robusnosti:
Slijedimo provjeru robusnosti:
crit <- "sigurnost" # koji kriterij perturbirамо
pct <- 0.5 # +/-10%
deltas <- seq(-pct, pct, by = 0.05) # niz promjena (od -50% do +50% u koracima 5%)
# Matrica skaliranih vrijednosti (stupci nazivima moraju odgovarati težinama w)
S <- cbind(
razvoj_tjedni = scores$s_razvoj,
perf_rps = scores$s_perf,
sigurnost = scores$s_sig,
skalabilnost = scores$s_skal,
ucenje_tjedni = scores$s_ucenje,
ekosustav = scores$s_ekos,
trosak_eur = scores$s_trosak
)
w0 <- w[colnames(S)]
w0 <- w0 / sum(w0)
smart_from_weights <- function(S, w) {
w <- w[colnames(S)]
w <- w / sum(w)
as.numeric(S %*% w)
}
# Kad sigurnost povećamo za, npr. 10%, mijenjamo omjer sigurnosti
# prema svim ostalim kriterijima za +10%,
# dok omjeri između ostalih kriterija ostaju isti;
# zatim renormalizacijom vraćamo sumu težina na 1.
bump_weight <- function(w, crit, delta) {
w_new <- w
w_new[crit] <- w[crit] * (1 + delta)
w_new / sum(w_new)
}
scores$SMART_base <- smart_from_weights(S, w0)
base_rank <- scores[order(-scores$SMART_base), c("alternativa","framework","SMART_base")]
base_top1 <- base_rank$alternativa[1]
base_top2 <- base_rank$alternativa[2]
# --- Petlja po deltama ---
res <- lapply(deltas, function(d) {
w_new <- bump_weight(w0, crit, d)
sc <- smart_from_weights(S, w_new)
ord <- order(-sc)
data.frame(
delta = d,
w_sigurnost = w_new[crit],
top1 = scores$alternativa[ord[1]],
top2 = scores$alternativa[ord[2]],
top1_score = sc[ord[1]],
top2_score = sc[ord[2]],
gap = sc[ord[1]] - sc[ord[2]],
flip_top1 = (scores$alternativa[ord[1]] != base_top1),
flip_top2 = (scores$alternativa[ord[2]] != base_top2)
)
})
sens_table <- do.call(rbind, res)
sens_table
## delta w_sigurnost top1 top2 top1_score top2_score gap
## sigurnost -0.50 0.1612903 A2 A3 58.70968 57.22192 1.487756
## sigurnost1 -0.45 0.1746032 A2 A3 59.36508 57.90094 1.464141
## sigurnost2 -0.40 0.1875000 A2 A3 60.00000 58.55874 1.441264
## sigurnost3 -0.35 0.2000000 A2 A3 60.61538 59.19629 1.419091
## sigurnost4 -0.30 0.2121212 A2 A3 61.21212 59.81453 1.397589
## sigurnost5 -0.25 0.2238806 A2 A3 61.79104 60.41431 1.376730
## sigurnost6 -0.20 0.2352941 A2 A3 62.35294 60.99646 1.356484
## sigurnost7 -0.15 0.2463768 A2 A3 62.89855 61.56173 1.336825
## sigurnost8 -0.10 0.2571429 A2 A3 63.42857 62.11084 1.317727
## sigurnost9 -0.05 0.2676056 A2 A3 63.94366 62.64449 1.299168
## sigurnost10 0.00 0.2777778 A2 A3 64.44444 63.16332 1.281124
## sigurnost11 0.05 0.2876712 A2 A3 64.93151 63.66793 1.263574
## sigurnost12 0.10 0.2972973 A2 A3 65.40541 64.15891 1.246499
## sigurnost13 0.15 0.3066667 A2 A3 65.86667 64.63679 1.229879
## sigurnost14 0.20 0.3157895 A2 A3 66.31579 65.10209 1.213696
## sigurnost15 0.25 0.3246753 A2 A3 66.75325 65.55531 1.197934
## sigurnost16 0.30 0.3333333 A2 A3 67.17949 65.99691 1.182576
## sigurnost17 0.35 0.3417722 A2 A3 67.59494 66.42733 1.167606
## sigurnost18 0.40 0.3500000 A2 A3 68.00000 66.84699 1.153011
## sigurnost19 0.45 0.3580247 A2 A3 68.39506 67.25629 1.138776
## sigurnost20 0.50 0.3658537 A2 A3 68.78049 67.65560 1.124889
## flip_top1 flip_top2
## sigurnost FALSE FALSE
## sigurnost1 FALSE FALSE
## sigurnost2 FALSE FALSE
## sigurnost3 FALSE FALSE
## sigurnost4 FALSE FALSE
## sigurnost5 FALSE FALSE
## sigurnost6 FALSE FALSE
## sigurnost7 FALSE FALSE
## sigurnost8 FALSE FALSE
## sigurnost9 FALSE FALSE
## sigurnost10 FALSE FALSE
## sigurnost11 FALSE FALSE
## sigurnost12 FALSE FALSE
## sigurnost13 FALSE FALSE
## sigurnost14 FALSE FALSE
## sigurnost15 FALSE FALSE
## sigurnost16 FALSE FALSE
## sigurnost17 FALSE FALSE
## sigurnost18 FALSE FALSE
## sigurnost19 FALSE FALSE
## sigurnost20 FALSE FALSE
Analiza osjetljivosti pokazuje da je rang stabilan: u rasponu promjene težine kriterija sigurnost od −50% do +50% pobjednik ostaje A2, a drugoplasirani A3. Povećanjem važnosti sigurnosti oba skora rastu, ali se razlika A2–A3 blago smanjuje, što upućuje da A3 relativno više profitira od naglašavanja sigurnosti. Unatoč tome, A2 zadržava prednost pa je odluka robusna na razumnu promjenu ove težine.
Metodu je u 1970im godinama kreirao Saaty. U drugom izdanju knjige „Models, Methods, Concepts & Applications of the Analytic Hierarchy Process“, Saaty i Vargas (2012) osvrću se na osnove AHP-a i tvrde da AHP predstavlja opću teoriju mjerenja koja se može koristiti za kreiranje omjernih ljestvica vrijednosti pri diskretnim i kontinuiranim uparenim usporedbama u hijerarhijskim strukturama s više razina. Te se usporedbe mogu bazirati na stvarnim mjerenjima ili pripisivanju vrijednosti temeljem Saatyjeve skale koja odražava relativnu snagu preferencija i osjećaja prema alternativama.
Saatyjeva skala
Za primjenu ove metode, mora postojati hijerarhijski ili mrežni prikaz problema koji se rješava. Nadalje, mora biti omogućena usporedba alternativa u parovima, tj. svake dvije alternative moguće je usporediti. U slučaju diskretnih alternativa, te usporedbe rezultiraju matricama dominantnosti, a u slučaju kontinuiranih alternativa (tj. alternativa mjerenih na kontinuiranim ljestvicama) vode do jezgri Fredholm operatora iz kojih se izdvajaju omjerne ljestvice u obliku glavnih eigenvektora ili eigenfunkcija. Matrice ili jezgre su pozitivne i recipročne (\(a_{ij}=1/a_{ji}\) , Saaty i Vargas, 2012). S obzirom na razlite pristupe odlučivanju, postoji i pristup grupnom odlučivanju, pri čemu se individualno pripisane vrijednosti pojedinaca objedinjavaju za donošenje zajedničke odluke.
Pri upotrebi AHP metode, osobitu pozornost treba posvetiti odstupanju od konzistentnosti i mjerenju tog odstupanja, kao i ovisnosti elemenata unutar i između grupa struktura (Saaty i Vargas, 2012). Radi se o najšire primijenjenoj metodi u multikriterijskom odlučivanju, osobito pri planiranju i alokaciji resursa te rješavanju konflikata. Nadalje, ukoliko su usporedbe bazirane na stvarnim mjerenjima, može se dogoditi da su mjere iskazane u različitim mjernim jedinicama. U takvom slučaju, važnost kriterija ne može se utvrđivati na uobičajen način (odozdo prema gore), nego obrnutim pristupom (Saaty i Vargas, 2012:34).
Saaty i Vargas (2012) daju primjer primjene osnovne ljestvice (Saatyjeve skale) na temu koje se piće naviše konzumira u USA.
Primjer osnovne ljestvice
Izvor: Saaty i Vargas (2012).
Dakle, analitički hijerarhijski procesi (AHP) omogućuju izražavanje osobnih/ subjektivnih preferencija o različitim aspektima situacije/ problema koji se želi riješiti. Ova metoda uzima u obzir činjenicu da se i najsloženiji problemi mogu razgraditi na hijerarhiju i to na način da se u analizu uključe kvantitativni i kvalitativni aspekti problema. AHP omogućuje interaktivno strukturiranje (oblikovanje hijerarhije) problema kao pripremu scenarija odlučivanja. Ocjenjivanje se vrši u parovima elemenata hijerarhije (ciljeva, kriterija i alternativa). AHP strukturira problem u razinama, tj. poredaju se odabrani faktori od najvažnijeg cilja na kriterije, pod kriterije i alternative. AHP je vrlo fleksibilna metoda jer dozvoljava da se kod složenih problema s mnogo kriterija i dovoljno velikim brojem alternativa, relativno lako pronađu odnosi između kriterija i alternativa, te da se prepozna njihov eksplicitni ili relativni utjecaj i značaj u realnom okruženju i da odredi dominantni utjecaj jednog kriterija na drugi. Uvjeti za upotrebu su nemogućnost uočavanja jednog optimalnog rješenja i konzistentnost kriterija.
Postupak primjene:
Postupak je moguće provesti u MS Excelu, iako ne postoje unaprijed pripremljene funkcije. To znači da se postupak provodi „ručno“ uz kreiranje obrasca u MS Excelu koji može poslužiti za ponovljenu primjenu za situacije s jednakim brojem alternativa i kriterija uz, naravno, promjenu preferencija. Primjer koji će se računati u MS Excelu, ujedno će poslužiti i za raščlanjivanje metode po koracima provođenja.
Primjer
Ovdje će se koristiti primjer odabira najbolje kuće, prilagođen iz Saaty i Vargas (2012). Osoba koja ima prosječna primanja želi kupiti kuću. U užem izboru su tri kuće, A, B i C. Identificirane su tri glavne skupine čimbenika koje će utjecati na odabir kuće: ekonomski, geografski i fizički. Ipak, osoba želi provjeriti važnost svih pojedinačnih čimbenika unutar tih skupina. Dakle, potrebno je identificirati čimbenike koji su osobi bitni pri odabiru kuće. U ovom slučaju, to su:
Stoga je prvi korak u primjeni AHP metode strukturiranje problema u obliku hijerarhije (naziva se dekompozicija).
Strukturiranje problema u obliku hijerarhije
(Prilagođeno iz Saaty i Vargas, 2012).
Sljedeći korak je komparativna prosudba. Svaki par kriterija uspoređuje se i kriterijima se pripisuje numerička vrijednost prema Saatyjevoj skali, s obzirom na verbalni izraz važnosti jednog kriterija u odnosu na drugi. Na taj je način promatrana osoba kreirala sljedeći prikaz (umjesto naziva kriterija, korišteni su redni brojevi kriterija naznačeni u zaglavlju i predstupcu tablice).
Prvi korak pri kreiranju osnovne ljestvice
Preostala mjesta popunjavaju se poštujući pravilo recipročnosti, tj. \(a_{ij}=\frac{1}{a_{ji}}\) .
Drugi korak pri kreiranju osnovne ljestvice
Osim toga, izračunate su sume stupaca koje će biti potrebne u sljedećem koraku. Sljedeći je korak utvrđivanje vektora prioriteta kriterija. Za to, dobivene je vrijednosti potrebno normalizirati. Normalizacija se u ovom slučaju odnosi na njihovo ujednačavanje s obzirom na relativnu važnost i provodi se dijeljenjem svakog elementa s pripadajućom sumom stupca. Tako normalizirane vrijednosti daju sumu 1 po stupcu. Potom se izračunavaju prosjeci svakog retka (Anderson et al., 2012). Upravo izračunati prosjeci tvore vektor prioriteta, koji je ujedno i aproksimacija glavnog eigenvektora matrice prioriteta kriterija.
Pozadina ovog postupka vezana je uz linearnu algebru (Klein, 2019). Naime, pripisivanjem težina (engl. weights) prioritetima kreirana je matrica
\[ W= \begin{bmatrix} \frac{w_1}{w_1} & \frac{w_1}{w_2} & \cdots & \frac{w_1}{w_n}\\ \frac{w_2}{w_1} & \frac{w_2}{w_2} & \cdots & \frac{w_2}{w_n}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{w_n}{w_1} & \frac{w_n}{w_2} & \cdots & \frac{w_n}{w_n} \end{bmatrix}. \] Karakteristike ove matrice su da ima jedinice na dijagonali i da je recipročna (\(w_ij=1/w_{ji}\) ili \(w_i/w_j =1/(w_j/w_i )\), odnosno, vrijednosti ispod dijagonale recipročne su vrijednostima iznad dijagonale). Osim toga, za sve elemente matrice vrijedi da su pozitivni (\(w_{ij}>0\)). Također, u situaciji savršene konzistencije u težinama pripisanim kriterijima, vrijedilo bi da je svaki stupac jednak prvom stupcu pomnoženim nekim brojem, a svaki redak jednak prvom retku pomnoženim nekim brojem. Bilo koji od ta dva uvjeta vodi do toga da je rang matrice A jednak 1. Ako je rang matrice A jednak 1, to znači da postoji jedna, nenegativna svojstvena vrijednost matrice \(λ_{max}\) (engl. eigenvalue). Da bi se utvrdio vektor prioriteta, potrebno je riješiti matričnu jednadžbu Wv=Nv, gdje v je vektor prioriteta kriterija, ujedno i svojstveni vektor matrice W. Jednadžba je rješiva, ako je N svojstvena vrijednost matrice W. S obzirom da je matrica pozitivna, može se primijeniti Perron-Frobenius teorem. U slučaju savršene konzistentnosti težina pripisanih kriterijima, trag matrice bit će jednak broju kriterija (\(tr(W)=N\)). Štoviše, suma svojstvenih vrijednosti jednaka je tragu matrice, što je pak jednako broju kriterija.
Ipak u praksi se događa da neće postojati savršena konzistentnost težina pripisanih kriterijima (tj. svaki stupac nije jednak prvom stupcu pomnoženim nekim brojem, niti je svaki redak jednak prvom retku pomnoženim nekim brojem). Neka je u praksi je kreirana matrica težina kriterija:
\[ A= \begin{bmatrix} 1 & a_{12} & \cdots & a_{1n}\\ \frac{1}{a_{12}} & 1 & \cdots & a_{2n}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{1}{a_{1n}} & \frac{1}{a_{2n}} & \cdots & 1 \end{bmatrix}. \]
Takva matrica može imati višestruke svojstvene vrijednosti i vrijedi da λ_max≠N. Iako će matrica A i dalje biti recipročna, neće postojati konzistentnost. S obzirom na male promjene u elementima matrice vode do manjih grešaka u svojstvenim vrijednostima matrice, Saaty je dokazao da ako se taj odnos definira kao \(a_{ij}=w_{ij}+ε_{ij}\) i ako su odstupanja od savršene prosudbe težina \(ε_{ij}\) malene, tada vrijedi \(λ_{max}→N\). Ako vrijedi da je \(λ_{max}→N\), tada je moguće utvrditi aproksimaciju vektora prioriteta v̂, na način da se svaki stupac skalira na sumu jednaku 1, a potom utvrdi aritmetička sredina redaka (Saaty, 1977: 238,239).
Utvrđivanje vektora prioriteta
Alternativno, postupak je moguće provesti množenjem svih vrijednosti u retku te izračunavanjem n-tog korjena tog umnoška (n je broj pomnoženih vrijednosti, tj. broj kriterija). Zapravo se radi o geometrijskoj sredini redaka. Na taj način dobiva se vektor stupac. Vrijednosti u tog vektor stupca potrebno je sumirati, a potom svaku vrijednost iz tog vektor stupca podijeliti sa sumom i to je drugi način na koji se može izračunati vektor prioriteta (u literaturi na taj se postupak referira i kao na multiplikativni način).
Za izračun omjera konzistencije kriterija potrebno je provesti još nekoliko međukoraka. Indeks konzistencije izračunava se temeljem izraza \(CI=\frac{λ_{max}-n}{n-1}\), gdje je n broj kriterija, a \(λ_{max}\) dobiva se pomoću nekoliko pomoćnih radnji. U slučaju savršene konzistencije vrijedi \(λ_{max}=n\), iz čega slijedi da je u slučaju savršene konzistencije \(CI=0\). Kako se vrijednost CI povećava, konzistencija je manja, a vrijednosti koje se približavaju jedinici ukazuju na posve nasumičnu prosudbu (to jest, izostanak prosudbe). Prva od pomoćnih radnji odnosi se na kreiranje pomoćne matrice koja se kreira na način da se pripadajući elementi vektora prioriteta množe s vrijednostima stupca početne matrice koji se odnosi na isti kriterij. Potom se sume redaka kriterija dijele s pripadajućim elementom iz vektora prioriteta (koji se odnosi na isti kriterij). Na taj je način kreiran vektor stupac (u tablici u stupcu J), a prosjek elementa predstavlja \(λ_{max}\).
Izračun indeksa konzistencije
U ovom slučaju, izračunat je indeks konzistencije CI=(λ_max-n)/(n-1)=(7.745-7)/(7-1)=0.124. Za izračun omjera konzistencija (engl. consistency ratio), koristi se izraz CR=CI/R. R je pripadajuća vrijednost za korišteni broj kriterija n, prikazan u tablici. Vrijednosti u tablici predstavljaju CI vrijednosti kreirane temeljem vrlo velikih uzoraka i posve slučajne (random) prosudbe (Saaty, 1980, Coyle, 2004).
Referentne vrijednosti R
Omjer konzistentnosti u ovom slučaju iznosi \(CR=\frac{CI}{R}=\frac{0.124}{1.32}=0.094\). Ovo predstavlja skoro pa graničnu vrijednost indeksa konzistencije. Naime, prema Saatyju, kriterij za daljnju upotrebu je CR<0.1. Ukoliko bi se pojavile vrijednosti veće ili jednake 0.1, to bi značilo da je konzistencija kriterija narušena i u takvoj situaciji potrebno je vratiti se na korak evaluacije alternativa te revidirati evaluaciju alternativa. Osim toga, moguće je i ukloniti kriterij evaluacije. Naime, što je veći broj kriterija evaluacije, to je teže zadržati niske vrijednosti CR. Ipak, ne treba pretjerivati u eliminaciji kriterija, jer se time uklanja i kompleksnost i realističnost situacije.
S obzirom da je u ovom slučaju CR dovoljno malen, nastavlja se s postupkom. U sljedećem koraku potrebno je evaluirati alternative s obzirom na kriterije. To također čini osoba koja želi kupiti kuću (na tablici prikazano u rasponu A49:D52 za kriterij veličina kuće).
Evaluacija alternativa s obzirom na kriterije
Moguće je utvrditi i idealni prioritet (nije prikazano na slici). Vrijednosti dobivene za normalizirani prioritet dijele se s najvećom vrijednosti među njima. Na taj način idealna alternativa prema pojedinom kriteriju poprima vrijednost 1, a ostale alternative vrijednost manju od 1.
Nakon evaluacije alternativa, provodi se postupak utvrđivanja omjera konzistentnosti, na način kao što je to učinjeno za kriterije. Rezultati su prikazani u isječku iz MS Excela na sljedećoj slici, a normalizirani prioriteti nazivaju se i lokalnim prioritetima alternativa.
Utvrđivanje lokalnih prioriteta alternative
Sljedeći je korak sinteza prioriteta. To se može učiniti na dva načina, distributivni i idealni način. Ovdje će se koristiti distributivni način. U sljedećoj tablici sistematizirane su vrijednosti vektora prioriteta kriterija i normalizirane vrijednosti evaluacije kuće prema pojedinom kriteriju. To je učinjeno zbog preglednosti i pri izračunu nije potrebno sastavljati nove tablice.
Sinteza prioriteta
Ovdje je vektor prioriteta kriterija transponiran u vektor redak ali su elementi i dalje redoslijedno posloženi i njihova je pozicija u vektoru i dalje vezana za kriterij pod istim rednim brojem, pa je tako prvi element vezan uz prvi kriterij, itd. Distributivni način sinteze prioriteta vrši se na način da se elementi vektora prioriteta kriterija množe s pripadajućim normaliziranim prioritetima kuća (za isti taj kriterij) te sumiraju po retcima.
Utvrđivanje vektora prioriteta za alternative
Ovaj postupak rezultira kompozitnim, globalnim vektorom prioriteta (Saaty i Vargas, 2012). Prema distributivnoj sintezi prioriteta najveću vrijednost poprima kuća B, pa je ujedno to i preporuka odluke. Alternativni postupak odnosi se na idealni način sinteze, koji se izračunava temeljem ranije opisanih idealnih vrijednosti, a u ovom slučaju rezultira preporukom za kupnju kuće A. Promatrajući veliki skup modeliranih situacija, utvrđeno je da će se rezultat distributivnog i idealnog načina sinteze poklapati u 92 % slučajeva (Saaty, 1994). Razlika u rezultatima može se razumjeti kroz objašnjenje razloga odabira preporučene alternative. U ovom slučaju, osoba bira kuću B (najbolji izbor prema distributivnom načinu) ako želi odabrati najbolju kuću s obzirom na ostale alternative i ako, na primjer postoje dodatni primjerci alternativa i oni igraju ulogu (na primjer, više identičnih kuća). Kuća A je najbolji odabir ako osoba želi najbolju/ idealnu kuću za sebe, bez obzira na ostale kuće i dodatne primjerke takvih kuća.
Primjer postupka izračuna u R-u prikazan je u nastavku.
library(MCDA)
Velicina_kuce <- t(matrix(c(1,6,8,1/6,1,4,1/8,1/4,1),
nrow=3,ncol=3, byrow=TRUE))
colnames(Velicina_kuce) = c("A", "B", "C")
rownames(Velicina_kuce) = c("A", "B", "C")
Prijevoz <- t(matrix(c(1,7,1/5,1/7,1,1/8,5,8,1),
nrow=3,ncol=3, byrow=TRUE))
colnames(Prijevoz) = c("A", "B", "C")
rownames(Prijevoz) = c("A", "B", "C")
Susjedstvo <- t(matrix(c(1,8,6,1/8,1,1/4,1/6,4,1),
nrow=3,ncol=3, byrow=TRUE))
colnames(Susjedstvo) = c("A", "B", "C")
rownames(Susjedstvo) = c("A", "B", "C")
Starost_kuce <- t(matrix(c(1,1,1,1,1,1,1,1,1),
nrow=3,ncol=3, byrow=TRUE))
colnames(Starost_kuce) = c("A", "B", "C")
rownames(Starost_kuce) = c("A", "B", "C")
Dvoriste <- t(matrix(c(1,5,4,1/5,1,1/3,1/4,3,1),
nrow=3,ncol=3, byrow=TRUE))
colnames(Dvoriste) = c("A", "B", "C")
rownames(Dvoriste) = c("A", "B", "C")
Opremljenost <- t(matrix(c(1,8,6,1/8,1,1/5,1/6,5,1),
nrow=3,ncol=3, byrow=TRUE))
colnames(Opremljenost) = c("A", "B", "C")
rownames(Opremljenost) = c("A", "B", "C")
Financiranje <- t(matrix(c(1,1/7,1/5,7,1,3,5,1/3,1),
nrow=3,ncol=3, byrow=TRUE))
colnames(Financiranje) = c("A", "B", "C")
rownames(Financiranje) = c("A", "B", "C")
kriteriji <- list(Velicina_kuce=Velicina_kuce,
Prijevoz=Prijevoz,
Susjedstvo=Susjedstvo,
Starost_kuce=Starost_kuce,
Dvoriste=Dvoriste,
Opremljenost=Opremljenost,
Financiranje=Financiranje)
tezine <- t(matrix(c(1,5,3,7,6,6,1/4,
1/5,1,1/3,5,3,3,1/7,
1/3,3,1,6,3,4,1/5,
1/7,1/5,1/6,1,1/3,1/4,1/8,
1/6,1/3,1/3,3,1,1/2,1/6,
1/6,1/3,1/4,4,2,1,1/6,
4,7,5,8,6,6,1),
nrow=7,ncol=7, byrow = TRUE))
colnames(tezine) = c("Velicina_kuce", "Prijevoz", "Susjedstvo", "Starost_kuce", "Dvoriste", "Opremljenost", "Financiranje")
rownames(tezine)= c("Velicina_kuce", "Prijevoz", "Susjedstvo", "Starost_kuce", "Dvoriste", "Opremljenost", "Financiranje")
prioritet <- AHP(tezine, kriteriji)
prioritet
## A B C
## 0.2022577 0.5194057 0.2783366
Nedostatak ovog paketa jest što ne nudi izračun konzistencije (niti indeksa, niti omjera), dok su brzina i lakoća dolaženja do rješenja očita prednost. S obzirom da se ne možemo pouzdati u izračunato bez provjere konzistencije, ovaj paket nije dovoljan za kreiranje modela. U sljedećem primjeru ćemo se ekstenzivnije pozabaviti pristupom kreiranju AHP modela, od pripreme podataka do koda i interpretacije.
Osim AHP metode, MCDM paket nudi i nekoliko drugih metoda za potporu
odlučivanju, kao što su ELECTRE III, MARE, PROMETHEE, SRMP, TOPSIS.
Alternativno, na raspolaganju je još i ahp paket
(devtools::install_github("gluc/ahp", build_vignettes = TRUE)),
ali je za njega potrebno model sastaviti u zasebnoj datoteci, pa
učitati. Prednost je što omogućuje vizualizaciju rezultata te
utvrđivanje (ne)konzistencije. Za primjenu AHP metode za grupno
odlučivanje (podaci prikupljeni putem upitnika), na raspolaganju je
paket ahpsurvey.
Neka je \(n\) broj elemenata (kriterija ili alternativa) koje uspoređujemo. Usporedbe parova daju matricu usporedbi:
\[ A = [a_{ij}], \quad a_{ij} > 0,\quad a_{ii}=1,\quad a_{ij}=\frac{1}{a_{ji}}. \]
U idealno konzistentnom slučaju vrijedi \(a_{ij}=\frac{w_i}{w_j}\), pa je:
\[ A \, w = n\, w, \]
odnosno \(w\) je svojstveni vektor (prioriteti), a najveća svojstvena vrijednost je \(\lambda_{\max}=n\).
U praksi matrica nije savršeno konzistentna pa je \(\lambda_{\max}\ge n\), a prioriteti se često računaju na dva načina:
Konzistentnost:
\[ CI = \frac{\lambda_{\max}-n}{n-1}, \qquad CR=\frac{CI}{RI}. \]
gdje je \(RI\) “random index” (referentna vrijednost za slučajne matrice). Tipično se prihvaća da je usporedba dovoljno konzistentna ako je \(CR < 0.1\).
Kratka pomoćna tablica RI (n=1..10), korisno za provjere u kodu
RI <- c(`1`=0.00, `2`=0.00, `3`=0.58, `4`=0.90, `5`=1.12,
`6`=1.24, `7`=1.32, `8`=1.41, `9`=1.45, `10`=1.49)
RI
## 1 2 3 4 5 6 7 8 9 10
## 0.00 0.00 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49
Odabir kandidata za poziciju projektnog menadžera
Tvrtka Zvrk Trk d.o.o. traži najboljeg kandidata za poziciju projektnog menadžera. Selekcijski postupak obuhvaćao je pregled dostavljenih životopisa, a potom odabir deset kandidata koji su pristupili testu kojim se provjeravalo tehničko znanje kandidata. U sljedećem koraku, odabrana su tri kandidata s kojima je odrađen intervju za posao. Kako niti jedan kandidat ne odskače po svim kriterijima, potrebna je daljnja analiza njihove prikladnosti za ovu poziciju. Ovaj proces uključuje utvrđivanje kriterija te usporedbu kriterija, a potom usporedbu kandidata s obzirom na kriterije.
U prvom koraku, definirani su kriteriji prema kojima će se kandidati ocjenjivati:
Menadžerski tim je suglasan da nisu svi kriteriji podjednako važni za ovo radno mjesto, pa su pristupili usporedbi parova kriterija. Njihova evaluacija prikazana je sljedećom tablicom:
| Par kriterija | Važniji kriterij | Izraz važnosti |
|---|---|---|
| Iskustvo - komunikacijske vještine | Iskustvo | Umjereno važnije |
| Iskustvo - liderstvo | Liderstvo | Jednako do umjereno |
| Iskustvo - tehničko znanje | Tehničko znanje | Umjereno do znatno važnije |
| Komunikacijske vj. - liderstvo | Liderstvo | Umjereno do znatno važnije |
| Komunikacijske vj. - tehničko znanje | Tehničko znanje | Umjereno važnije |
| Liderstvo - tehničko znanje | Liderstvo | Jednako do umjereno |
Temeljem životopisa, testa i intervjua, menadžerski tim Zvrk Trka d.o.o. kreirao je sažeti prikaz karakteristika svakog od kandidata:
Kandidat 1:
Kandidat 2:
Kandidat 3:
U nastavku je menadžerski tim Zvrk Trka d.o.o. usporedio kandidate u parovima, s obzirom na svaki od kriterija, i zapisali su to u matričnom obliku:
| Iskustvo | Kandidat 1 | Kandidat 2 | Kandidat 3 |
|---|---|---|---|
| Kandidat 1 | 1 | Jednako do umjereno važnije | Umjereno do znatno važnije |
| Kandidat 2 | 1 | Umjereno važnije | |
| Kandidat 3 | 1 |
| Komunikacijske vještine | Kandidat 1 | Kandidat 2 | Kandidat 3 |
|---|---|---|---|
| Kandidat 1 | 1 | Umjereno važnije | Znantno važnije |
| Kandidat 2 | 1 | Umjereno do znatno važnije | |
| Kandidat 3 | 1 |
| Liderstvo | Kandidat 1 | Kandidat 2 | Kandidat 3 |
|---|---|---|---|
| Kandidat 1 | 1 | ||
| Kandidat 2 | Znantno važnije | 1 | Umjereno do znatno važnije |
| Kandidat 3 | Umjereno važniji | 1 |
| Tehničko znanje | Kandidat 1 | Kandidat 2 | Kandidat 3 |
|---|---|---|---|
| Kandidat 1 | 1 | ||
| Kandidat 2 | Umjereno važnije | 1 | |
| Kandidat 3 | Jednako do umjereno važnije | Umjereno važnije | 1 |
Odabrali ste koristiti AHP metodu (Analitički hijerarhijski
procesi). Saaty i Vargas (2012) osvrću se na osnove AHP-a i tvrde da AHP
predstavlja opću teoriju mjerenja koja se može koristiti za kreiranje
omjernih ljestvica vrijednosti pri diskretnim i kontinuiranim uparenim
usporedbama u hijerarhijskim strukturama s više razina. Te se usporedbe
mogu bazirati na stvarnim mjerenjima ili pripisivanju vrijednosti
temeljem Saatyjeve skale koja odražava relativnu snagu preferencija i
osjećaja prema alternativama. Zbog toga se, pri pripisivanju numeričkih
rangova verbalnim izrazima važnosti, koristi Saatyjeva skala.
Izvor: Saaty i Vargas (2012)
Analitički hijerarhijski proces (AHP) omogućava ljudima da izraze svoje mišljenje ili preferencije o različitim dijelovima određenog problema ili situacije koju žele riješiti. Ova metoda omogućuje sistematizaciju složenih problema u obliku hijerarhijske strukture koja uključuje i kvantitativne i kvalitativne elemente problema. AHP pomaže u organiziranju problema u hijerarhiju kako bi se pripremio za proces donošenja odluka, uz ocjenjivanje elemenata hijerarhije (ciljeva, kriterija, alternativa) parovima. Metoda razvrstava problem u slojeve, od najvažnijih ciljeva do kriterija, podkriterija i alternativa. AHP je posebno koristan jer omogućuje lako identificiranje veza između kriterija i alternativa u složenim problemima s mnogo kriterija i alternativa, omogućujući prepoznavanje njihovog stvarnog ili relativnog utjecaja i važnosti. Primjenjuje se kad nije moguće pronaći jedno optimalno rješenje i kad su kriteriji konzistentni.
Proces uključuje:
Struktura problema (grafički prikaz):
# Evaluacija kriterija, utvrđivanje omjera konzistentnosti kriterija i izračun prioriteta kriterija
# Primjer koda
kriteriji <- c("Iskustvo", "Komunikacijske vještine", "Liderstvo", "Tehničko znanje")
alternative <- c("Kandidat 1", "Kandidat 2", "Kandidat 3")
matrica_kriterija <- matrix(c(1, 3, 1/2, 1/4,
1/3,1, 1/4, 1/3,
2, 4, 1, 2,
4, 3, 1/2, 1),
ncol = 4, byrow = TRUE)
matrica_iskustvo <- matrix(c(1,2,4,
1/2,1,3,
1/4,1/3,1),
ncol = 3, byrow = TRUE)
matrica_komunik <- matrix(c(1, 3, 5,
1/3,1,4,
1/5,1/4,1),
ncol = 3, byrow = TRUE)
matrica_lider <- matrix(c(1, 1/5,1/3,
5, 1, 4,
3, 1/4, 1),
ncol = 3, byrow = TRUE)
matrica_teh <- matrix(c(1, 1/3,1/4,
3, 1, 1/3,
4, 3, 1),
ncol = 3, byrow = TRUE)
# Normalizacija matrice
# Ovdje se definira funkcija koju ćemo kasnije upotrijebiti
calculate_priorities <- function(matrix) {
normalize_matrix <- sweep(matrix, 2, colSums(matrix), "/")
priorities <- apply(normalize_matrix, 1, mean)
return(priorities)
}
# Izračun konzistentnosti pomoću svojstvenih vektora (engl. eigenvector)
# Ovdje se definira funkcija koju ćemo kasnije upotrijebiti
calculate_consistency_ratio <- function(matrix) {
eigenvalues <- eigen(matrix)$values
eig_max <- max(Re(eigenvalues)) # Najveća svojstvena vrijednost
# Izračun indeksa konzistentnosti
n <- nrow(matrix) # Veličina matrice
# Određivanje RI vrijednosti na temelju veličine matrice
ri_values <- c(0, 0, 0.58, 0.90, 1.12, 1.24, 1.32, 1.41, 1.45, 1.49)
ri <- ifelse(n <= 10, ri_values[n], (1.98 * (n - 2)) / n) # Formula za n > 10
# Izračun indeksa konzistentnosti
ci <- (eig_max - n) / (n - 1)
cr <- ci / ri
return(cr)
}
# primjena funkcija
# utvrđivanje konzistencije i prioriteta
# kriteriji
prioriteti_kriterija <- calculate_priorities(matrica_kriterija)
rez_krit <- data.frame(kriteriji, prioriteti_kriterija)
knitr::kable(rez_krit, caption = "Prioriteti kriterija")
| kriteriji | prioriteti_kriterija |
|---|---|
| Iskustvo | 0.1752701 |
| Komunikacijske vještine | 0.0851245 |
| Liderstvo | 0.4097369 |
| Tehničko znanje | 0.3298685 |
cr <- calculate_consistency_ratio(matrica_kriterija)
if (cr >=0.1) {
print(paste("Kriterij konzistentnosti kriterija iznosi", round(cr, 5), " i ne biste trebali nastaviti s analizom. Provjerite usporedbe kriterija."))
} else {
print(paste("Kriterij konzistentnosti kriterija iznosi",round(cr, 5), " i manji je od granične vrijednosti 0.1 te možete nastaviti s analizom."))
}
## [1] "Kriterij konzistentnosti kriterija iznosi 0.09997 i manji je od granične vrijednosti 0.1 te možete nastaviti s analizom."
Postupak se ponavlja na način da se utvrđuju prioriteti i omjeri konzistencije za alternative s obzirom na svaki od kriterija. Rezultati su prikazani niže.
| alternative | prioriteti_iskustvo |
|---|---|
| Kandidat 1 | 0.5571429 |
| Kandidat 2 | 0.3202381 |
| Kandidat 3 | 0.1226190 |
## [1] "Kriterij konzistentnosti prema kriteriju iskustva iznosi 0.01577 i manji je od granične vrijednosti 0.1 te možete nastaviti s analizom."
| alternative | prioriteti_komunik |
|---|---|
| Kandidat 1 | 0.6193521 |
| Kandidat 2 | 0.2842285 |
| Kandidat 3 | 0.0964194 |
## [1] "Kriterij konzistentnosti prema kriteriju komunikacijskih vještina iznosi 0.07394 i manji je od granične vrijednosti 0.1 te možete nastaviti s analizom."
| alternative | prioriteti_lider |
|---|---|
| Kandidat 1 | 0.1038474 |
| Kandidat 2 | 0.6650702 |
| Kandidat 3 | 0.2310824 |
## [1] "Kriterij konzistentnosti prema kriteriju vještina liderstva iznosi 0.07394 i manji je od granične vrijednosti 0.1 te možete nastaviti s analizom."
| alternative | prioriteti_teh |
|---|---|
| Kandidat 1 | 0.1199393 |
| Kandidat 2 | 0.2720985 |
| Kandidat 3 | 0.6079622 |
## [1] "Kriterij konzistentnosti prema tehničkim znanjima iznosi 0.06337 i manji je od granične vrijednosti 0.1 te možete nastaviti s analizom."
U posljednjem koraku, prioriteti alternativa važu se s prioritetima kriterija. Na taj način će svakoj alternativi biti pridružena po jedna numerička vrijednost koja iskazuje važnost, prednost ili prioritet alternative. S obzirom na provedeni postupak, najveća vrijednost ukazuje na najveću važnost te alternative u odnosu na ostale alternative s obzirom na važnost zadanih kriterija.
# ukupni prioritet
ukupni_prioriteti <- prioriteti_kriterija[1] * prioriteti_iskustvo +
prioriteti_kriterija[2] * prioriteti_komunik +
prioriteti_kriterija[3] * prioriteti_lider +
prioriteti_kriterija[4] * prioriteti_teh
# Možete ih prikazati u tablici za bolju preglednost
rezultati <- data.frame(Kandidat = alternative, Ukupni_prioritet = ukupni_prioriteti)
knitr::kable(rezultati, caption = "Ukupni prioriteti kandidata")
| Kandidat | Ukupni_prioritet |
|---|---|
| Kandidat 1 | 0.2324868 |
| Kandidat 2 | 0.4425835 |
| Kandidat 3 | 0.3249296 |
print(paste("Preporucuje se zaposliti kandidata s najvećim ukupnim prioritetom,", round(max(rezultati$Ukupni_prioritet),4)))
## [1] "Preporucuje se zaposliti kandidata s najvećim ukupnim prioritetom, 0.4426"
U procesu odabira kandidata za poziciju projektnog menadžera u tvrtki Zvrk Trk d.o.o., primijenjena je AHP metoda kako bi se odredio najprikladniji kandidat. Kroz ovaj proces, menadžerski tim je postavio četiri ključna kriterija: iskustvo, komunikacijske vještine, liderske vještine i tehničko znanje. Evaluacija važnosti ovih kriterija pokazala je da su liderske vještine i tehničko znanje ocijenjeni kao nešto važniji od iskustva i komunikacijskih vještina.
Usporedba kandidata je pokazala da Kandidat 2 najbolje odgovara ovim kriterijima. Ima solidno iskustvo u upravljanju projektima, izuzetne komunikacijske vještine, istaknute liderske vještine i iznimno tehničko znanje. Kandidat 1, iako ima više iskustva i dobre komunikacijske vještine, pokazuje manje detaljno tehničko znanje i manje iskustva u kriznom menadžmentu. S druge strane, Kandidat 3, unatoč svom potencijalu i dobrom tehničkom znanju, ima manje praktičnog iskustva u vođenju (liderske vještine).
Svaki od kandidata ističe se na različiti način i upravo u takvim situacijama uočavaju se prednosti primjene ove metode. Štoviše, kvalitativni opisi kandidata mogu djelovati zbunjujuće i odabir uistinu može biti težak. Zbog toga je važno definirati i usporediti kriterije odabira na početku postupka. S obzirom na definirane kriterije i njihovu važnost, Kandidat 2 se izdvaja kao najbolji izbor za poziciju projektnog menadžera u tvrtki Zvrk Trk d.o.o.
Ako su prikazi ovih dviju metoda potaknuli znatiželju, korisni izvori koji opisuju druge metode:
U tablici su prikazane najčešće metode višekriterijskog odlučivanja s naglaskom na kriterije odabira metode: tip problema, vrsta ulaznih podataka, cilj analize te praktična ograničenja primjene.
| Metoda | Kada koristiti (tipične situacije) | Potrebni podaci (ulaz) | Što je rezultat (izlaz) | Prednosti | Ograničenja / kada nije prikladna | Praktični opseg (kriteriji / alternative) |
|---|---|---|---|---|---|---|
| SMART (Simple Multi-Attribute Rating Technique) | Diskretan skup alternativa; mješavina kvantitativnih i ordinalnih kriterija; potreba za transparentnim i brzo primjenjivim modelom | Matrica alternativa × kriteriji; težine kriterija (rang-bodovi ili težine); pravila skaliranja 0–100 (benefit/cost) | Agregirana korisnost (score) po alternativi i rang | Jednostavna i lako interpretabilna; pogodna za analizu osjetljivosti; dobra kao početna metoda | Ovisi o načinu normalizacije; pretpostavlja aditivnost i često linearnu kompenzaciju; težine su subjektivne | Dobro podnosi veći broj kriterija i alternativa (npr. 5–20 kriterija; 5–50 alternativa) |
| WSM (Weighted Sum Model) | Kada su kriteriji usporedivi ili se mogu dosljedno normirati; često kao osnovna agregacijska metoda | Matrica performansi; težine; normalizacija kriterija | Score i rang | Minimalna složenost; brza implementacija | Osjetljivo na normalizaciju; pretpostavlja kompenzaciju među kriterijima (trade-off) | Veliki problemi izvedivi |
| WPM (Weighted Product Model) | Kada se želi multiplikativna agregacija (jače penaliziranje slabih kriterija); kada su omjeri važni | Pozitivne vrijednosti (ili transformacije); težine; normalizacija | Score i rang | Naglašava “uravnoteženost” rješenja; slab kriterij snažnije smanjuje ukupni rezultat | Problematično s nulama/negativnim vrijednostima bez transformacija; interpretacija je manje intuitivna | Slično WSM/SMART |
| AHP (Analytic Hierarchy Process) | Kada je potrebno strukturirati problem hijerarhijski te težine i/ili ocjene izvesti iz usporedbe parova kriterija i usporedbe parova alternativa; kada su kriteriji kvalitativni | Hijerarhija (cilj–kriteriji–alternative); matrice usporedbe parova; Saatyjeva skala; izračun CR | Prioriteti kriterija i alternativa; globalni rang; CR (konzistentnost) | Ugrađena provjera konzistentnosti; pogodno za kvalitativne kriterije; primjenjivo u grupnom odlučivanju | Broj usporedbi brzo raste; osjetljivost na promjene skupa alternativa; zahtijeva disciplinu u procjenama | Tipično ~5–9 kriterija po razini; 3–7 alternativa po kriteriju (više postaje zahtjevno) |
| ANP (Analytic Network Process) | Kada postoje međusobne ovisnosti među kriterijima i/ili alternativama (nema čiste hijerarhije) | Mrežna struktura; usporedbe parova unutar i između klastera | Prioriteti u mreži (supermatrica) | Hvata povratne veze i ovisnosti; fleksibilniji od AHP | Visoka složenost; zahtjevan bez specijaliziranog softvera | Mali do srednji problemi |
| TOPSIS | Kada se rangiranje želi temeljiti na blizini idealnog i udaljenosti od anti-idealnog rješenja; često za kvantitativne kriterije | Matrica alternativa × kriteriji; težine; normalizacija; benefit/cost | Koeficijent blizine idealu i rang | Intuitivan koncept “idealnog” rješenja; dobro skalira na više alternativa | Osjetljivo na normalizaciju i korelaciju kriterija; pretpostavlja monotonu preferenciju | Pogodno za veći broj alternativa (npr. 10–200+) |
| VIKOR | Kada se traži kompromisno rješenje i želi kontrolirati ravnotežu između “grupne koristi” i “maksimalnog žaljenja” (regret) | Matrica; težine; benefit/cost; parametar \(v\) | Kompromisni rang i preporuka | Pogodno za konfliktne kriterije; eksplicitno modelira kompromis | Potrebna interpretacija parametra \(v\); može biti manje transparentno bez objašnjenja | Srednje do veće rangiranje |
| PROMETHEE | Kada su važni pragovi (indiferencija/preferencija) i nelinearne preferencije po kriterijima; kada “male razlike” nisu relevantne | Preference funkcije po kriteriju; pragovi \(q,p\); težine; matrica performansi | Outranking tokovi (phi+/phi-) i rang | Visoka fleksibilnost; dobro hvata pragove i različite oblike preferencija | Zahtijeva izbor funkcija i pragova; više parametara povećava subjektivnost | Srednje do veće rangiranje |
| ELECTRE | Kada je poželjan outranking pristup uz mogućnost veto kriterija (minimalni standardi) | Težine; pragovi; (moguće) veto pragovi; matrica performansi | Relacija nadmašivanja i/ili rang/skup prihvatljivih | Prikladno za “crvene linije” i nekompenzatorne kriterije | Parametrizacija pragova; rezultat može biti parcijalan (ne nužno totalni rang) | Srednje |
| MAUT / teorija korisnosti | Kada se želi formalno modelirati korisnost (nelinearnost, averzija prema riziku, diminishing returns); često u složenijim i “visokouložnim” odlukama | Utility funkcije po kriteriju; struktura agregacije (aditivna/multiplikativna); elicitation | Očekivana korisnost i rang | Teorijski snažna osnova; eksplicitno hvata nelinearnost i rizik | Elicitation je zahtjevan; veći broj pretpostavki; veća složenost interpretacije | Mali do srednji |
| Fuzzy MCDM (npr. fuzzy AHP, fuzzy TOPSIS) | Kada su procjene neizvjesne i prirodno “neprecizne” te se žele modelirati intervalima/fuzzy brojevima | Fuzzy brojevi/intervali; analogni postupci kao u “crisp” metodama | Fuzzy rang / intervali rangova | Bolje odražava neizvjesnost i nepreciznost procjena | Veća matematička i interpretativna složenost; može biti nepotrebno složeno za jednostavne odluke | Mali do srednji |
| GA / metaheuristike | Kada je prostor rješenja velik i kombinatoran; kada točan optimizacijski pristup nije praktičan; često u MODM | Funkcija cilja (ili više ciljeva); kodiranje rješenja; parametri algoritma | Dobro (ne nužno optimalno) rješenje ili Pareto front | Fleksibilno; primjenjivo na teške probleme | Nema jamstva optimalnosti; potrebno podešavanje; interpretacija može biti manje transparentna | Veliki problemi |
Smjernice za odabir metode (sažeto)
Start-up razvija web platformu za B2B naručivanje. U prvoj godini očekuju 30–50 klijenata, ali plan je rasti. Tim ima 2 backend developera i 1 DevOps osobu. Cilj je odabrati backend framework koji daje dobar kompromis između vremena isporuke, performansi, sigurnosti i dugoročne održivosti.
Alternative
Odabire se jedna od sljedećih opcija:
Kriteriji i tip kriterija (benefit/cost)
Podaci
| Alternativa | Framework | Razvoj (tj.) | Performanse (RPS) | Sigurnost (1–5) | Skalabilnost (1–5) | Učenje (tj.) | Ekosustav (1–5) | Trošak (€/mj.) |
|---|---|---|---|---|---|---|---|---|
| A1 | Django | 8 | 1200 | 4.0 | 4.0 | 3 | 5.0 | 350 |
| A2 | Spring Boot | 10 | 1800 | 4.5 | 5.0 | 6 | 5.0 | 500 |
| A3 | ASP.NET Core | 9 | 1700 | 4.5 | 4.5 | 5 | 4.5 | 450 |
| A4 | NestJS | 7 | 1500 | 3.8 | 4.2 | 4 | 4.5 | 400 |
| A5 | Rails | 8 | 1100 | 3.7 | 3.8 | 4 | 4.2 | 330 |
Rang-težine (SMART “direct rating”)
Donositelj odluke (CTO) dodijelio je rang-vrijednosti \(r_k\) (veće znači važnije):
Nastavnica informatike uvodi novi alat za laboratorijske vježbe na kolegiju “Uvod u analitiku podataka”. Studenti imaju različite laptope, a dio radi i iz računalnih učionica. Alat mora biti dovoljno jednostavan za početnike, ali i dovoljno moćan za realne zadatke. Odabire se jedan glavni alat za cijeli semestar.
Alternative
Kriteriji i tip kriterija (benefit/cost)
Podaci (procjena na temelju probnog semestra)
| Alt | Alat | Setup (min) | Stabilnost | Suradnja | Performanse | Praćenje rada | Privatnost | Pristupačnost | Trošak (€) |
|---|---|---|---|---|---|---|---|---|---|
| B1 | Jupyter lokalno | 45 | 3.5 | 2.0 | 4.0 | 3.0 | 4.5 | 3.0 | 0 |
| B2 | Colab | 8 | 4.0 | 4.5 | 3.8 | 4.2 | 3.2 | 4.7 | 0 |
| B3 | RStudio Desktop | 25 | 4.3 | 2.5 | 4.2 | 3.8 | 4.6 | 3.8 | 0 |
| B4 | VS Code + Python | 35 | 4.2 | 3.0 | 4.5 | 3.5 | 4.4 | 3.6 | 0 |
| B5 | Kaggle Notebooks | 12 | 3.8 | 4.0 | 3.6 | 4.0 | 3.0 | 4.3 | 0 |
Napomena: trošak je 0 za sve u ovom scenariju, ali kriterij je zadržan jer se razmatraju plaćene varijante iduće godine.
Rang-težine \(r_k\)
Start-up razvija web aplikaciju za upravljanje rezervacijama (B2B). Aplikacija ima REST API i web sučelje. Očekuje se 30–50 klijenata u prvoj godini, ali plan je rasti. Tim čine 2 backend developera i 1 DevOps (djelomično). Budžet je ograničen, ali prekidi rada i sigurnosni incidenti imaju velik reputacijski rizik. Cilj je odabrati najprikladniju cloud arhitekturu za sljedećih 12 mjeseci.
Alternative (arhitekturne opcije)
Odabire se jedna opcija.
A1: Monolit na jednoj VM (IaaS)
A2: Monolit + managed baza (PaaS DB)
A3: Kontejneri (Docker) na managed Kubernetes (K8s)
A4: Serverless (Functions + managed API gateway)
A5: Managed platforma za kontejnere (npr. Cloud Run / App Runner)
Upute (SMART)
Definirajte kriterije (preporuka: 6–9 kriterija) tako da pokrijete:
Za svaki kriterij odredite je li benefit (više je bolje) ili cost (manje je bolje).
Dodijelite težine kriterijima (npr. rang-vrijednosti \(r_k\) ili direktno \(w_k\)).
Evaluirajte svaku alternativu po svakom kriteriju:
Skalirajte na 0–100 i izračunajte SMART korisnost: \[ U_i=\sum_k w_k\,s_{ik} \]
Rangirajte alternative i napišite kratku interpretaciju.
Napomena. Ovdje nema gotovih brojki – morate ih sami razumno procijeniti na temelju opisa (uz obrazloženje).
Razvija se mobilna aplikacija za studentski portal (raspored, obavijesti, prijave ispita, push notifikacije). Aplikacija mora raditi na Android i iOS. Tim ima 1–2 developera, rok je 10 tjedana do prve verzije. Aplikacija koristi REST API i treba jednostavnu offline podršku (cache).
Alternative (tehnološke opcije)
Odabire se jedan pristup.
B1: Native razvoj (Kotlin + Swift)
B2: Flutter
B3: React Native
B4: Progressive Web App (PWA)
B5: Xamarin / .NET MAUI
Upute (SMART)
Definirajte kriterije (preporuka: 7–10), npr.:
Odredite težine (student sam).
Evaluirajte alternative:
Skalirajte i izračunajte SMART korisnost.
U interpretaciji naglasite trade-off: zašto pobjednik nije “najbolji u svemu”.
Napomena. Ovdje nema gotovih brojki – morate ih sami razumno procijeniti na temelju opisa (uz obrazloženje).
Organizacija uvodi novi interni portal (HR + edukacije + dokumenti). Potrebna je autentikacija za:
Sigurnost je važna, ali IT tim je mali (1–2 osobe). Cilj je odabrati rješenje za autentikaciju/identity management.
Alternative
Odabire se jedno rješenje.
C1: Lokalni LDAP/AD (on-prem)
C2: Cloud identity (npr. Azure AD / Entra ID ili Google Workspace Identity)
C3: Keycloak (self-hosted)
C4: Auth0 / Okta (SaaS)
C5: Custom auth (vlastita implementacija)
Upute (SMART)
Definirajte kriterije (minimalno 5), među koje obavezno uključite neke od ovih:
Postavite težine kriterija i obrazložite ih.
Evaluirajte alternative (kvantitativno gdje je smisleno; ordinalno 1–5 gdje je procjena).
Provedite SMART izračun i rangiranje.
Analiza osjetljivosti (kratko): promijenite težinu sigurnosti (+10% ili -10%) i provjerite mijenja li se pobjednik.
Napomena. Ovdje nema gotovih brojki – morate ih sami razumno procijeniti na temelju opisa (uz obrazloženje).
Fakultet prelazi na jedinstvenu platformu za e-učenje (LMS) za naredne 3 godine. Platformu će koristiti oko 2200 studenata i 140 nastavnika, uz vršna opterećenja u tjednima kolokvija i ispita. Fakultet ima mali IT tim (2 osobe) i želi izbjeći prevelik operativni teret. Sustav mora podržati kvizove, zadatke, rubrike, forum, integracije s videokonferencijama i analitiku aktivnosti.
Hijerarhija (cilj – kriteriji – alternative)
Cilj: odabrati najbolji LMS.
Kriteriji (4):
Alternative (3):
Koristi se Saatyjeva skala (1 jednako, 3 umjereno, 5 znatno, 7 vrlo znatno, 9 ekstremno; recipročnosti za suprotno).
Menadžment fakulteta daje sljedeće procjene važnosti:
Menadžment fakulteta daje sljedeće procjene važnosti (Saatyjeva skala):
K1 vs K2: Sigurnost je znatno važnija od funkcionalnosti → 5
Zašto?
K1 vs K3: Sigurnost je vrlo znatno važnija od održavanja → 7
Zašto?
K1 vs K4: Sigurnost je umjereno važnija od troška → 3
Zašto?
K2 vs K3: Funkcionalnosti su umjereno važnije od održavanja → 3
Zašto?
K4 vs K2: Trošak je umjereno važniji od funkcionalnosti → 3 (dakle K2 vs K4 = 1/3)
Zašto?
K3 vs K4: Održavanje je umjereno važnije od troška → 3
Zašto?
K1 Sigurnost i privatnost
Procjene IT tima:
Canvas je umjereno bolji od Moodle self-hosted → 3
Canvas je znatno bolji od Classroom → 5
Moodle je umjereno bolji od Classroom → 3
K2 Pedagoške funkcionalnosti
Procjene nastavnika:
Moodle je znatno bolji od Classroom → 5
Canvas je umjereno bolji od Classroom → 3
Moodle je umjereno bolji od Canvas → 3
K3 Operativno održavanje
Procjene IT tima:
Canvas je vrlo znatno bolji od Moodle self-hosted → 7
Classroom je znatno bolji od Moodle → 5
Canvas je umjereno bolji od Classroom → 3
K4 Trošak (ukupni TCO)
Procjene uprave (niže je bolje pa uspoređujemo “povoljnije”):
Classroom je znatno povoljniji od Canvas → 5
Moodle self-hosted je umjereno povoljniji od Canvas → 3
Classroom je umjereno povoljniji od Moodle → 3
Za svaki kriterij sastavite matricu alternativa \(3\times3\), izračunajte lokalne prioritete i CR.
Izvedite sintezu i dobijte globalne prioritete alternativa.
Napišite zaključak: koja je preporuka i koji su glavni trade-offovi?
Tvrtka zapošljava jednog data analysta. Kandidati su prošli tehnički test (SQL + analitički zadatak), te intervju (poslovni slučaj + komunikacija rezultata). Kandidati imaju različite prednosti, a tim želi odluku donijeti strukturirano AHP metodom.
Hijerarhija
Cilj: odabrati najboljeg kandidata.
Kriteriji (5):
Alternative (3):
Menadžerski tim daje sljedeće procjene:
U nastavku su dane informacije iz testa i intervjua. Na temelju ovih opisa studenti trebaju, za svaki kriterij posebno, provesti usporedbe parova kandidata (Ana–Bruno, Ana–Carla, Bruno–Carla) koristeći Saatyjevu skalu.
B1 Kandidat Ana — sažetak
K1 Analitičko razmišljanje:
Na analitičkom zadatku (otkrivanje uzroka pada konverzije u web shopu) krenula je od jasne strukture: segmentacija po kanalima i uređajima, zatim “funnel” analiza, pa provjera hipoteza. Dobro je razlikovala korelaciju od uzročnosti i predložila A/B test. Ipak, dio zaključaka oslanja se na pretpostavke jer nije “dubinski” provjerila kvalitetu podataka (npr. duplikate i tracking anomalies) prije interpretacije.
K2 Tehničke vještine:
SQL test: korektno riješila većinu upita (JOIN, GROUP BY, window funkcije jednostavnije razine). Zapela na jednom kompleksnijem window zadatku (rolling metric) i optimizaciji upita. R koristi solidno za osnovne analize i grafove, Python slabije. Reproducibilnost: koristi RMarkdown, ali bez stroge strukture projekta (nema uvijek jasne “pipeline” korake).
K3 Poslovno razumijevanje:
Na intervjuu je dobro povezala metrike s poslovnim ciljevima i jasno objasnila kompromis “rast vs profit”. Predložila je mjerljive KPI-eve i kako bi pratila učinak promjena. Dobro prepoznaje što je “akcijski korisno”.
K4 Komunikacija:
Najbolja u prezentaciji: jasno, sažeto, dobro prilagođava poruku publici. U stanju je objasniti i tehničke detalje netehničkoj publici. U diskusiji postavlja dobra pitanja stakeholderima.
K5 Pouzdanost i samostalnost:
Ima iskustvo samostalnog vođenja manjih analitičkih projekata. Daje realne procjene vremena, ali ponekad preuzme previše “u hodu” (risk of scope creep). Reference navode pouzdanu isporuku i dobru suradnju.
B2 Kandidat Bruno — sažetak
K1 Analitičko razmišljanje:
Na analitičkom zadatku brzo ide na “rješenje”, ali manje eksplicitno strukturira problem. Dobro radi s podacima i brzo nalazi “signal”, no ponekad preskoči objašnjenje pretpostavki i rizika interpretacije. Jako dobar u detekciji anomalija u podacima.
K2 Tehničke vještine:
Najjači tehnički: SQL odličan (kompleksni JOIN-ovi, CTE, window funkcije, optimizacija). Python vrlo dobar (pandas, automatizacija pipelinea, osnovni ML). Verzije i reproducibilnost: koristi git, environment management, jasne skripte. Vizualizacije funkcionalne, ali manje “pričaju priču”.
K3 Poslovno razumijevanje:
Ima manje domenskog iskustva. Može izračunati metrike i predložiti analizu, ali ponekad teško prioritetizira što je najbitnije za menadžment. Treba dodatna pitanja da dođe do “so what”.
K4 Komunikacija:
Komunikacija korektna, ali previše tehnička; pri prezentaciji zna otići u detalje i izgubiti nit. Na pitanja odgovara točno, ali treba poticaj da pojednostavi i strukturira narativ.
K5 Pouzdanost i samostalnost:
Visoka disciplina rada (task tracking, dokumentacija). Pouzdan u isporuci. Ponekad rigidniji u suradnji (“my way”), ali drži rokove.
B3 Kandidat Carla — sažetak
K1 Analitičko razmišljanje:
Najbolje strukturira problem: jasno definira cilj, pretpostavke, plan analize, provjere kvalitete podataka i “decision points”. Na zadatku je identificirala dvije alternativne hipoteze i predložila kako ih testirati. Vrlo oprezna u interpretaciji, ponekad sporija jer želi “zatvoriti” sve otvorene točke.
K2 Tehničke vještine:
SQL vrlo dobar (ne na Bruno razini optimizacije, ali sve bitno pokriva). R odličan za analitiku i vizualizacije, Python solidan. Reproducibilnost dobra (jasne skripte/notebookovi, ali manje formalno od Brune).
K3 Poslovno razumijevanje:
Dobro razumije KPI-eve i zna predložiti mjere koje imaju smisla za praksu. U diskusiji pokazuje da razmišlja “end-to-end” (od metrika do implementacije i praćenja).
K4 Komunikacija:
Komunikacija dobra, smirena i jasna, ali manje “uvjerljiva” od Ane. Prezentacija strukturirana, no manje karizmatična; ipak, odgovara precizno i jasno.
K5 Pouzdanost i samostalnost:
Vrlo pouzdana, dobro planira i dokumentira. Ima iskustvo “ownershipa” nad projektom. Manje sklona improvizaciji, ali vrlo stabilna u isporuci.
Zatim:
Potrebno je:
Napomena: U opisima su dane informacije tako da se iz njih može izvući razumna usporedba parova kriterija i usporedba parova alternativa, ali brojevi nisu zadani – morate ih sami odrediti.
Startup razvija platformu koja prikuplja događaje (klikovi, transakcije, IoT signali) i radi analitiku u (blizu) realnom vremenu. Sustav mora biti pouzdan, skalabilan i dovoljno jednostavan za tim od 5 ljudi.
Alternative
Kriteriji (predloženi)
Studenti mogu koristiti ili prilagoditi (min. 4 kriterija):
Opisi alternativa
C1 Kafka + stream processing
C2 AWS Kinesis ekosustav
C3 RabbitMQ + batch obrada
Potrebno je:
Napomena: U opisima su dane informacije tako da se iz njih može izvući razumna usporedba parova kriterija i usporedba parova alternativa, ali brojevi nisu zadani – morate ih sami odrediti.
Organizacija razvija nekoliko web aplikacija (internih i eksternih) i želi standardizirati autentikaciju i autorizaciju (SSO, MFA, role/permissions). Mora podržati rast broja korisnika i audit zahtjeve.
Alternative
Kriteriji (predloženi)
Studenti mogu koristiti ove ili prilagoditi (min. 5 kriterija ukupno):
Opisi alternativa
B1 Keycloak (self-hosted)
B2 Auth0 (SaaS)
B3 Azure AD / Entra ID
Potrebno je:
Napomena: U opisima su dane informacije tako da se iz njih može izvući razumna usporedba parova kriterija i usporedba parova alternativa, ali brojevi nisu zadani – morate ih sami odrediti.
Fakultet prelazi na novi LMS (Learning Management System). U užem izboru su tri sustava, a odluku donosi povjerenstvo (nastavnici + IT + studentski predstavnik). Plan je koristiti sustav najmanje 4 godine, uz integraciju s postojećim sustavima (SSO, evidencije studenata, e-mail).
Alternative
Kriteriji (predloženi)
Studenti mogu koristiti ove kriterije ili ih (uz obrazloženje) prilagoditi, ali moraju završiti s najmanje 5 kriterija:
Opisi alternativa (za usporedbu parova alternativa)
A1 Moodle (self-hosted)
A2 Canvas (cloud)
A3 Teams + Assignments/OneNote
Anderson, D. R., Sweeney, D. J., Williams, T. A., Camm, J. D., & Cochran, J. J. (2012). Quantitative Methods for Business. Cengage Learning.
Babić, Z., & Plazibat, N. (1998). Ranking of enterprises based on multicriterial analysis. International Journal of Production Economics, 56, 29–35.
Baourakis, G., Kourgiantakis, M., & Migdalas, A. (2002). The impact of e-commerce on agro-food marketing: The case of agricultural cooperatives, firms and consumers in Crete. British Food Journal.
Buchanan, J., Sheppard, P., & Vanderpoorten, D. (1998, August). Ranking projects using the ELECTRE method. In Operational Research Society of New Zealand, Proceedings of the 33rd Annual Conference (Vol. 30, pp. 42-51).
Coyle, G. (2004). Practical strategy: Structured tools and techniques. Pearson Education.
Edwards, W., & Barron, F. H. (1994). SMARTS and SMARTER: Improved simple methods for multiattribute utility measurement. Organizational Behavior and Human Decision Processes, 60(3), 306–325.
Ho, W., Xu, X., & Dey, P. K. (2010). Multi-criteria decision making approaches for supplier evaluation and selection: A literature review. European Journal of operational research, 202(1), 16-24.
Hurson, C., & Ricci-Xella, N. (1998). Multicriteria decision making and portfolio management with arbitrage pricing theory. In Operational tools in the management of financial risks (pp. 31–55). Springer.
Jablonsky, J. (1993). Multicriteria evaluation of clients in financial houses. Central European Journal of Operations Research and Economics, 3(3), 257–264.
Kahraman, C., Onar, S. C., & Oztaysi, B. (2015). Fuzzy multicriteria decision-making: A literature review. International Journal of Computational Intelligence Systems, 8(4), 637–666.
Khalil, J., Martel, J. M., & Jutras, P. (2000). Multicriterion system for credit risk rating. Gestion 2000.
Klein, J. (2019). Calculating the AHP priority vector. CARNEGIE-MELLON UNIV PITTSBURGH PA PITTSBURGH United States.
Kostelić, K. (2025). TOPSIS-based framework for evaluating employee cybersecurity risk. Croatian operational research review, 16(1), 31-44.
Kovač, D., & Podrug, D. (2023). Improving portfolio liquidity: MCDM approach to share selection on the Zagreb Stock Exchange. Croatian operational research review, 14(1), 29-39.
Kovačić, B. (2004). Višekriterijsko odlučivanje u prometu (magistarski rad). Fakultet prometnih znanosti, Zagreb.
Olson, D. L. (1996). Decision aids for selection problems. Journal of the Operational Research Society, 48(5), 541-542.
Patel, M. R., Vashi, M. P., & Bhatt, B. V. (2017). SMART–Multi-criteria decision-making technique for use in planning activities. New Horizons in Civil Engineering (NHCE 2017), 1–6.
Pohekar, S. D., & Ramachandran, M. (2004). Application of multi-criteria decision making to sustainable energy planning—A review. Renewable and sustainable energy reviews, 8(4), 365-381.
Ribarović, Z., & Mladineo, N. (1987). Application of multicriterional analysis to the ranking and evaluation of the investment programmes in the ready mixed concrete industry. Engineering Costs and Production Economics, 12(1–4), 367–374.
Saaty, T. (1980). The analytic hierarchy process (AHP) for decision making. In Kobe, Japan (pp. 1–69).
Saaty, T. L. (1994). How to make a decision: the analytic hierarchy process. Interfaces, 24(6), 19–43.
Saaty, T. L., & Vargas, L. G. (2012). Models, methods, concepts & applications of the analytic hierarchy process (2nd ed.). Springer.
Shaktawat, A., & Vadhera, S. (2021). Ranking of hydropower projects based on sustainability criteria in India using multicriteria decision making methods. Croatian Operational Research Review, 75-90.
Srinivasan, V., & Ruparel, B. (1990). CGX: An expert support system for credit granting. European Journal of Operational Research, 45(2–3), 293–308.
Zopounidis, C., & Doumpos, M. (2002). Multi-criteria decision aid in financial decision making: methodologies and literature review. Journal of Multi-Criteria Decision Analysis, 11(4–5), 167–186.