From 3f2da07e03aa8c6fac4cabc6741167fc5f91b0bf Mon Sep 17 00:00:00 2001 From: tomcarr <tomas.carretero@estudiantes.uva.es> Date: Tue, 1 Apr 2025 20:57:23 +0000 Subject: [PATCH] Replace NISE.mos --- Codigos Xpress/NISE.mos | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Codigos Xpress/NISE.mos b/Codigos Xpress/NISE.mos index 5d44ae8..821cb29 100644 --- a/Codigos Xpress/NISE.mos +++ b/Codigos Xpress/NISE.mos @@ -141,8 +141,8 @@ fclose(F_INPUT) Comienzo maximizando el primer criterio (MCLP) !) !setparam("XPRS_MAXTIME",-100) -obj := sum(j in pdemanda) y(j) -!obj := sum(j in pdemanda) dem(j)*y(j) +!obj := sum(j in pdemanda) y(j) +obj := sum(j in pdemanda) dem(j)*y(j) forall(i in pdemanda) res1(i):= sum(j in pservicio)x(j)*a(i,j)>= y(i) @@ -160,9 +160,10 @@ maximize(obj) Pn(1,1) := getobjval ! Busco para el otro criterio (MCLPR) la solucion optima, si pongo como restriccion que el MCLP sea el maximo anteiror -obj2 := sum(i in pdemanda) u(i) +!obj2 := sum(i in pdemanda) u(i) +obj2 := sum(j in pdemanda) dem(j)*u(j) -resEliminar := sum(i in pdemanda) y(i) >= Pn(1,1) +resEliminar := sum(i in pdemanda) y(i)*dem(i) >= Pn(1,1) maximize(obj2) Pn(1,2) := getobjval @@ -184,8 +185,8 @@ end-do Paso a maximizar el segudno criterio (MCLPR) !) -obj := sum(j in pdemanda) u(j) -!obj := sum(j in pdemanda) dem(j)*u(j) +!obj := sum(j in pdemanda) u(j) +obj := sum(j in pdemanda) dem(j)*u(j) resEliminar := sum(i in pdemanda) u(i) >= 0 @@ -193,9 +194,9 @@ maximize(obj) Pn(2,2) := getobjval ! Busco para el otro criterio (MCLP) la solucion optima, si pongo como restriccion que el MCLPR sea el maximo anteiror -obj2 := sum(i in pdemanda) y(i) - -resEliminar := sum(i in pdemanda) u(i) >= Pn(2,2) +!obj2 := sum(i in pdemanda) y(i) +obj2 := sum(j in pdemanda) dem(j)*y(j) +resEliminar := sum(i in pdemanda) dem(i)*u(i) >= Pn(2,2) maximize(obj2) Pn(2,1) := getobjval @@ -263,8 +264,8 @@ while(Phi <> 0) do end-if end-do ! Solucion optima NISE para el imax anterior - obj := abs(Sn(imax,2) - Sn((imax+1),2))*(sum(j in pdemanda)y(j)) + abs(Sn((imax+1),1)-Sn(imax,1))*(sum(j in pdemanda)u(j)) - + !obj := abs(Sn(imax,2) - Sn((imax+1),2))*(sum(j in pdemanda)y(j)) + abs(Sn((imax+1),1)-Sn(imax,1))*(sum(j in pdemanda)u(j)) + obj := abs(Sn(imax,2) - Sn((imax+1),2))*(sum(j in pdemanda)dem(j)*y(j)) + abs(Sn((imax+1),1)-Sn(imax,1))*(sum(j in pdemanda)dem(j)*u(j)) forall(i in pdemanda) res1(i):= sum(j in pservicio)x(j)*a(i,j) >= 2*u(i) @@ -287,7 +288,7 @@ while(Phi <> 0) do iter := iter + 1 end-do if(iter >= 2)then - Syi := Syi + 1 + Syi := Syi + floor(dem(i)) end-if end-do @@ -298,7 +299,7 @@ while(Phi <> 0) do iter := iter + 1 end-do if(iter >= 1)then - Sxi := Sxi + 1 + Sxi := Sxi + floor(dem(ii)) end-if end-do -- GitLab