Você está na página 1de 4

ALGORITMO DO NOSSO TRABALHO:

model minerext ! nome do modelo



uses "mmxprs" ! indica otimizador a ser utilizado

declarations
Xab: mpvar
Xac: mpvar
Xad: mpvar
Xcb: mpvar
Xeb: mpvar
Xbc: mpvar
Xbe: mpvar
Xdc: mpvar
Xfc: mpvar
Xcd: mpvar
Xcf: mpvar
Xgd: mpvar
Xhd: mpvar
Xdh: mpvar
Xfe: mpvar
Xie: mpvar
Xef: mpvar
Xei: mpvar
Xgf: mpvar
Xfg: mpvar
Xdg: mpvar
Xhg: mpvar
Xgh: mpvar
Xjh: mpvar
Xhj: mpvar
Xki: mpvar
Xli: mpvar
Xik: mpvar
Xil: mpvar
Xkj: mpvar
Xmj: mpvar
Xjk: mpvar
Xjm: mpvar
Xlk: mpvar
Xkl: mpvar
Xlo: mpvar
Xnm1: mpvar
Xnm2: mpvar
Xno: mpvar
Xmn1: mpvar
Xmn2: mpvar

end-declarations ! toda declarao deve ser finalizada com end-declarations

! restries: cada ponto uma restrio
PontoA := Xab + Xac + Xad = 1
PontoB := Xab + Xcb + Xeb - Xbc - Xbe = 0
PontoC := Xac + Xbc + Xdc + Xfc - Xcb - Xcd - Xcf = 0
PontoD := Xad + Xcd + Xgd + Xhd - Xdc - Xdg - Xdh = 0
PontoE := Xbe + Xfe + Xie - Xeb - Xef - Xei = 0
PontoF := Xcf + Xef + Xgf - Xfc - Xfe - Xfg = 0
PontoG := Xdg + Xfg + Xhg - Xgd - Xgf - Xgh = 0
PontoH := Xdh + Xgh + Xjh - Xhd - Xhg - Xhj = 0
PontoI := Xei + Xki + Xli - Xie - Xik - Xil = 0
PontoJ := Xhj + Xkj + Xmj - Xjh - Xjk - Xjm = 0
PontoK :=Xik + Xjk + Xlk - Xki - Xkj - Xkl = 0
PontoL := Xil + Xkl - Xli - Xlk - Xlo = 0
PontoM :=Xjm + Xnm1 + Xnm2 - Xmj - Xmn1 - Xmn2 = 0
PontoN := Xmn1 + Xmn2 - Xnm1 - Xnm2 - Xno = 0
PontoO := Xlo + Xno = 1

! definio da funo objetivo.
caminho := 177*(Xab) + 134*(Xac) + 209*(Xad) + 83*(Xbc + Xcb) + 70*(Xcd + Xdc) +
261*(Xbe + Xeb) + 152*(Xcf + Xfc) + 125*(Xdg + Xgd) + 187*(Xdh + Xhd) + 99*(Xef + Xfe)
+ 136*(Xfg + Xgf) + 87*(Xgh + Xhg) + 125*(Xei + Xie) + 148*(Xhj + Xjh) + 158*(Xil + Xli)
+ 48*(Xik + Xki) + 16*(Xjk + Xkj) + 181*(Xkl + Xlk) + 91*(Xjm + Xmj) + 90*(Xmn1 +
Xnm1) + 112*(Xmn2 + Xnm2) + 391*(Xno) + 273*(Xlo)
minimize(caminho)

! escreve o tempo do menor percurso
writeln("O tempo do caminho mnimo :", getobjval," !") ! escreve o valor da funo objetivo
na tela

! percorre cada ponto, se o ponto for utilizado, escreve.
writeln("----------------")
writeln("Caminho Mnimo :")

if getsol(Xab) = 1
THEN writeln("Xab")
END-IF
if getsol(Xac) = 1
THEN writeln("Xac")
END-IF
if getsol(Xad) = 1
THEN writeln("Xad")
END-IF

if getsol(Xcb) = 1
THEN writeln("Xcb")
END-IF
if getsol(Xeb) = 1
THEN writeln("Xeb")
END-IF
if getsol(Xbc) = 1
THEN writeln("Xbc")
END-IF
if getsol(Xbe) = 1
THEN writeln("Xbe")
END-IF

if getsol(Xdc) = 1
THEN writeln("Xdc")
END-IF
if getsol(Xfc) = 1
THEN writeln("Xfc")
END-IF
if getsol(Xcd) = 1
THEN writeln("Xcd")
END-IF
if getsol(Xcf) = 1
THEN writeln("Xcf")
END-IF

if getsol(Xgd) = 1
THEN writeln("Xgd")
END-IF
if getsol(Xhd) = 1
THEN writeln("Xhd")
END-IF
if getsol(Xdh) = 1
THEN writeln("Xhd")
END-IF

if getsol(Xfe) = 1
THEN writeln("Xfe")
END-IF
if getsol(Xie) = 1
THEN writeln("Xie")
END-IF
if getsol(Xef) = 1
THEN writeln("Xef")
END-IF
if getsol(Xei) = 1
THEN writeln("Xei")
END-IF

if getsol(Xgf) = 1
THEN writeln("Xgf")
END-IF
if getsol(Xfg) = 1
THEN writeln("Xfg")
END-IF

if getsol(Xdg) = 1
THEN writeln("Xdg")
END-IF
if getsol(Xhg) = 1
THEN writeln("Xhg")
END-IF
if getsol(Xgh) = 1
THEN writeln("Xgh")
END-IF

if getsol(Xjh) = 1
THEN writeln("Xjh")
END-IF
if getsol(Xhj) = 1
THEN writeln("Xhj")
END-IF

if getsol(Xki) = 1
THEN writeln("Xki")
END-IF
if getsol(Xli) = 1
THEN writeln("Xli")
END-IF
if getsol(Xik) = 1
THEN writeln("Xik")
END-IF
if getsol(Xil) = 1
THEN writeln("Xil")
END-IF

if getsol(Xkj) = 1
THEN writeln("Xkj")
END-IF
if getsol(Xmj) = 1
THEN writeln("Xmj")
END-IF
if getsol(Xjk) = 1
THEN writeln("Xjk")
END-IF
if getsol(Xjm) = 1
THEN writeln("Xjm")
END-IF

if getsol(Xlk) = 1
THEN writeln("Xlk")
END-IF
if getsol(Xkl) = 1
THEN writeln("Xkl")
END-IF

if getsol(Xlo) = 1
THEN writeln("Xlo")
END-IF
if getsol(Xnm1) = 1
THEN writeln("Xnm1")
END-IF
if getsol(Xno) = 1
THEN writeln("Xno")
END-IF
if getsol(Xmn1) = 1
THEN writeln("Xmn1")
END-IF
if getsol(Xmn2) = 1
THEN writeln("Xmn2")
END-IF


end-model ! finaliza o modelo

RESULTADO (VISUALIZAO)
O tempo do caminho mnimo :941 !
----------------
Caminho Mnimo :
Xac
Xcf
Xfe
Xei
Xil
Xlo

Você também pode gostar