You are on page 1of 10

PROBLEMA DEL AGENTE VIAJERO (T.S.P.

):

Enunciado:
Un agente de visitar n ciudades
comenzando y terminando en una
misma ciudad, visitando solo una vez
cada una y que implique el menor costo
posible.
El costo puede estar definido en base al
tiempo y distancia, es decir, debe completar
las visitas con la menor cantidad de
distancia recorrida posible o en el menor
tiempo posible.

Formulacin en PROGRAMACIN ENTERA del T.S.P


Datos:

Sea C ij la distanciade la ciudad ia la ciudad j

X ij = 1, si existe camino de la ciudad i a laciudad j


0, cualquier otro caso

Min Z=

i=1 j i , j=1

Cij . X ij

Sujeto a:

Cij = ; para i= j
n

j=1,i j

X ij=1 ; i=1,2, , n

i=1, j i

X ij =1 ; j=1,2, , n

X ij { 0,1 }
n

i S , J S

X ij |S|1; S V ,|S|>1

INTERPRERTACION DEL PLANTEAMIENTO:


**El planteamiento se reduce a las sumas de las distancias ptimas para tener
un recorrido menor, para ello las ciudades

Cij

deben de estar conectadas

para poder ir de una a otra (de la ciudad i a la ciudad j) sino no se podra


trasladar de ah que se plantea una programacin entera:

Sea C ij la distanciade la ciudad ia la ciudad j .


Adems:

X ij = 1, si existe conexin de la ciudad i a la ciudad j


0, cualquier otro caso

..(1)

Funcin Objetivo:
** El valor ptimo estar definido por la sumatoria de las distancias menores
de ciudad i a la ciudad j que estn conectadas para realizar el viaje.
n

Min Z=

i=1 j i , j=1

Cij . X ij

Restricciones:
**Sea el caso de que i=j entonces se interpretara que

Cij

es la distancia de

la ciudad i a la ciudad i lo cual carece de sentido, por ello se define:

Cij = ; para i= j
**Como las ciudades

Cij

deben de estar conectadas para poder ir de una a

otra (de la ciudad i a la ciudad j) se debe de asegurar que de la cuidad de


origen se pueda llegar a otra ciudad (destino). De ah se define:
n

i=0, j i

X ij =1 ; j=0,1,2, , n

**De igual forma con la ciudad de destino este debe poder conectarse con otra
para poder seguir viajando y cubrir todas las ciudades. De esto se define:
n

j=0,i j

X ij=1; i=1,2, , n

**Como es un tipo de problema de programacin entera se define la variable:

X ij { 0,1 }

**
n

i S, J S

X ij |S|1; S V ,|S|>1

14. Oilco tiene campos petroleros en San Diego y Los ngeles .El
campo de San Diego produce 500 000 barriles por da y el campo de
Los ngeles produce 400000 barriles por da. El petrleo se enva de
los campos a una refinera ya sea en Dallas o Houston. Cuesta 700
dlares refinar 100000barriles de petrleo en Dallas y 900 dlares en
Houston .El petrleo refinando se enva a los clientes en Chicago y
Nueva York . Los clientes de Chicago requieren 400 000 barriles por
da de petrleo refinado, los clientes de Nueva York requieren
300000.Los costos de enviar 100000 barriles de petrleo entre
ciudades se da en la siguiente tabla .Formule el modelo de transporte
equilibrado
L.A
San Diego
Dallas
Houston

Dallas
300
420
-

Houston
110
100
-

N.Y
450
470

Chicago
550
530

Solucin :

San
Diego

Los Angeles

Dallas

Chicago

Houston
Nueva York

Definiendo las variables como

y i , j =Cantidad de petrleo mandado del campo petrolero i a la refinera j


x i , j =Cantidad de petrleo mandado de la refinera i a la ciudad j

Desarrollando la funcin objetivo


Minimizar :
+ x 12 550

y 11 420

+ y 12 110

+ x 21 470

+ y 21 300

+ y 21 110

+ x 11 450

+ x 22 530

S.a
Por Demanda ( La demanda se debe cumplir )

x 11 + x 21=400000
x 12 + x 22=300000
Por produccin ( La produccin ya esta establecida segn datos )

y 11 + xy 12=500000
y 21+ y22 =400000
Condicin de No negatividad

x 11 , x 12 , x 21 , x 22 , y 11 , y 12 , y22 , y 21 >= 0
Pasando los datos al programa Lingo
!S=COSTO DE ENVIAR DE LOS CAMPOS A LAS REFINERIAS;
!C=COSTO DE ENVIAR DE LAS REFIENRIAS A LOS CLIENTES;
!Y=CANTIDAD ENVIADA A LAS REFINERIAS X=CANTIDAD ENVIADA A LOS
CLIENTES;
SETS:

CAMPOS/C1,C2/:PRODUCCION;
CLIENTES/Z1,Z2,Z3/:DEMANDA;
!se ha creado un cliente ficticio al cual llamamos z3;
RUTA1(CAMPOS,CAMPOS):S,Y;
RUTAS(CAMPOS,CLIENTES):C,X;
ENDSETS

MIN=@SUM(RUTAS:C*X)+@SUM(RUTA1:S*Y);
@FOR(CAMPOS(I):@SUM(CLIENTES(J):X(I,J))>=PRODUCCION(I));
@FOR(CLIENTES(J):@SUM(CAMPOS(I):X(I,J))>=DEMANDA(J));

!por 100 000 barriles de petroleo;


DATA:
PRODUCCION=500,400;
DEMANDA=400,300,200;

S=300,110,
420,100;
C= 450,550,0,
470,530,0;
ENDDATA

END
MIN 450 X( C1, Z1) + 550 X( C1, Z2) + 470 X( C2, Z1) + 530 X( C2, Z2)
+ 300 Y( C1, C1) + 110 Y( C1, C2) + 420 Y( C2, C1)
+ 100 Y( C2, C2)
SUBJECT TO
2] X( C1, Z1) + X( C1, Z2) + X( C1, Z3) >= 500
3] X( C2, Z1) + X( C2, Z2) + X( C2, Z3) >= 400
4] X( C1, Z1) + X( C2, Z1) >= 400

5] X( C1, Z2) + X( C2, Z2) >= 300


6] X( C1, Z3) + X( C2, Z3) >= 200
END
Corriendo el programa en Lingo tendremos el siguiente resultado

Teniendo si siguiente resultado


L.A
San Diego
Dallas
Houston

Dallas
0
0
-

Houston
0
0
-

N.Y
0
300

Chicago
400
0

6. La polica de Gotham City recibi recientemente tres llamadas. Cinco automviles estn
disponibles. La distancia (en cuadras de la ciudad) de cada automvil desde cada llamada se
da en la tabla 69. Gotham City quiere minimizar la distancia total que deben recorrer los
automviles para atender las tres llamadas. Hallar la formulacin.

Distancia (cuadras)
Automvil

Llamada 1

Llamada 2

Llamada 3

10

11

18

Solucin: Problema de Asignacin


Se tiene un grupo n=5 de automviles aplicando para m=3 llamadas, y la distancia ms corta
dij de asignar el isimo automvil al jsimo llamada es conocido. El objetivo es asignar una llamada a
cada automvil de tal forma de alcanzar la distancia total mnima posible. Defina las variables
binarias Xij con un valor de 0 o 1. Cuando X ij = 1, significa que deberamos asignar al automvil i a
la llamada j. De lo contrario, (Xij = 0), no deberamos asignar al automvil i a la llamada j.
El problema de asignacin es un caso especial del problema de transporte, el cual ocurre cuando
cada oferta es 1 y cada demanda es 1. En este caso, la integracin implica que cada oferente
asignar un destino y cada destino tendr un oferente. Los costos proporcionan las bases para la
asignacin correspondiente a un oferente y un destino. En este caso no sern costos sino distancias.
En el problema siguiente, el objetivo es asignar automviles a llamadas particulares mientras se
minimiza la distancia total. La funcin objetivo considera la distancia que implica que cada
automvil realice una actividad en particular. La restriccin dice que cada automvil debe ser
asignada a una actividad, y cada actividad debe ser asignada a solo una persona.
Min 10X11+11X12+18X13+6X21+7X22+7X23+7X31+8X32+5X33+5X41+6X42+4X43+
9X51+4X52+7X53
Sa:
X11+X12+X13=1
X21+X22+X23=1
X31+X32+X33=1

X41+X42+X43=1
X51+X52+X53=1
Xij>=0

LINGO
SETS:
AUTO/1..4/:;
LLAM/1..3/:;
FUN(AUTO,LLAM):X,DISTA;
ENDSETS
DATA:
DISTA=10,11,18,6,7,7,7,8,5,5,6,4,9,4,7;
ENDATA
MIN=@SUM(FUN:X*DISTA);
@FOR(FUN:@BIN(X));
ENDSETS
DATA
ENDDATA