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