Višekriterijsko odlučivanje (MCDM / MCDA)

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:

  • analitički hijerarhijski procesi (AHP)
  • analitički mrežni procesi (ANP)
  • teorija fuzzy skupova (engl. Fuzzy set theory)
  • jednostavna multi-atributivna tehnika ocjenjivanja (engl. simple multi-attribute rating technique, SMART)
  • genetički algoritam (engl. genetic algorithm, GA)
  • metoda vaganih suma (engl. weighted sum method, WSM)
  • metoda vaganih produkata (engl. weighted product method, WPM)
  • metoda organizacije rangiranih preferencija za obogaćenu evaluaciju (engl. preference ranking organization method for enrichment evaluation, PROMETHEE)
  • metoda eliminacije i izbor prevođenja stvarnosti (engl. the elimination and choice translating reality, ELECTRE)
  • tehnika za poredak preferencija prema sličnosti s idealnim rješenjima (engl. the technique for order preference by similarity to ideal solutions, TOPSIS)
  • višekriterijsko kompromisno rangiranje (VIKOR)
  • kompromisno programiranje (CP)
  • višeatributivna teorija korisnosti (engl. multi-attribute utility theory, MAUT)

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:

  1. relacijski oblik u kojem su odnosi iskazani rangom,
  2. funkcijski oblik u kojem se upotrebljavaju funkcije koristi i
  3. simbolični oblik koji se oslanja na pravila odlučivanja.

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.




Karakteristike višekriterijskog odlučivanja

  • postojanje više kriterija pri odlučivanju
  • kriteriji mogu biti konfliktni
  • kriteriji ne moraju biti podjednako važni
  • alternative su diskretne
  • vrednovanje može biti podložno subjektivnoj procjeni donositelja odluka
  • kriteriji i skup mogućih odluka mogu se mijenjati kroz vrijeme

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.




SMART (engl. Simple Multi-Attribute Rating Technique)

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):

  • Utvrđivanje entiteta (osobe, poduzeća, udruženja i sl.) čiju je korist potrebno maksimizirati;
  • Utvrđivanje problema (efikasnost ovisi o okolnostima i svrsi odluke);
  • Utvrđivanje alternativa;
  • Utvrđivanje relevantnih dimenzija vrijednosti za evaluaciju alternativa;
  • Rangiranje tih dimenzija prema važnosti;
  • Ocjenjivanje dimenzija prema važnosti, zadržavajući omjere (na primjer, ako se najmanje važnoj dimenziji pripiše ocjena 10, tada dvostruko važnija dimenzija poprima vrijednost 20, itd.);
  • Izračun sume ocjena dimenzija i dijeljenje ocjene svake dimenzije sa sumom (normalizacija);
  • Dimenzije se klasificiraju u skupine: subjektivnu, djelomično subjektivnu i objektivnu skupinu. Za subjektivnu skupinu, pridodaju se vrijednosti alternativama na ljestvici od 0 do 100, za djelomično subjektivnu skupinu traže se objektivna mjerenja, ako postoje, a za objektivnu skupinu pripisuju se krivulje korisnosti prema dimenziji;
  • Izračun koristi alternativa;
  • Odlučivanje temeljem izračunatih vrijednosti.



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:

  1. izboru kriterija,
  2. dodijeljenim težinama i
  3. načinu skaliranja (npr. min–max, preslikavanje kategorija na 0–100).

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.




Primjer: Odabir web frameworka za internu aplikaciju

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:

  • A1: Django (Python)
  • A2: Spring Boot (Java)
  • A3: ASP.NET Core (C#)
  • A4: Node.js (NestJS)
  • A5: Ruby on Rails (Ruby)

Definirani su kriteriji (dimenzije vrijednosti) za procjenu alternativa:

  1. \(C_1\) Vrijeme razvoja (tjedni) – troškovni kriterij (manje je bolje)
  2. \(C_2\) Performanse (requests/sec u internom benchmarku) – korisni kriterij (više je bolje)
  3. \(C_3\) Sigurnost (ocjena 1–5) – korisni kriterij (više je bolje)
  4. \(C_4\) Skalabilnost (ocjena 1–5) – korisni kriterij
  5. \(C_5\) Krivulja učenja tima (tjedni do produktivnosti) – troškovni kriterij
  6. \(C_6\) Ekosustav / biblioteke (ocjena 1–5) – korisni kriterij
  7. \(C_7\) Trošak infrastrukture (€/mjesec) – troškovni kriterij

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:

  • Sigurnost: 250
  • Vrijeme razvoja: 180
  • Skalabilnost: 160
  • Performanse: 120
  • Trošak infrastrukture: 80
  • Krivulja učenja: 60
  • Ekosustav: 50

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")
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:

  • odabiru kriterija,
  • težinama \(wk\)
  • načinu skaliranja (npr. min–max).

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?

  • Rang 1 i 2 su vrlo blizu, pa je odluka osjetljiva na (a) težine kriterija i (b) način skaliranja (min–max).
  • Takav rezultat često znači da alternativama nedostaje kriterij koji ih stvarno razlikuje ili su kriteriji/težine postavljeni tako da “izravnavaju” razlike.

Š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:

    • Održavanje i dugoročni trošak (TCO) - npr. predvidljivost nadogradnji, backwards compatibility, tipičan effort za održavanje.
    • Dostupnost kadra/ zapošljivost - “Koliko brzo možemo naći developere ili zamjene?”
    • Integracija s postojećim sustavima - AD/ LDAP/ SSO, postojeći DB, message broker, legacy servisi.
    • Observability/ DevOps fit - logging/ metrics/ tracing, CI/ CD, container support, cloud-native praksa.
  • To su kriteriji koji često naprave razliku kad su performanse/sigurnost “u istom rangu”.

Kad ima smisla maknuti kriterij?

  • Uklonit ćemo kriterij ako:

    • je redundantan (npr. “skalabilnost” i “performanse” su već jako povezani),
    • je slabo mjerljiv i zapravo duplicira “subjektivnu ocjenu” (npr. ekosustav i sigurnost se već djelomično preklapaju),
    • ili kad vidimo da kriterij ne diferencira alternative (svi imaju gotovo isto → u min–max skali taj kriterij može postati “šum”).

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:

    • Ako je cilj brzi time-to-market, dignemo težinu vremena razvoja i krivulje učenja.
    • Ako je cilj enterprise/dugoročno, dignemo sigurnost, skalabilnost, održavanje/TCO.
    • Ako je ograničenje budget, dignemo trošak infrastrukture i održavanje.

Provjera robusnosti:

  • Razlika je mala → radimo osjetljivost.
    1. Promijenimo jednu ključnu težinu (npr. sigurnost) za ±10% i renormaliziramo.
    1. Pogledamo mijenja li se rang top 2.
  • Ako se rang često mijenja uz manje promjene → model nije robustan → dodamo tie-breaker kriterij (npr. održavanje/TCO ili integracija).

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.




AHP (engl. Analytic Hierarchy Process)

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:

  1. Strukturiranje problema sastoji se od grafičkog prikaza strukture s obzirom na kriterije
  2. Komparativna prosudba: pridodavanje numeričke vrijednosti prema razini preferencije, odnosno pripisivanje „težine“ svakom kriteriju
  3. Izračuni prioriteta kriterija
  4. Izračuni pokazatelja konzistencije
  5. Izračuni prioriteta alternative odluke
  6. Sinteza
  7. Preporuka odluke

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:

  • Veličina kuće
  • Prijevoz (blizina autobusne postaje)
  • Susjedstvo (sigurnost, promet, blizina usluga…)
  • Starost kuće
  • Površina dvorišta
  • Opremljenost kuće
  • Financiranje

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.




AHP – matematička podloga (sažeto)

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:

  • Svojstveni vektor (eigenvector metoda): \(w\) je normalizirani glavni svojstveni vektor matrice \(A\).
  • Geometrijska sredina redaka (multiplikativna aproksimacija): \[ w_i \propto \left(\prod_{j=1}^{n} a_{ij}\right)^{1/n}. \]

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



Cjeloviti primjer primjene AHP metode + R kod

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:

  • Iskustvo: iskustvo relevantno za poziciju projektnog menadžera.
  • Vještine komunikacije: sposobnost efektivne komunikacije s timom i klijentima.
  • Liderske sposobnosti: sposobnost vođenja tima i upravljanja projektima.
  • Tehničko znanje: razumijevanje tehničkih aspekata projekata koje tvrtka provodi.

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:

  • Iskustvo: 12 godina iskustva u projektnom menadžmentu, s fokusom na razvoj proizvoda.
  • Komunikacijske vještine: Završeni napredni tečajevi iz poslovne komunikacije. Uspješno vodio timove na više međunarodnih projekata.
  • Liderstvo: Tijekom intervjua, pokazao dobre vještine vođenja, ali s manje iskustva u kriznom menadžmentu.
  • Tehničko znanje: Solidno poznavanje industrijske tehnologije, ali manje detaljno u odnosu na ostale kandidate.

Kandidat 2:

  • Iskustvo: 8 godina iskustva u upravljanju velikim projektima u tehnološkom sektoru.
  • Komunikacijske vještine: Iskusan u vođenju raznolikih timova i efikasnoj komunikaciji unutar međusektorskih grupa.
  • Liderstvo: Prepoznat kao izuzetan lider s iskustvom u vođenju timova kroz izazovne projekte, što je potvrđeno tijekom intervjua.
  • Tehničko znanje: Visoko ocijenjen na tehničkom testu, pokazujući izuzetno poznavanje specifičnih tehnologija i procesa.

Kandidat 3:

  • Iskustvo: 5 godina radnog iskustva u projektnom menadžmentu, s naglaskom na inovacije i istraživanje.
  • Komunikacijske vještine: Efikasna komunikacija i koordinacija unutar multidisciplinarnih timova.
  • Liderstvo: Tijekom intervjua pokazao potencijal za liderstvo, iako s nešto manje praktičnog iskustva.
  • Tehničko znanje: Dobro tehničko znanje s naglaskom na istraživanje i razvoj, potvrđeno testiranjem.

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
U ovom trenutku tim menadžera nije siguran kako nastaviti, jer inače osobno ne primjenjuju kvantitativne metode pri odlučivanju, a outsourcali su sve aktivnosti koje se tiču primjene kvantitativnih metoda u poslovanju. Zbog toga traže vašu pomoć pri rješavanju ovog problema. Nadovezujući se na pruženu osnovu, utvrdite koga tim menadžera treba odabrati.


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:

  1. strukturiranje problema s grafičkim prikazom hijerarhije;
  2. komparativnu prosudbu dodjeljivanjem numeričkih vrijednosti svakom kriteriju;
  3. izračunavanje prioriteta kriterija;
  4. provjeru konzistencije;
  5. određivanje prioriteta alternativa;
  6. sintezu i
  7. davanje preporuka za odluku.

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")
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.

Prioriteti prema kriteriju iskustva
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."
Prioriteti prema kriteriju komunikacijskih vještina
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."
Prioriteti prema kriteriju liderstva
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."
Prioriteti prema kriteriju tehničkih znanja
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")
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.




AHP shiny app

Za pripremu/ provjeru svojih modela možete koristiti AHP shiny app.




Dodatne metode

Ako su prikazi ovih dviju metoda potaknuli znatiželju, korisni izvori koji opisuju druge metode:

  • VIKOR metoda - magistarski znanstveni rad (Kovačić, 2004) u kojem se metoda primjenjuje na odlučivanju u prometu. Korisne materijale predstavlja i pomoćna dokumentacija R paketa MCDM, u kojem se razlažu osnovne pretpostavke metode i opisuje način upotrebe različitih metoda koje paket obuhvaća.
  • TOPSIS metoda - znanstveni rad (Kostelić, 2025) u kojem se metoda primijenjuje za kreiranje okvira za procjenu rizika kibernetičke sigurnosti zaposlenika. Okvir uzima u obzir više dimenzija ponašanja i stavova zaposlenika prema kibernetičkoj sigurnosti. Integrira tehniku za redoslijed preferencija prema sličnosti s idealnim rješenjem (TOPSIS) uz ponderiranje koristeći Saatyjeve kriterije, omogućujući sveobuhvatnu evaluaciju prema pet kriterija: znanje, usklađenost, rizična ponašanja, stavovi i obuka.
  • PROMETHEE metoda - znanstveni rad (Kovač & Podrug, 2023) u kojem se opisuje kako investitori na Zagrebačkoj burzi (ZSE) mogu koristiti višekriterijski proces odlučivanja (MCDM) za odabir dionica za ulaganje. Za usporedbu različitih dionica koriste se i financijski i tržišni kriteriji likvidnosti. Kriteriji likvidnosti tržišta uključuju prosječan broj dnevnih trgovina i prosječni dnevni promet na redovnom tržištu. Ovi kriteriji pomažu u određivanju likvidnosti dionica na sekundarnom tržištu, što je glavni doprinos ovog istraživanja.
  • kombinacija metoda TOPSIS, PROMETHEE II i ELECTRE III koristi se u radu Shaktawat & Vadhera, 2021 za procjenu hidroenergetskih projekata s obzirom na kriterije održivosti. Za sveobuhvatno rangiranje hidroenergetskih projekata primjenjuju se tri MCDM metode, tj. tehnika za redoslijed preferencija prema sličnosti s idealnim rješenjem (TOPSIS), metoda organizacije rangiranja preferencija za procjene obogaćivanja (PROMETHEE II) i eliminacija i prevođenje izbora u stvarnost (ELECTRE III). Analitički hijerarhijski proces (AHP), tj. Saatyjeva skala, koristi se za izračun težina kriterija.



Kad koristiti koju metodu?

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)

  • SMART/WSM: prikladno za brzu, transparentnu agregaciju kada su kriteriji mjerljivi ili se mogu dosljedno skalirati.
  • AHP: prikladno kada je potrebno dobiti težine i prioritete iz usporedbe parova kriterija i usporedbe parova alternativa, uz provjeru konzistentnosti.
  • TOPSIS: prikladno kada se rangiranje želi temeljiti na udaljenosti od idealnog rješenja, osobito uz veći broj alternativa.
  • VIKOR: prikladno kada se traži kompromisno rješenje uz naglašene konfliktne kriterije.
  • PROMETHEE/ELECTRE: prikladno kada su važni pragovi, nekompenzatornost ili veto uvjeti.
  • ANP: prikladno kada postoje međusobne ovisnosti među kriterijima.
  • MAUT/Fuzzy: prikladno kada su ključne nelinearnosti korisnosti, rizik ili nepreciznost procjena.
  • MODM/metaheuristike: prikladno kada se rješenje dizajnira optimiranjem, a ne rangiranjem unaprijed definiranih alternativa.



Zadaci za samostalnu vježbu

1. primjer

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:

  • A1: Django (Python)
  • A2: Spring Boot (Java)
  • A3: ASP.NET Core (C#)
  • A4: NestJS (Node.js/TypeScript)
  • A5: Ruby on Rails (Ruby)

Kriteriji i tip kriterija (benefit/cost)

  1. Razvoj (tjedni) – očekivano trajanje implementacije MVP-a (manje je bolje). (cost)
  2. Performanse (RPS) – prosječan broj zahtjeva u sekundi na referentnom testu (više je bolje). (benefit)
  3. Sigurnost (ocjena 1–5) – interni security review (više je bolje). (benefit)
  4. Skalabilnost (ocjena 1–5) – procjena kako dobro rješenje podržava rast opterećenja i modularnost (više je bolje). (benefit)
  5. Učenje (tjedni) – koliko je timu potrebno da postane produktivan (manje je bolje). (cost)
  6. Ekosustav (ocjena 1–5) – kvaliteta biblioteka, community, tooling (više je bolje). (benefit)
  7. Operativni trošak (€/mj.) – procijenjeni mjesečni trošak hostinga/monitoringa (manje je bolje). (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):

  • razvoj_tjedni = 180
  • perf_rps = 120
  • sigurnost = 250
  • skalabilnost = 160
  • ucenje_tjedni = 60
  • ekosustav = 50
  • trosak_eur = 80



2. primjer

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

  • B1: Jupyter Notebook (lokalno)
  • B2: Google Colab
  • B3: RStudio / Posit Desktop
  • B4: VS Code + Python ekstenzije
  • B5: Kaggle Notebooks

Kriteriji i tip kriterija (benefit/cost)

  1. Setup vrijeme (min) – prosječno vrijeme da student pokrene sve i krene raditi (manje bolje). (cost)
  2. Stabilnost (1–5) – koliko često se pojavljuju problemi (više bolje). (benefit)
  3. Suradnja (1–5) – rad u timovima, dijeljenje, zajedničko uređivanje (više bolje). (benefit)
  4. Performanse (1–5) – procjena brzine/latencije za tipične zadatke (više bolje). (benefit)
  5. Praćenje rada (1–5) – koliko lako nastavnik prati napredak i pregledava predaje (više bolje). (benefit)
  6. Privatnost/usklađenost (1–5) – usklađenost s internim pravilima (više bolje). (benefit)
  7. Pristupačnost (1–5) – radi li dobro na slabijim laptopima i u učionici (više bolje). (benefit)
  8. Trošak (€/student/semestar) – licenciranje i dodatni troškovi (manje bolje). (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\)

  • setup_min = 140
  • stabilnost = 180
  • suradnja = 110
  • performanse = 90
  • pracenje = 160
  • privatnost = 170
  • pristupacnost = 190
  • trosak = 40

3. primjer

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)

  • Jedna virtualna mašina (npr. Linux VM) s aplikacijom, bazom i reverse proxyjem.
  • Deploy ručno ili jednostavnim skriptama.
  • Skaliranje primarno vertikalno; horizontalno moguće ali zahtijeva dodatnu konfiguraciju.
  • Najniži početni trošak, ali rizik “single point of failure” ako nema HA setupa.

A2: Monolit + managed baza (PaaS DB)

  • Aplikacija je i dalje monolit, ali baza je upravljana usluga (npr. managed PostgreSQL).
  • Lakši backup, patching i monitoring baze.
  • Aplikacija se deploya na 1–2 VM-a (ili App Service).
  • Umjeren trošak; manji operativni rizik nego A1.

A3: Kontejneri (Docker) na managed Kubernetes (K8s)

  • Aplikacija i pomoćne usluge (npr. background worker) u kontejnerima.
  • Automatsko skaliranje i rolling deploy.
  • Zahtijeva znanje K8s i održavanje cluster-a (iako managed).
  • Najveća fleksibilnost i skalabilnost, ali i najveća kompleksnost.

A4: Serverless (Functions + managed API gateway)

  • API implementiran kao skup funkcija; event-driven.
  • Plaćanje po korištenju, automatsko skaliranje.
  • Učitavanje (cold start) može povećati latenciju.
  • Debugging i lokalno testiranje zahtjevniji.

A5: Managed platforma za kontejnere (npr. Cloud Run / App Runner)

  • Deploy kontejnera bez upravljanja clusterom.
  • Auto-scaling, jednostavniji od K8s.
  • Dobra ravnoteža između jednostavnosti i skalabilnosti.
  • Ograničenja u mrežnim konfiguracijama i specifičnim low-level potrebama.

Upute (SMART)

  1. Definirajte kriterije (preporuka: 6–9 kriterija) tako da pokrijete:

    • vrijeme isporuke / složenost implementacije
    • operativni trošak
    • performanse/latenciju
    • pouzdanost (dostupnost)
    • sigurnost i usklađenost
    • skalabilnost
    • održavanje i opterećenje tima (DevOps)
  2. Za svaki kriterij odredite je li benefit (više je bolje) ili cost (manje je bolje).

  3. Dodijelite težine kriterijima (npr. rang-vrijednosti \(r_k\) ili direktno \(w_k\)).

  4. Evaluirajte svaku alternativu po svakom kriteriju:

    • kvantitativno (ako možete) ili
    • ordinalno (npr. 1–5) uz jasno objašnjenje skale.
  5. Skalirajte na 0–100 i izračunajte SMART korisnost: \[ U_i=\sum_k w_k\,s_{ik} \]

  6. Rangirajte alternative i napišite kratku interpretaciju.

Napomena. Ovdje nema gotovih brojki – morate ih sami razumno procijeniti na temelju opisa (uz obrazloženje).




4. primjer

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)

  • Najbolje performanse i pristup svim native mogućnostima.
  • Dvije codebase; veći trošak razvoja i održavanja.
  • Najlakše postići “native look & feel”.

B2: Flutter

  • Jedna codebase; vrlo dobar UI i performanse.
  • Brz razvoj UI-a, snažan community.
  • Manje “native” integracije ponekad zahtijevaju dodatni rad (platform channels).

B3: React Native

  • Jedna codebase; dobra integracija s web ekosustavom.
  • Performanse ovise o arhitekturi i komponentama.
  • Velik broj biblioteka; ponekad problemi kompatibilnosti verzija.

B4: Progressive Web App (PWA)

  • Najbrži razvoj; radi u browseru kao “app-like” iskustvo.
  • Ograničenja oko push notifikacija (posebno iOS), pristupa senzoru i “store” distribuciji.
  • Najniži trošak, ali i najviše UX kompromisa.

B5: Xamarin / .NET MAUI

  • Jedna codebase; dobra integracija za .NET timove.
  • Manji community i resursi u usporedbi s Flutter/RN.
  • Produktivnost ovisi o iskustvu tima s .NET-om.

Upute (SMART)

  1. Definirajte kriterije (preporuka: 7–10), npr.:

    • vrijeme razvoja do MVP-a
    • performanse
    • kvaliteta UX/UI
    • dostupnost biblioteka (push, offline cache, auth)
    • održavanje i dugoročna održivost
    • učenje/produktivnost tima
    • kompatibilnost s iOS/Android politikama
    • trošak razvoja
  2. Odredite težine (student sam).

  3. Evaluirajte alternative:

    • koristite mješavinu kvantitativnih procjena (tjedni, €/mj.) i ordinalnih (1–5).
  4. Skalirajte i izračunajte SMART korisnost.

  5. 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).




5. primjer

Organizacija uvodi novi interni portal (HR + edukacije + dokumenti). Potrebna je autentikacija za:

  • zaposlenike (oko 300 korisnika),
  • vanjske suradnike (oko 60 korisnika),
  • mogućnost integracije s postojećim e-mail sustavom i MFA.

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)

  • Potpuna kontrola i lokalna infrastruktura.
  • Potreba za održavanjem, backupom, patchanjem.
  • Integracije moguće, ali zahtijevaju dodatnu konfiguraciju.

C2: Cloud identity (npr. Azure AD / Entra ID ili Google Workspace Identity)

  • Managed usluga, jednostavno uključivanje MFA i SSO.
  • Mogući trošak licenciranja.
  • Ovisnost o vendoru, ali visoka dostupnost i sigurnosne prakse.

C3: Keycloak (self-hosted)

  • Open-source, podržava SSO, OAuth2/OIDC, SAML.
  • Fleksibilno i moćno, ali zahtijeva DevOps znanje.
  • Trošak infrastrukture i održavanja je na organizaciji.

C4: Auth0 / Okta (SaaS)

  • Brza implementacija, puno gotovih integracija.
  • Trošak po korisniku/MAU može rasti.
  • Vrlo dobar security i audit, ali vendor lock-in.

C5: Custom auth (vlastita implementacija)

  • Maksimalna kontrola nad zahtjevima.
  • Najveći sigurnosni rizik i najviši trošak razvoja/održavanja.
  • Dugoročno opterećenje tima; audit i compliance zahtjevni.

Upute (SMART)

  1. Definirajte kriterije (minimalno 5), među koje obavezno uključite neke od ovih:

    • sigurnost (MFA, standardi, audit)
    • složenost implementacije
    • trošak (licence + održavanje)
    • dostupnost i pouzdanost
    • integracije (SSO, OIDC/SAML, postojeći sustavi)
    • opterećenje IT tima (operacije)
    • skalabilnost (rast korisnika/servisa)
    • usklađenost (GDPR, logovi, revizija)
  2. Postavite težine kriterija i obrazložite ih.

  3. Evaluirajte alternative (kvantitativno gdje je smisleno; ordinalno 1–5 gdje je procjena).

  4. Provedite SMART izračun i rangiranje.

  5. 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).




6. primjer

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):

  • K1 Sigurnost i privatnost (GDPR, SSO/MFA, upravljanje ulogama, audit logovi)
  • K2 Pedagoške funkcionalnosti (kvizovi, zadaci, rubrike, feedback, gradebook, forum, LTI integracije)
  • K3 Operativno održavanje (backup, nadogradnje, stabilnost, potreban DevOps/IT rad)
  • K4 Trošak (licence + infrastruktura + održavanje)

Alternative (3):

  • A1 Moodle (self-hosted) – open-source, fleksibilan, puno pluginova, ali veće održavanje i odgovornost za sigurnost/backup.
  • A2 Canvas (SaaS) – moderni UI, vrlo stabilan, mali IT teret, ali skupo licenciranje i manja “custom” fleksibilnost.
  • A3 Google Classroom + Workspace – jednostavno i brzo, dobra integracija s Google ekosustavom, ali ograničene napredne LMS funkcije.
  1. Usporedbe parova kriterija (zadano)

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?

  • Fakultet obrađuje osjetljive osobne podatke (studenti, ocjene, evidencije), često uz GDPR obveze.
  • Sigurnosni incident (curenje podataka, kompromitacija računa) ima visoku reputacijsku i pravnu cijenu, a posljedice su dugotrajne.
  • Funkcionalnosti su važne, ali većina LMS-ova u praksi “pokriva minimum”; dodatne funkcije su često nadogradive ili nadomjestive praksom, dok se sigurnosni propusti teže “kompenziraju”.
    → Zato je razlika značajna (5), ne samo umjerena.

K1 vs K3: Sigurnost je vrlo znatno važnija od održavanja → 7

Zašto?

  • Iako je održavanje važno za stabilnost, fakultet može “kupiti” održavanje (outsourcing, dodatno zapošljavanje, ugovor o podršci).
  • Sigurnosne posljedice se ne mogu lako nadoknaditi ni dodatnim radom ni budžetom nakon incidenta.
  • Menadžment procjenjuje da je sigurnost strateški prioritet, čak i ako to znači veći operativni napor.
    → Zato ide prema 7 (vrlo znatno), jer se smatra da sigurnost “nadjačava” operativnu udobnost.

K1 vs K4: Sigurnost je umjereno važnija od troška → 3

Zašto?

  • Trošak je važan jer budžet fakulteta nije beskonačan, ali menadžment procjenjuje da se za bolju sigurnost može opravdati veće ulaganje (npr. licence, audit, dodatne kontrole).
  • Ipak, razlika nije ekstremna (nije 7 ili 9), jer se fakultet i dalje mora držati financijskih ograničenja i racionalnosti trošenja.
    → Zato je kompromisna procjena 3.

K2 vs K3: Funkcionalnosti su umjereno važnije od održavanja → 3

Zašto?

  • Primarna misija fakulteta je nastava i evaluacija; loše pedagoške funkcije direktno utječu na kvalitetu nastave i iskustvo studenata.
  • Održavanje je “pozadina” koja se može riješiti procesima i IT praksom, ali nedostatak funkcionalnosti često znači da nastavnici rade zaobilazna rješenja, ručne evidencije i improvizacije.
    → Zato funkcionalnosti imaju umjerenu prednost (3).

K4 vs K2: Trošak je umjereno važniji od funkcionalnosti → 3 (dakle K2 vs K4 = 1/3)

Zašto?

  • Uprava mora planirati višegodišnje troškove (licence, infrastruktura, ljudi).
  • Funkcionalnosti jesu važne, ali menadžment smatra da se dio funkcija može “nadomjestiti” drugim alatima (npr. integracije, dodatni moduli, prakse rada), dok se budžet ne može ignorirati.
  • Ova usporedba često reflektira “upravno” gledište: održivost budžeta je preduvjet svega ostalog.
    → Zato se trošku daje 3 nad funkcionalnostima.

K3 vs K4: Održavanje je umjereno važnije od troška → 3

Zašto?

  • Ako je održavanje teško, sustav može postati nestabilan, “padati” u ključnim terminima (ispiti, rokovi), a IT tim može biti preopterećen.
  • To onda generira skrivene troškove (prekovremeni rad, incidenti, hitne intervencije), pa održavanje indirektno utječe i na trošak.
  • Menadžment procjenjuje da je stabilnost i operativna održivost nešto važnija od same cijene licence ili servera.
    → Zato je K3 umjereno iznad K4 (3).
  1. Sastavite matricu kriterija \(4\times4\).
  2. Izračunajte vektor prioriteta kriterija (normalizacija stupaca + prosjek redaka ili eigenvektor).
  3. Izračunajte CI i CR (koristite RI tablicu).
  4. Ako je \(CR\ge 0.10\), predložite koju usporedbu biste revidirali (i zašto).
  1. Usporedbe parova alternativa po kriterijima (zadano)

K1 Sigurnost i privatnost

Procjene IT tima:

Canvas je umjereno bolji od Moodle self-hosted → 3

  • SaaS vendor obično ima standardizirane sigurnosne procedure, redovite zakrpe, SOC procese i SLA.
  • Self-hosted Moodle može biti siguran, ali kvaliteta ovisi o internom timu: patching, konfiguracija, hardening, backup.
  • IT tim procjenjuje da je Canvas u prosjeku sigurniji “po defaultu”, ali razlika nije golema jer dobro održavan Moodle može biti vrlo siguran.
    → Zato 3, a ne 5 ili 7.

Canvas je znatno bolji od Classroom → 5

  • Classroom/laganija rješenja često imaju manje granularne kontrole specifične za visoko obrazovanje (npr. detaljni audit trail, napredne role).
  • Procjena je da Canvas nudi širi set enterprise kontrola i bolju upravljivost pristupa u LMS kontekstu.
    → Zato 5.

Moodle je umjereno bolji od Classroom → 3

  • Moodle ima detaljne role, granularne postavke, audit logove i široku zajednicu sigurnosnih praksi.
  • Classroom je jednostavniji i brži za koristiti, ali često manje “fine-grained” u LMS kontroli.
    → Zato 3.

K2 Pedagoške funkcionalnosti

Procjene nastavnika:

Moodle je znatno bolji od Classroom → 5

  • Moodle ima snažne kvizove, banku pitanja, rubrike, uvjetne aktivnosti, detaljno praćenje napretka.
  • Classroom je odličan za osnovne zadatke i komunikaciju, ali nije “punokrvni LMS” za složenije oblike evaluacije i dizajna kolegija.
    → Zato 5.

Canvas je umjereno bolji od Classroom → 3

  • Canvas je LMS koji nudi rubrike, zadatke, moduliranje sadržaja, analytics.
  • Classroom ima manje strukture i manje naprednih opcija za evaluaciju.
    → Zato 3.

Moodle je umjereno bolji od Canvas → 3

  • Nastavnici često vide Moodle kao fleksibilniji i bogatiji u kvizovima i specifičnim pedagoškim scenarijima (posebno uz dodatke).
  • Canvas je vrlo dobar i “poliran”, ali može biti manje fleksibilan u nekim specifičnim tipovima evaluacije.
    → Zato 3 (nije 5, jer Canvas je i dalje snažan).

K3 Operativno održavanje

Procjene IT tima:

Canvas je vrlo znatno bolji od Moodle self-hosted → 7

  • SaaS: vendor rješava dostupnost, nadogradnje, patching, backup; IT tim se fokusira na integracije i korisničku podršku.
  • Self-hosted: interna odgovornost za servere, performance tuning, sigurnosne zakrpe, oporavak, monitoring.
  • Razlika je velika i stalna u vremenu.
    → Zato 7.

Classroom je znatno bolji od Moodle → 5

  • Classroom je lagan za administrirati (manje postavki, manje infrastrukture, manje “pokretnih dijelova”).
  • Moodle traži stalnu brigu oko infrastrukture i nadogradnji.
    → Zato 5.

Canvas je umjereno bolji od Classroom → 3

  • Oboje su cloud/managed-ish iskustvo (ovisno o implementaciji), ali Canvas kao LMS obično dolazi s ozbiljnijim SLA-om i enterprise podrškom, dok je Classroom više “lightweight”.
  • Razlika postoji, ali nije ogromna jer i Classroom može biti vrlo jednostavan za održavanje.
    → Zato 3.

K4 Trošak (ukupni TCO)

Procjene uprave (niže je bolje pa uspoređujemo “povoljnije”):

Classroom je znatno povoljniji od Canvas → 5

  • Ako je institucija već u ekosustavu, Classroom/Teams opcija može biti uključena u postojeće licence (ili marginalni trošak je nizak).
  • Canvas često ima vidljiv i značajan licencni trošak po korisniku/instituciji.
    → Zato 5.

Moodle self-hosted je umjereno povoljniji od Canvas → 3

  • Moodle nema licencu, ali ima trošak infrastrukture i rada IT tima.
  • U usporedbi s Canvas licencom, Moodle često ispadne jeftiniji, ali razlika nije ekstremna jer održavanje nije “besplatno”.
    → Zato 3.

Classroom je umjereno povoljniji od Moodle → 3

  • Classroom može imati niži TCO ako je već pokriven licencama i ne traži infrastrukturno održavanje.
  • Moodle ima “skriveni” trošak održavanja (serveri + rad).
  • Ipak, Moodle može biti povoljan ako IT tim i infrastruktura već postoje i rade dobro.
    → Zato 3 (umjereno).

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?




7. primjer

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):

  • K1 Analitičko razmišljanje (rješavanje problema, logika, strukturiranje, donošenje zaključaka)
  • K2 Tehničke vještine (SQL, R/Python, vizualizacija, reproducibilnost)
  • K3 Poslovno razumijevanje (razumije KPI-eva, interpretacija za menadžment, “sense-making”)
  • K4 Komunikacija (jasnoća, storytelling, rad s stakeholderima, prezentacija nalaza)
  • K5 Pouzdanost i samostalnost (organizacija rada, odgovornost, ownership, isporuka)

Alternative (3):

  • B1 Kandidat Ana
  • B2 Kandidat Bruno
  • B3 Kandidat Carla
  1. Usporedbe parova kriterija (zadano)

Menadžerski tim daje sljedeće procjene:

  • K2 (Tehničke) je umjereno važniji od K1 (Analitičko) → 3
  • K1 (Analitičko) je umjereno važnije od K3 (Poslovno) → 3
  • K3 (Poslovno) je jednako do umjereno važnije od K4 (Komunikacija) → 2
  • K4 (Komunikacija) je umjereno važnija od K5 (Pouzdanost) → 3
  • K5 (Pouzdanost) je umjereno važnija od K3 (Poslovno) → 3
  • K2 (Tehničke) je znatno važniji od K4 (Komunikacija) → 5
  • K1 (Analitičko) je umjereno važnije od K4 (Komunikacija) → 3
  • K2 (Tehničke) je umjereno važniji od K5 (Pouzdanost) → 3
  • K1 (Analitičko) je jednako važno kao K5 (Pouzdanost) → 1
  • K2 (Tehničke) je znatno važniji od K3 (Poslovno) → 5
  1. Razmislite koja su objašnjenja za postojeću evaluaciju. Ako biste Vi evaluirali drugačije - izmijenite uz objašnjenje.
  2. Sastavite matricu kriterija \(5\times5\) i popunite recipročnosti.
  3. Izračunajte vektor prioriteta kriterija i omjer konzistentnosti CR.
  4. Ako je \(CR\ge 0.10\), predložite koju usporedbu biste revidirali (i zašto).
  1. Opisi kandidata (morate sami izvršiti usporedbe parova alternativa)

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.

  1. Na temelju opisa, napravite parne usporedbe kandidata (Ana–Bruno, Ana–Carla, Bruno–Carla) koristeći Saatyjevu skalu.
  2. Sastavite matricu alternativa \(3\times3\) i popunite recipročnosti.
  3. Izračunajte lokalne prioritete alternativa i CR za taj kriterij.
  4. Ako je \(CR\ge 0.10\), revidirajte svoje procjene (objasnite što ste promijenili).

Zatim:

  1. Napravite sintezu: pomnožite lokalne prioritete alternativa s prioritetima kriterija i dobijte globalne prioritete kandidata.
  2. Napišite zaključak (2–6 rečenica): koga biste zaposlili i zašto, uz kratki osvrt na trade-offove.



8. primjer

Potrebno je:

  1. Definirati hijerarhiju (cilj → kriteriji → alternative).
  2. Provesti usporedbu parove kriterija (Saatyjeva skala) i izračunati vektor prioriteta kriterija + provjeru konzistentnosti (CR).
  3. Za svaki kriterij provesti usporedbu parova alternativa i izračunati lokalne prioritete alternativa + CR.
  4. Provesti sintezu (globalni prioriteti alternativa) i donijeti preporuku.
  5. Kratko interpretirati rezultat i komentirati konzistentnost (što bi revidirali ako je CR ≥ 0.10).

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

  • C1 Apache Kafka + Stream processing (npr. Kafka Streams / Flink)
  • C2 AWS Kinesis ekosustav (Kinesis Data Streams + Firehose + Lambda/Glue)
  • C3 RabbitMQ + batch obrada (npr. periodični ETL + baza/warehouse)

Kriteriji (predloženi)

Studenti mogu koristiti ili prilagoditi (min. 4 kriterija):

  • K1 Propusnost i latencija (koliko brzo i koliko događaja sustav može obraditi)
  • K2 Pouzdanost i otpornost (replay, durability, failure handling, garancije isporuke)
  • K3 Operativna složenost (koliko je teško postaviti, održavati, skalirati)
  • K4 Trošak (kratkoročno i dugoročno) (infrastruktura, tim, managed usluge)
  • K5 Fleksibilnost i ekosustav (integracije, alati, observability, connectori)
  • K6 Vendor lock-in (ovisnost o dobavljaču i prenosivost)

Opisi alternativa

C1 Kafka + stream processing

  • Propusnost/latencija: vrlo visoka propusnost i niska latencija uz dobar dizajn; odličan za event-driven arhitekture.
  • Pouzdanost: podržava durability i replay; uz pravilno podešavanje vrlo pouzdan.
  • Operativna složenost: self-managed Kafka je složen (cluster, partitioning, monitoring, upgrade); managed Kafka olakšava, ali i dalje traži znanje.
  • Trošak: može biti povoljan u velikom volumenu, ali inicijalno zahtijeva stručnost i setup.
  • Fleksibilnost: ogroman ekosustav connectora i alata; dobro se uklapa u modernu arhitekturu.
  • Vendor lock-in: nizak ako je self-managed; umjeren ako je managed.

C2 AWS Kinesis ekosustav

  • Propusnost/latencija: dobar real-time; skaliranje je “ugrađeno” (shards).
  • Pouzdanost: visoka dostupnost kao managed usluga; replay moguć unutar retencije.
  • Operativna složenost: niža (managed), ali treba poznavanje AWS konfiguracija i praćenja troškova.
  • Trošak: može biti visok ako volumen raste; trošak je često “po upotrebi” i zahtijeva praćenje.
  • Fleksibilnost: odličan u AWS-u; integracije s drugim AWS uslugama su vrlo jednostavne.
  • Vendor lock-in: viši (ovisnost o AWS ekosustavu).

C3 RabbitMQ + batch obrada

  • Propusnost/latencija: dobra za queueing i task processing, ali nije idealno za “stream analytics”; batch uvodi kašnjenje.
  • Pouzdanost: solidna pouzdanost u messagingu, ali replay i long-term event log nisu primarna namjena.
  • Operativna složenost: srednja (lakše od Kafka, ali cluster i HA i dalje nisu trivijalni).
  • Trošak: često niži inicijalno; batch obrada može biti jeftina, ali ograničava real-time use-case.
  • Fleksibilnost: odličan za job queue; slabije za event sourcing i analitiku događaja.
  • Vendor lock-in: nizak.



9. primjer

Potrebno je:

  1. Definirati hijerarhiju (cilj → kriteriji → alternative).
  2. Provesti usporedbu parove kriterija (Saatyjeva skala) i izračunati vektor prioriteta kriterija + provjeru konzistentnosti (CR).
  3. Za svaki kriterij provesti usporedbu parova alternativa i izračunati lokalne prioritete alternativa + CR.
  4. Provesti sintezu (globalni prioriteti alternativa) i donijeti preporuku.
  5. Kratko interpretirati rezultat i komentirati konzistentnost (što bi revidirali ako je CR ≥ 0.10).

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

  • B1 Keycloak (self-hosted, open source)
  • B2 Auth0 (cloud, SaaS)
  • B3 Azure AD / Entra ID (cloud, enterprise)

Kriteriji (predloženi)

Studenti mogu koristiti ove ili prilagoditi (min. 5 kriterija ukupno):

  • K1 Sigurnosne mogućnosti (MFA, politike pristupa, session management, rate limiting, breach detection)
  • K2 Podrška standardima i integracijama (OIDC, OAuth2, SAML, API, SDK-ovi)
  • K3 Trošak i skaliranje troška (licence, cijena po MAU, infrastruktura, održavanje)
  • K4 Operativna složenost i održavanje (patching, backup, monitoring, dostupnost)
  • K5 Kontrola i prilagodljivost (custom flows, UI, “policy as code”, on-prem zahtjevi)
  • K6 Usklađenost i audit (logovi, izvještaji, GDPR, lokacija podataka, revizijski trag)

Opisi alternativa

B1 Keycloak (self-hosted)

  • Sigurnost: podržava MFA i politike, ali vi ste odgovorni za hardening i patching.
  • Standardi/integracije: odlična podrška za OIDC/OAuth2/SAML; integracije postoje, ali implementacija je na vama.
  • Trošak: nema licence, ali imate trošak infrastrukture + tim (DevOps/SRE) i rizik downtimea.
  • Održavanje: zahtijeva monitoring, HA, backup; nadogradnje mogu biti kompleksne.
  • Kontrola: najveća kontrola i mogućnost prilagodbe tokova prijave.
  • Audit/usklađenost: moguće je, ali treba dizajnirati i održavati (log retention, SIEM integracije).

B2 Auth0 (SaaS)

  • Sigurnost: snažne sigurnosne opcije i gotove zaštite; vendor često “best practices by default”.
  • Standardi/integracije: vrlo dobre integracije i SDK-ovi, brzo uvođenje.
  • Trošak: raste s MAU i featureima; može biti skup pri velikom rastu.
  • Održavanje: minimalno interno; vendor upravlja dostupnošću.
  • Kontrola: dobra prilagodba, ali unutar granica platforme.
  • Audit/usklađenost: često gotovi izvještaji i integracije, ali ovisi o planu/ugovoru.

B3 Azure AD / Entra ID

  • Sigurnost: enterprise-grade, Conditional Access, MFA, upravljanje identitetima, dobar ekosustav.
  • Standardi/integracije: izvrsno u Microsoft okruženju; vanjske integracije moguće, ali ponekad složenije.
  • Trošak: ovisi o licencama (P1/P2), često već postoji u organizaciji; trošak može biti povoljan ako je M365 standard.
  • Održavanje: cloud-managed, ali konfiguracija politika i governance su ključni.
  • Kontrola: dobra, ali određene specifične prilagodbe tokova mogu biti ograničene u odnosu na self-hosted.
  • Audit/usklađenost: snažni audit logovi i integracije sa SIEM-om; governance alati (ovisno o licenci).



10. primjer

Potrebno je:

  1. Definirati hijerarhiju (cilj → kriteriji → alternative).
  2. Provesti usporedbu parove kriterija (Saatyjeva skala) i izračunati vektor prioriteta kriterija + provjeru konzistentnosti (CR).
  3. Za svaki kriterij provesti usporedbu parova alternativa i izračunati lokalne prioritete alternativa + CR.
  4. Provesti sintezu (globalni prioriteti alternativa) i donijeti preporuku.
  5. Kratko interpretirati rezultat i komentirati konzistentnost (što bi revidirali ako je CR ≥ 0.10).

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

  • A1 Moodle (self-hosted)
  • A2 Canvas (cloud)
  • A3 Microsoft Teams + Assignments/OneNote Class Notebook (M365 ekosustav)

Kriteriji (predloženi)

Studenti mogu koristiti ove kriterije ili ih (uz obrazloženje) prilagoditi, ali moraju završiti s najmanje 5 kriterija:

  • K1 Funkcionalnosti nastave i evaluacije (kvizovi, rubrike, zadaci, praćenje napretka, ishodi učenja)
  • K2 Integracije i interoperabilnost (SSO, LDAP/AD, SIS integracije, LTI, API)
  • K3 Korisničko iskustvo (UX) i prihvaćenost (jednostavnost, mobilno korištenje, studentski doživljaj)
  • K4 Administracija i održavanje (potrebni IT resursi, stabilnost, backup, nadogradnje)
  • K5 Trošak i predvidivost troška (licence, infrastruktura, ljudski rad, dodatni moduli)
  • K6 Sigurnost i privatnost (GDPR, audit logovi, kontrola pristupa, lokacija podataka)

Opisi alternativa (za usporedbu parova alternativa)

A1 Moodle (self-hosted)

  • Funkcionalnosti: vrlo bogat sustav za kvizove, banku pitanja, rubrike, uvjetne aktivnosti; velik broj dodataka.
  • Integracije: fleksibilan (LTI, API), ali integracije često traže konfiguraciju i testiranje; dobro se spaja na SSO.
  • UX: može biti odličan, ali ovisi o temi i konfiguraciji; ponekad “prenatrpan” ako se ne dizajnira pažljivo.
  • Održavanje: zahtijeva internu infrastrukturu i IT tim (nadogradnje, sigurnosne zakrpe, backup, performance tuning).
  • Trošak: nema licence, ali ima trošak servera + administracije + vremena nastavnika za dizajn kolegija.
  • Sigurnost: dobra kontrola, ali odgovornost za sigurnost je na instituciji (patching, konfiguracija).

A2 Canvas (cloud)

  • Funkcionalnosti: vrlo dobar za organizaciju nastave, zadatke, rubrike, integracije; kvizovi dobri (ovisno o modulu).
  • Integracije: obično jednostavnije (LTI, gotove integracije), snažan API.
  • UX: često percipiran kao “čist”, moderan i intuitivan; mobilne aplikacije stabilne.
  • Održavanje: minimalno lokalno održavanje; vendor brine o dostupnosti i updateovima.
  • Trošak: licenciranje je značajan, ali predvidiv; dodatni moduli mogu povećati cijenu.
  • Sigurnost: vendor tipično ima certifikate i procedure; manje kontrole nad lokacijom podataka (ovisno o ugovoru).

A3 Teams + Assignments/OneNote

  • Funkcionalnosti: odličan za komunikaciju, sastanke, kolaboraciju; evaluacija i “LMS logika” postoje, ali slabije strukturirane (ovisno o potrebama).
  • Integracije: izvrsno ako je institucija već u M365; SSO i identiteti su “u paketu”.
  • UX: studenti često već koriste Teams; manje “učenja alata”, ali granice između komunikacije i nastave znaju biti nejasne.
  • Održavanje: relativno malo lokalnog održavanja ako je M365 standardiziran; administracija identiteta i pravila je ključna.
  • Trošak: ako institucija već plaća M365, dodatni trošak je nizak; ako ne – može biti značajan.
  • Sigurnost: snažne enterprise postavke, ali pogrešna prava i dijeljenja mogu biti rizik (potrebna politika).



Pitanja za ponavljanje

  1. Upravni odbor treba brzo rangirati 12 alternativa prema 9 kriterija. Za većinu kriterija postoje kvantitativne procjene (trošak, vrijeme, performanse), a za 2 kriterija postoje ordinalne ocjene 1–5. Nema vremena za veliki broj usporedbi parova. Koja je metoda prikladnija?

A. SMART
B. AHP
C. AHP je nužan jer postoji ordinalna ljestvica
D. Niti jedna, nužno je MAUT


  1. Za AHP s 8 kriterija (jedna razina) i 6 alternativa potrebno je izraditi usporedbe parova kriterija i usporedbe parova alternativa po svakom kriteriju. Koja tvrdnja je točna?

A. Broj usporedbi kriterija je \(\binom{8}{2} = 28\)
B. Broj usporedbi alternativa po kriteriju je \(\binom{6}{2} = 15\)
C. Ukupno usporedbi alternativa preko svih kriterija je \(8 \cdot 15 = 120\)
D. Točne su tvrdnje A i C


  1. Koja su dva najbolja razloga zašto se u AHP-u provjerava CR?

A. CR mjeri koliko su usporedbe parova približno konzistentne (transitivne)
B. CR garantira da je odabrana alternativa optimalna u matematičkom smislu
C. CR pomaže otkriti nasumične ili kontradiktorne procjene koje mogu destabilizirati prioritete
D. CR je potreban samo za matrice alternativa, ne i za matrice kriterija


  1. U AHP modelu matrica kriterija ima CR = 0.16. Koje su dvije najprimjerenije akcije?

A. Revidirati usporedbe parova koje najviše “odskaču” (npr. kroz provjeru transitive logike)
B. Ignorirati CR jer će se pogreške “poništiti” u sintezi
C. Provjeriti jesu li verbalne procjene ispravno mapirane na Saatyjevu skalu (npr. 3 vs 5 vs 7)
D. Povećati broj kriterija jer to obično smanjuje CR


  1. U SMART analizi top1 ima 64.4, a top2 63.2 (razlika 1.2 na skali 0–100). Koja su dva najrazumnija sljedeća koraka?

A. Napraviti analizu osjetljivosti na ključne težine (npr. ±10% uz renormalizaciju)
B. Zaključiti da je top1 “sigurno bolji” jer je veći score
C. Preispitati normalizaciju/skaliranje (npr. min–max) i provjeriti stabilnost ranga
D. Automatski odbaciti top2 jer je “statistički lošiji”


  1. Koja tvrdnja najbolje opisuje preklapanje kriterija (npr. “performanse” i “skalabilnost”)?

A. U SMART-u i AHP-u preklapanje kriterija je poželjno jer pojačava signal
B. Preklapanje kriterija može dovesti do “dvostrukog brojanja” istog aspekta i iskriviti rang
C. Preklapanje kriterija je zabranjeno u AHP-u, ali dopušteno u SMART-u
D. Preklapanje kriterija je problem samo ako su kriteriji kvantitativni


  1. Organizacija razmatra “A1: Azure AD P1” i “A2: Azure AD P2” kao dvije alternative. P2 uključuje P1 + dodatne funkcije. Koja je najbolja interpretacija?

A. Ovo je tipično problematično preklapanje alternativa jer jedna alternativa dominira drugu po funkcijama (ako je trošak ignoriran)
B. Ovo je potpuno u redu ako se trošak i vrijednost dodatnih funkcija eksplicitno uključe u kriterije
C. Ovo je zabranjeno u MCDM jer alternative moraju biti potpuno nepovezane
D. Točne su tvrdnje A i B


  1. U SMART-u alternativa X je bolja ili jednaka od Y na svim kriterijima, i strogo bolja na barem jednom kriteriju. Što slijedi?

A. Y je dominirana i u pravilu ne bi trebala pobijediti u težinskom zbroju (ako su težine nenegativne)
B. Y može pobijediti ako se promijeni metoda normalizacije
C. Y može pobijediti ako se dopuštaju negativne težine
D. Točne su tvrdnje A i C


  1. Koja je tvrdnja najtočnija?

A. SMART zahtijeva da su svi kriteriji već na istoj mjernoj ljestvici
B. SMART tipično uključuje skaliranje kriterija na zajedničku ljestvicu (npr. 0–100)
C. AHP ne može raditi s kvalitativnim kriterijima
D. AHP zahtijeva da su kriteriji omjerni (ratio)


  1. Koje su dvije tvrdnje najtočnije u vezi rank reversal-a?

A. U AHP-u se može pojaviti promjena ranga pri dodavanju/uklanjanju alternativa (ovisno o načinu sinteze i kontekstu)
B. Klasični SMART s fiksnim težinama kriterija načelno je stabilniji na dodavanje alternativa (iako normalizacija može utjecati na skale)
C. Rank reversal je dokaz da je metoda “pogrešna” i nikad se ne smije koristiti
D. Rank reversal se ne može pojaviti ni u jednoj metodi


  1. Odabrati dvije situacije u kojima je AHP obično prikladniji od SMART-a.

A. Kada donositelj odluke teško daje izravne težine, ali može pouzdano raditi usporedbe parova
B. Kada postoji 30 alternativa i 20 kriterija, i odluka se mora donijeti brzo
C. Kada je potrebna formalna provjera konzistentnosti procjena
D. Kada su svi kriteriji strogo kvantitativni i lako usporedivi


  1. Koje su dvije točne tvrdnje?

A. Min–max skaliranje čini rezultate relativnima skupu alternativa (ovisno o min i max)
B. Ako su sve alternative gotovo jednake na kriteriju, taj kriterij može imati mali utjecaj nakon skaliranja (ovisno o metodi)
C. Normalizacija u SMART-u je nepotrebna jer težine već sve rješavaju
D. Skaliranje cost kriterija mora uvijek biti nelinearno


  1. Kod analize osjetljivosti povećana je težina kriterija “sigurnost” za +10% te su zatim sve težine renormalizirane da suma bude 1. Što se time postiže?

A. Omjer važnosti sigurnosti prema ostalim kriterijima se povećava, dok se omjeri među ostalima uglavnom čuvaju
B. Mijenjaju se apsolutne težine, ali se zadržava interpretacija da suma težina iznosi 1
C. Time se “kvari” model jer renormalizacija nije dopuštena
D. Točne su tvrdnje A i B


  1. Što SMART score od 70 znači?

A. Alternativa je “70% dobra” u apsolutnom smislu
B. Score omogućuje rangiranje unutar danog problema, uz zadane kriterije, težine i skaliranje
C. Score se može izravno uspoređivati između različitih problema s različitim kriterijima
D. Score je vjerojatnost da je alternativa najbolja


  1. Usporedbe parova kriterija su: K1 > K2 (5), K2 > K3 (5), ali K1 ≈ K3 (1). Koje su dvije točne tvrdnje?

A. Ovo sugerira potencijalnu nekonzistentnost koja će povećati CR
B. Ovo je nužno konzistentno jer koristi Saatyjevu skalu
C. Preporučuje se preispitati barem jednu od tri usporedbe (ili mapiranje verbalno→broj)
D. Ovo automatski znači da je K3 najvažniji


  1. U odabiru dobavljača postoji “crvena linija”: ako sigurnosni audit nije zadovoljen, alternativa je neprihvatljiva bez obzira na ostale kriterije. Koja je metoda (ili pristup) je najprikladniji?

A. SMART bez dodatnih pravila
B. AHP bez dodatnih pravila
C. Uvesti “hard constraint” (filter) prije MCDM rangiranja ili koristiti outranking/veto logiku (npr. ELECTRE)
D. Zamijeniti sve kriterije jednim prosjekom


  1. Zašto AHP postaje nepraktičan kod velikog broja alternativa (npr. 25 alternativa)?

A. Broj usporedbi parova alternativa raste kvadratno (\(\binom{m}{2}\)) po kriteriju
B. CR se matematički nužno smanjuje kad m raste
C. Donositelji odluke teško mogu konzistentno uspoređivati velik broj parova
D. Točne su tvrdnje A i C


  1. Koje su dvije tvrdnje najtočnije?

A. AHP je često pogodan za grupno odlučivanje jer se usporedbe parova mogu agregirati (npr. geometrijskom sredinom)
B. SMART se ne može koristiti u grupnom odlučivanju
C. SMART se može koristiti u grupnom odlučivanju kroz dogovor o težinama i ocjenama (ili agregaciju procjena)
D. Grupno odlučivanje eliminira potrebu za analizom osjetljivosti


  1. U modelu se istovremeno koriste: trošak (€/mj.), vrijeme (tjedni), ordinalna ocjena sigurnosti (1–5) i kvalitativna procjena UX (npr. loše–odlično). Koje su dvije točne tvrdnje?

A. SMART može raditi s ovim mješavinama ako se definira dosljedno skaliranje na zajedničku ljestvicu
B. AHP može raditi jer usporedbe parova mogu uključiti kvalitativne prosudbe
C. Ovo je nemoguće bez MAUT-a
D. Točne su tvrdnje A i B


  1. U modelu se pojavljuju kriteriji “sigurnost”, “privatnost” i “usklađenost”, a svi se u praksi ocjenjuju vrlo slično. Koje su dvije najbolje akcije?

A. Razmotriti spajanje kriterija u jedan ili jasno razdvojiti definicije i mjerne indikatore
B. Zadržati sve kriterije i povećati im težine jer su važni
C. Provjeriti korelacije/konceptualnu redundanciju i učinak na rang (osjetljivost)
D. Ukloniti sve kvalitativne kriterije

Literatura

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.

Ključ odgovora

  1. A
  2. D
  3. A, C
  4. A, C
  5. A, C
  6. B
  7. D
  8. D
  9. B
  10. A, B
  11. A, C
  12. A, B
  13. D
  14. B
  15. A, C
  16. C
  17. D
  18. A, C
  19. D
  20. A, C