3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO...

57
PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para la asignación de vehículos a trayectos 16 3.- MODELOS MATEMÁTICOS 3.1 CARACTERISTICAS GENERALES DE LOS MODELOS Los modelos que a continuación vamos a estudiar tienen como objeto resolver problemas de la morfología del explicado en el apartado anterior, por tanto definimos a continuación los datos, hipótesis y resultados del problema a tratar. Datos del problema: o Horarios que deben cumplir los vehículos o Tiempo empleado en realizar cada trayecto por un vehículo de la flota o Coste fijo derivado del empleo de cada vehículo adicional utilizado para realizar la asignación de vehículos a los trayectos demandados. o Coste variable derivado de la conducción de un vehículo. Este coste vendrá dado en unidades monetarias por distancia recorrida. o Velocidad de diseño a la que viajarán los vehículos Hipótesis del problema: o Existirán en el problema trayectos de ida y trayectos de vuelta entre dos tipos de puntos clave denominados bases y destinos, siendo el numero de trayectos de ida igual al numero de trayectos de vuelta. o Todos los vehículos poseen similares características técnicas, con lo cual los costes imputables serán idénticos para cada uno de los vehículos. o Los vehículos realizaran los traslados a velocidad constante coincidente con la velocidad de diseño, tanto si el vehículo esta lleno de pasajeros como si se encuentra vació. o Los costes asociados a la utilización de un vehículo adicional para la asignación de trayectos serán mucho mayores que los asociados a la conducción de vehículos.

Transcript of 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO...

Page 1: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

16

3.- MODELOS MATEMÁTICOS

3.1 CARACTERISTICAS GENERALES DE LOS MODELOS

Los modelos que a continuación vamos a estudiar tienen como objeto resolver

problemas de la morfología del explicado en el apartado anterior, por tanto definimos a

continuación los datos, hipótesis y resultados del problema a tratar.

Datos del problema:

o Horarios que deben cumplir los vehículos

o Tiempo empleado en realizar cada trayecto por un vehículo de la flota

o Coste fijo derivado del empleo de cada vehículo adicional utilizado para realizar

la asignación de vehículos a los trayectos demandados.

o Coste variable derivado de la conducción de un vehículo. Este coste vendrá dado

en unidades monetarias por distancia recorrida.

o Velocidad de diseño a la que viajarán los vehículos

Hipótesis del problema:

o Existirán en el problema trayectos de ida y trayectos de vuelta entre dos tipos de

puntos clave denominados bases y destinos, siendo el numero de trayectos de ida

igual al numero de trayectos de vuelta.

o Todos los vehículos poseen similares características técnicas, con lo cual los

costes imputables serán idénticos para cada uno de los vehículos.

o Los vehículos realizaran los traslados a velocidad constante coincidente con la

velocidad de diseño, tanto si el vehículo esta lleno de pasajeros como si se

encuentra vació.

o Los costes asociados a la utilización de un vehículo adicional para la asignación

de trayectos serán mucho mayores que los asociados a la conducción de

vehículos.

Page 2: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

17

Solución del problema:

La solución del problema será aquella en la cual todos los trayectos hayan sido

cubiertos y los costes sean mínimos. Esta solución tendrá pues las siguientes

características:

o Debido a que los costes asociados a la utilización de cada vehículo adicional

son dominantes en la función de costes, una asignación optima tratara de

minimizar el numero de vehículos utilizados para cubrir todos los trayectos.

o Entre dos soluciones que utilicen el mismo numero de vehículos para cubrir

todos los trayectos, será optima aquella que minimice la distancia recorrida

por la totalidad de vehículos, ya que los costes asociados a la conducción de

los vehículos son proporcionales a esta.

Para resolver el problema en cuestión se emplearan dos modelos:

El primer modelo ha sido desarrollado utilizando nociones de modelado

estudiadas el la asignatura Métodos cuantitativos y Organización de la producción en la

carrera de Ingeniería Industrial en la universidad de Sevilla. El modelo resultante es un

modelo completamente valido pero con unas limitaciones computacionales que se

comentaran mas adelante.

El segundo modelo esta basado en un articulo de investigación de B. Gavish, P.

Schweitzert y E. Shlifer llamado “Assigning buses to schedules in a metropolitan area”,

modificando uno de los modelos existentes para adecuarlos a las características de

nuestro problema particular. Este modelo es mas óptimo que el primero debido a que

utiliza menos recursos computacionales para obtener el mismo resultado, con lo cual

este será el modelo que usaremos para resolver el problema de asignación particular de

los autobuses en Cuba.

A continuación se desarrollarán e implementarán los dos modelos de una manera

progresiva para la mejor comprensión del lector.

Page 3: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

18

3.1.- SOLUCIÓN MEDIANTE MODELO MATEMÁTICO Nº 1

3.1.1- Desarrollo del modelo

El primer modelo es un modelo de programación lineal basado en una función

objetivo a minimizar que refleja todos los costes del problema, fijos y variables, y una

serie de restricciones de carácter lineal derivadas de la naturaleza del modelo y que

persiguen la obtención de una solución que se adecue a los requisitos impuestos por los

datos del problema, tales como horario de los trabajadores o tiempo necesario para

realizar un trayecto por un autobús. Para facilitar la comprensión del modelo al lector

se expondrá este primeramente como un modelo de grafos, en el cual los nodos

representan los trayectos a realizar y los arcos representarán la unión entre dos trayectos

que puede realizar un autobús.

3.1.1.1.- Diagrama de Grafos

En el problema genérico y de acuerdo con la hipótesis de numero de viajes de

ida igual a numero de viajes de vuelta, tendremos n trayectos de ida y n trayectos de

vuelta. A cada nodo(que representa un trayecto), se le asociará un parámetro que

corresponde con el instante en el que el autobús debe partir. Para los n trayectos de ida

llamaremos a este parámetro Ai con i=1...n y para los n trayectos de vuelta los valores

Bj con j=1...n , correspondientes al instante temporal en el que el autobús debe partir.

Además existirán dos nodos auxiliares llamados nodo salida o nodo s y nodo entrada o

nodo e que representan la entrada y la salida de los vehículos en un deposito central,

donde todos los vehículos deben comenzar y acabar su actividad.

Page 4: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

19

Así los nodos de nuestro problema y sus respectivos parámetros ai ,bj serán:

Figura 3.1 Nodos del problema

Los arcos que unen dos nodos representan a los autobuses que van a realizar en

primer lugar el trayecto del autobús desde el que sale el arco y en segundo lugar el

trayecto del nodo a el que llega el arco. Por ejemplo, el arco que va del nodo 3 al 4

representa a los autobuses que van a realizar el trayecto 3, y a continuación el trayecto

4.

Vuelta bj

Ida aj

S

E

a1

a2

an

b1

b2

bn

Page 5: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

20

Para ello se le asociarán a cada arco un número de variables binarias que coincide

con el número de autobuses máximo disponible en la flota .Cada una de esas variables

podrá tomar valor 1 si dicho autobús ha sido asignado a ese arco o valor 0 si dicho

autobús no ha sido asignado a ese arco. Estas variables tomarán la siguiente notación:

• xt

ij para variables asociadas a arcos que van desde un trayecto de ida a un

trayecto de vuelta.

• xt

ji variables asociadas a arcos que van desde un trayecto de vuelta a un trayecto

e ida

• xt

ii para variables asociadas a arcos que van desde un trayecto de ida a otro

trayecto de ida

• xt

jj para variables asociadas a arcos que van desde un trayecto de vuelta a otro

trayecto de vuelta.

• xt

si para variables asociadas a un autobús que realizara por primera vez el

trayecto de ida i

• xt

sj para variables asociadas a un autobús que realizara por primera vez el

trayecto de vuelta j.

• xt

ie para variables asociadas a un autobús cuyo ultimo trayecto asociado es el

trayecto i.

• xt

je para variables asociadas a un autobús cuyo ultimo trayecto asociado es el

trayecto j.

Page 6: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

21

El superíndice t esta asociado al autobús de la flota que estemos usando y los

subíndices i,j están asociados a los nodos origen y/o destino que están siendo unidos por

el arco. Cuando un autobús es asignado a un arco que une dos nodos, se interpreta como

que dicho autobús realiza en primer lugar el viaje del nodo del que sale el arco, y en

segundo lugar el viaje correspondiente al nodo al que llega el arco. En el ejemplo

grafico, el autobús II es asignado en primer lugar al trayecto de ida 3, y a continuación

al trayecto de vuelta 5. Ver figura:

Figura 3.2 Arcos y variables

En el siguiente grafo se representan todos los tipos de variables del problema

asociados a los diferentes tipos de arcos existentes. Cada una de las variables

representadas, por ejemplo tijx representa todas las variables correspondientes a

conjugar los índices i , j , t de 1 a n que representarían la unión de cada trayecto i con

cada trayecto j para cada autobús t.

Es decir cada variable representada del tipo tijx representa 3n variables y cada

variable representada del tipo tsix representa 3n variables, donde n es el número de

viajes de ida, igual al número de viajes de vuelta.

a3 b515,3==

==x IIt

ji

Page 7: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

22

Figura 3.3 Tipología de arcos

A cada arco se le asociará un parámetro que representa el tiempo necesario para

que un autobús asignado a dicho arco realice el trayecto correspondiente al nodo del que

sale el arco y llegue al lugar desde donde va a salir el segundo viaje. Este parámetro se

llamara ijc para arcos que vayan desde un trayecto de ida a un trayecto de vuelta, jic

para un arco que vaya desde un nodo de vuelta a un nodo ida, iic para un arco que vaya

desde un nodo de ida a otro nodo de ida y jjc para un arco que vaya desde un nodo de

vuelta a otro de vuelta. En el caso de arcos que vayan desde un nodo de ida a un nodo

de vuelta este coste temporal es el tiempo necesario para realizar el trayecto de ida. En

el caso de arcos que vayan desde un nodo de vuelta a otro de ida, este coste temporal

será igual al tiempo necesario para realizar el trayecto de vuelta. En el caso de arcos que

Vuelta bj

Ida aj

Xijt

Xiit

Xjit

Xjjt

S

E

Xsi

Xsj

Xie

Xje

Page 8: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

23

vayan desde un nodo de ida a otro de ida el coste temporal será el tiempo en realizar el

trayecto de ida mas el tiempo necesario para volver con el autobús vacío al origen desde

donde partió el autobús. Y por ultimo, en los arcos que vayan desde un nodo de vuelta

hasta otro nodo de vuelta el coste temporal asociado dicho arco será igual al tiempo

necesario para realizar dicho trayecto de vuelta mas el tiempo necesario para volver en

vacío al origen desde donde se realizo el trayecto de vuelta. Así se representa el

problema en cuestión con el siguiente grafo donde se ha representado un arco genérico a

cada tipo de arco que aparece en el problema, y se le asocia a cada tipo de arc o el

parámetro temporal correspondiente.

Figura 3.4 Costes asociados a arcos

Vuelta bj

Ida aj

Cij

Cii

Cij

Cjj

0

0

0

0

S

E

Page 9: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

24

Como nota aclaratoria y a modo de resumen, decir que cada arco representado simboliza

todo el conjunto de arcos del mismo tipo. Por ejemplo el arco representado en el dibujo

con coste asociado ijt representa todos los arcos que van desde un trayecto de ida a un

trayecto de vuelta( cada uno de ellos tendrá un ijt diferente). Existen nn×

combinaciones posibles de arcos que unan un nodo de ida y un nodo de vuelta. Cada

uno de estos arcos llevara asociadas tantas variables como autobuses disponibles de ser

asignados haya el la flota, es decir n variables, ya que t= 1....n .

3.1.1.2.- Formulación del problema:

El problema anteriormente enunciado se puede modelar como un problema de

programación lineal entera, en el cual una función objetivo se tratará de minimizar

atendiendo a una serie de restricciones que deberán cumplir las variables del problema.

La función objetivo representa los costes en los que se incurra al fletar un nuevo

autobús y las restricciones representan las condiciones que deben cumplir los autobuses

para que el problema y la solución encontrada tengan sentido.

El problema matemático se representa de la siguiente manera:

Min xft

s.a. bAx ≤

{ }1,0=x

Donde:

x son las variables del problema ordenadas en un vector columna

A es la matriz de coeficientes que multiplica a las variables en las restricciones

b es el vector columna correspondiente al termino independiente de cada

restricción

tf es el vector fila de costes que multiplica a cada variable.

Page 10: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

25

A continuación se explicará el modelo matemático. En primer lugar explicarán

las restricciones que deben de cumplir las variables del modelo y en segundo lugar

describiré la morfología de la función objeto a minimizar.

3.1.1.2.a Restricciones del problema:

Voy a agrupar las restricciones del problema en 5 grupos diferentes que a

continuación se explicarán detalladamente.

-Grupo de ecuaciones 1: Todos los trayectos deben cubrirse

Como se expresa en el enunciado del problema, todos los trayectos deben

cubrirse con un autobús. Esto es equivalente a decir que de todos las variables asociadas

a todos los arcos que entran en un nodo, al menos una y no mas de una debe ser igual a

1, significando ello que se le ha asignado un autobús a dicho nodo. Esto se expresa

matemáticamente como sumatorio de todas las variables de todos los arcos que entran a

un nodo igual a 1.

Para los nodos correspondientes a trayectos de ida, todos los arcos que entran

serán los arcos provenientes de trayectos de vuelta, los arcos provenientes de otros

trayectos de ida y los arcos provenientes del nodo de salida. Esto queda formulado de la

siguiente manera :

∑ ∑∑∑∑= === =

∀=++n

t

n

t

t

si

n

j

t

ji

n

t

n

i

t

iiixxx

1 111 1;1

Para los nodos correspondientes a trayectos de vuelta, todos los arcos que entran

serán los arcos provenientes de trayectos de ida, los arcos provenientes de otros

trayectos de vuelta y los arcos provenientes del nodo de salida. Esto queda formulado de

la siguiente manera :

Page 11: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

26

∑ ∑∑∑∑= === =

∀=++n

t

n

t

t

si

n

i

t

ij

n

t

n

j

t

jjjxxx

1 111 1;1

El valor 1 simboliza que solo un autobús puede hacer el viaje y signo igual

implica que todos los trayectos deben asignarse a un autobús.

Grupo de ecuaciones 2.- Balance de nodos

Cuando un autobús entra en un nodo, o dicho con otras palabras, se le asigna

dicho autobús a dicho nodo, este puede hacer dos cosas:

o Cuando termine dicho trayecto realizar otro trayecto, lo que seria equivalente

a que la variable relativa a dicho autobús del arco que sale de ese nodo al

nuevo nodo tome valor 1.

o El autobús no se asigne a ningún otro trayecto, lo que es equivalente a dar

valor 1 a la variable relativa a dicho autobús del arco que une dicho nodo con

el nodo de entrada. De aquí se deduce que todo el flujo que llega a un nodo

(en nuestro problema flujo =1), debe ser igual al flujo que sale de dicho

nodo.

Matemáticamente para los nodos de ida:

tixxxxxx t

ie

n

j

t

ji

n

i

t

ii

t

si

n

j

t

ji

n

i

t

ii ∀∀++=++ ∑∑∑∑====

,';1

'1

'1

'1

'

Y para los nodos de vuelta:

tjxxxxxx t

je

n

i

t

ij

n

j

t

jj

t

sj

n

i

t

ij

n

j

t

jj ∀∀++=++ ∑∑∑∑====

,';1

'1

'!

'1

'

Page 12: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

27

Grupo de ecuaciones 3.- Autobuses de salida:

Cada subíndice t para t=1...n de los autobuses disponibles está relacionado con

un autobús. Cada autobús de la flota puede o bien no salir, o bien salir, lo que es

evidente es que el valor de todas las variables asociadas a el de los arcos que unen el

nodo de salida con los diferentes trayectos debe ser menor o igual que uno. Esto se

expresa con la siguiente ecuación:

tn

j

t

sj

n

i

t

si xx ∀≤+∑∑==

;11!

Grupo de ecuaciones 4.- Balance de Autobuses Total:

El numero de autobuses que se vaya a utilizar para cubrir los trayectos

demandados deben regresar una vez terminada la jornada. Es decir:

tn

j

t

je

n

i

t

ie

n

j

t

sj

n

i

t

si xxxx ∀+=+ ∑∑∑∑====

;111!

Grupo de ecuaciones 5:Restricciones temporales

Cuando un autobús es asociado a un arco que une dos trayectos, debe tener

tiempo suficiente tras realizar el primero de ellos para realizar el segundo. Es decir la

hora de salida del primer trayecto mas el tiempo empleado en realizar el trayecto e ir al

lugar desde donde debe realizar el segundo debe ser menor a la hora de partida del

segundo trayecto. Para un primer trayecto de ida y un segundo trayecto de vuelta, esto

se expresa como:

jibxca j

n

t

t

ijiji∀∀≤+∑

=

,;1

Page 13: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

28

En esta ecuación matemática puede surgir el problema de que la hora de partida

del primer trayecto a realizar sea menor que la hora de partida del segundo trayecto a

realizar, en cuyo caso la anterior restricción sería incompatible. Para paliar dicho

problema se realizar el siguiente análisis(realizado para un arco que va desde un

trayecto de ida a otro trayecto de vuelta):

En el caso normal en el que la hora del trayecto de vueltas sea mayor que la hora

del trayecto de ida, las variables asociadas al arco deben cumplir:

jibxca j

n

t

t

ijiji ∀∀≤+∑=

,;1

Si la hora de salida del trayecto de vuelta es mayor que la hora del trayecto de

ida la ecuación anterior seria incompatible, pero todas las variables deberían ser iguales

a 0, luego en este caso las variables asociadas al arco deben cumplir:

;,;01

jin

t

t

ijx ∀=∑=

Introducimos entonces el parámetro ijδ binario que tomara los siguientes

valores:

0=ijδ si ji ba ≥ , caso compatible

1=ijδ si ji ba < , caso incompatible

Luego como se quiere imponer que :

• Si ji ba ≥ ⇒ 0=ijδ ⇒ jibxca j

n

t

t

ijiji ∀∀≤+∑=

,;1

• Si ji ba < ⇒ 1=ijδ ⇒ ;,;01

jin

t

t

ijx ∀=∑=

Page 14: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

29

Esto se consigue modelando de la siguiente manera:

jiKijj

n

t

t

ijiji bxca ∀∀−+≤+∑=

,);1(1

δ

;,;1

jiij

n

t

t

ijx ∀≤∑=

δ

Esto realizado para los cuatro grupos de restricciones temporales queda:

jiK ijj

n

t

t

ijiji bxca ∀∀−+≤+∑=

,);1(1

δ

jiK jii

n

t

t

jijij axcb ∀∀−+≤+∑=

,);1(1

δ

iiKiii

n

t

t

iiiii axca ∀∀−+≤+∑=

,);1(1

δ

jjK jjj

n

t

t

jjjjj bxcb ∀∀−+≤+∑=

,);1(1

δ

3.1.1.2.b Función objetivo:

La función objetivo representa los costes en los que se incurre al fletar un nuevo

autobús. Estos en nuestro modelo serán de dos tipos:

-Costes fijos al fletar un nuevo autobús:

Obviamente al utilizar un nuevo autobús para cubrir todos los trayectos del

problema se incurren en una serie de gastos tales como sueldo de un conductor,

disponibilidad de un nuevo coche, puesta a punto del autobús,etc. Si al promedio de

estos costes se le asigna el valor A para cada nuevo coche fletado el gasto total será:

⎟⎠

⎞⎜⎝

⎛+⋅ ∑∑∑∑

= == =

n

t

n

i

t

si

n

t

n

i

t

si xxA1 11 1

;,;1

jiij

n

t

t

ijx ∀≤∑=

δ

;,;1

jiji

n

t

t

jix ∀≤∑=

δ

;,';'1

' iiii

n

t

t

iix ∀≤∑=

δ

;,';'

1'

jjjj

n

t

t

jjx ∀≤∑=

δ

Page 15: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

30

-Costes variables asociados a la conducción del autobús:

El coste variable asociado a la gasolina consumida, mantenimiento y

reparaciones, etc. será proporcional a la distancia recorrida por los autobuses. Ya que en

nuestro modelo los parámetros xyc representan el tiempo que se emplea al realizar el

trayecto que va desde x hasta y, y en nuestro modelo se ha supuesto que que los

autobuses viajan a velocidad constante, el numero de Km. realizado por los autobuses

será proporcional a la multiplicación de dichos costes temporales por las variables de

asignación del problema. Así quedaría del siguiente modo:

⎟⎟⎠

⎞⎜⎜⎝

⎛+++⋅ ∑∑∑∑∑∑∑∑∑∑∑∑

= = == = == = == = =

n

t

n

j

n

i

t

jiji

n

t

n

i

n

j

t

ijij

n

t

n

j

n

j

t

jjjj

n

t

n

i

n

i

t

iiii xcxcxcxcB1 1 11 1 11 1 1'

''1 1 1'

''

Si definimos K como la relación existente entre A y B la función objetivo nos quedaría

del siguiente modo:

⎟⎠

⎞⎜⎝

⎛+⋅++++ ∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑

= == == = == = == = == = =

n

t

n

i

t

si

n

t

n

i

t

si

n

t

n

j

n

i

t

jiji

n

t

n

i

n

j

t

ijij

n

t

n

j

n

j

t

jjjj

n

t

n

i

n

i

t

iiii xxxcxcxcxc K1 11 11 1 11 1 11 1 1'

''1 1 1'

''

siendo K un coeficiente que representa la relación entre el coste de utilizar un nuevo

autobús frente al coste por kilómetro recorrido por un autobús. Obviamente este

dependerá de las condiciones donde se desee aplicar el algoritmo pero por norma

general K>>1 ya que los costes derivados de emplear un vehículo mas para realizar la

asignación siempre serán muy superiores a los costes de conducción por realizar un

trayecto.

Page 16: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

31

3.1.1.2.c Modelo Completo

El modelo completo quedaría de la siguiente manera:

Minimizar:

⎟⎠

⎞⎜⎝

⎛+⋅++++ ∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑

= == == = == = == = == = =

n

t

n

i

t

si

n

t

n

i

t

si

n

t

n

j

n

i

t

jiji

n

t

n

i

n

j

t

ijij

n

t

n

j

n

j

t

jjjj

n

t

n

i

n

i

t

iiii xxxcxcxcxc K1 11 11 1 11 1 11 1 1'

''1 1 1'

''

Sujeto a:

∑ ∑∑∑∑= === =

∀=++n

t

n

t

t

si

n

j

t

ji

n

t

n

i

t

iiixxx

1 111 1

;1

∑ ∑∑∑∑= === =

∀=++n

t

n

t

t

si

n

i

t

ij

n

t

n

j

t

jjjxxx

1 111 1

;1

tixxxxxx t

ie

n

j

t

ji

n

i

t

ii

t

si

n

j

t

ji

n

i

t

ii∀∀++=++ ∑∑∑∑

====

,';1

'1

'1

'1

'

tjxxxxxx t

je

n

i

t

ij

n

j

t

jj

t

sj

n

i

t

ij

n

j

t

jj∀∀++=++ ∑∑∑∑

====

,';1

'1

'!

'1

'

tn

j

t

sj

n

i

t

si xx ∀≤+∑∑==

;11!

tn

j

t

je

n

i

t

ie

n

j

t

sj

n

i

t

si xxxx ∀+=+ ∑∑∑∑====

;111!

jiKijj

n

t

t

ijiji bxca ∀∀−+≤+∑=

,);1(1

δ

;,;1

jiij

n

t

t

ijx ∀≤∑=

δ

donde 0=ijδ si ji ba ≥

1=ijδ si ji ba <

iiKiii

n

t

t

iiiii axca ∀∀−+≤+∑=

,);1(1

δ

;,';'1

' iiii

n

t

t

iix ∀≤∑=

δ

donde 0' =iiδ si ii aa ≥'

1' =iiδ si ii aa <'

con { }1,0=x

jiKjii

n

t

t

jijij axcb ∀∀−+≤+∑=

,);1(1

δ

;,;1

jiji

n

t

t

jix ∀≤∑=

δ

donde 0=jiδ si ij ab ≥

1=jiδ si ij ab <

jjKjjj

n

t

t

jjjjj bxcb ∀∀−+≤+∑=

,);1(1

δ

;,';'

1'

jjjj

n

t

t

jjx ∀≤∑=

δ

donde 0' =jjδ si jj bb ≥'

1' =jjδ si jj bb <'

Page 17: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

32

3.2.2.- Implementación

Por la morfología lineal del problema y la topología entera de las variables, se ha

elegido para la resolución del problema un algoritmo de programación lineal entera

basado en el algoritmo Simplex para programación lineal continua pero con una serie de

modificaciones que más adelante se explicarán. Para ello se ha utilizado la herramienta

informática de programación y calculo matemático Matlab. En este apartado veremos en

primer lugar la morfología de problema en formato matricial, la implementación del

mismo en Matlab y el algoritmo de resolución usado para resolver el problema y su

programación en Matlab.

3.2.2.1 Morfología del problema en formato matricial

Para implementar el problema en matlab es necesario en primer lugar

introducirlo en formato matricial y en segundo lugar ejecutarlo. El formato matricial

tendrá la siguiente forma:

Min xft

s.a. bAx ≤

{ }1,0=x

Donde:

x son las variables del problema ordenadas en n vector columna

A es la matriz de coeficientes que multiplica a las variables en las restricciones

b es el vector columna correspondiente al termino independiente de cada

restricción

tf es el vector fila de costes que multiplica a cada variable.

Page 18: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

33

Para resolverlo en Matlab hay que pasar el problema al formato estándar siguiente:

Min xft

s.a. bAx ≤

eqeq bxA =

{ }1,0=x

Donde:

x son las variables del problema ordenadas en n vector columna.

A es la matriz de coeficientes que multiplica a las variables en las restricciones

que se cumple con signo de menor o igual.

b es el vector columna correspondiente al termino independiente de cada

restricciones que se cumplen con signo de menor o igual.

eqA es la matriz de coeficientes que multiplica a las variables en las restricciones

que se cumple con signo de menor o igual.

eqb es el vector columna correspondiente al termino independiente de cada

restricciones que se cumplen con signo de menor o igual.

tf es el vector fila de costes que multiplica a cada variable.

Habrá que ordenar pues las restricciones por el tipo de relación que cumplan.

Definimos por simplicidad [ ]eqAAA ;= y [ ]eqbbb ;= , es decir la matriz A y vector pero

ordenados poniendo en primer lugar las restricciones que se cumplen con signo de

menor o igual y a continuación las restricciones que se cumplen con signo de igualdad.

Según esta nueva ordenación de las variables acorde con el formato matricial el

problema nos quedaría de la siguiente manera:

Page 19: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

34

Minimizar:

⎟⎠

⎞⎜⎝

⎛+⋅++++ ∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑

= == == = == = == = == = =

n

t

n

i

t

si

n

t

n

i

t

si

n

t

n

j

n

i

t

jiji

n

t

n

i

n

j

t

ijij

n

t

n

j

n

j

t

jjjj

n

t

n

i

n

i

t

iiii xxxcxcxcxc K1 11 11 1 11 1 11 1 1'

''1 1 1'

''

Sujeto a:

(restricciones que se cumplen con signo de igualdad)

∑ ∑∑∑∑= === =

∀=++n

t

n

t

t

si

n

j

t

ji

n

t

n

i

t

iiixxx

1 111 1;1

∑ ∑∑∑∑= === =

∀=++n

t

n

t

t

si

n

i

t

ij

n

t

n

j

t

jjjxxx

1 111 1;1

tixxxxxx t

ie

n

j

t

ji

n

i

t

ii

t

si

n

j

t

ji

n

i

t

ii∀∀=−−−++ ∑∑∑∑

====

,';01

'1

'1

'1

'

tjxxxxxx t

je

n

i

t

ij

n

j

t

jj

t

sj

n

i

t

ij

n

j

t

jj∀∀=−−−++ ∑∑∑∑

====

,';01

'1

'!

'1

'

tn

j

t

je

n

i

t

ie

n

j

t

sj

n

i

t

si xxxx ∀=−−+ ∑∑∑∑====

;0111!

(restricciones que se cumplen con signo de menor o igual)

tn

j

t

sj

n

i

t

si xx ∀≤+∑∑==

;11!

jiKijij

n

t

t

ijij abxc ∀∀−+−≤∑=

,);1(1

δ ;

jiK jiji

n

t

t

jiji baxc ∀∀−+−≤∑=

,);1(1

δ ;

iiK iiii

n

t

t

iiii aaxc ∀∀−+−≤∑=

,);1(1

δ ;

jjKjjjj

n

t

t

jjjj bbxc ∀∀−+−≤∑=

,);1(1

δ ;

con { }1,0=x

;,;1

jiij

n

t

t

ijx ∀≤∑=

δ

;,;1

jiji

n

t

t

jix ∀≤∑=

δ

;,';'1

' iiii

n

t

t

iix ∀≤∑=

δ

;,';'1

' jjjj

n

t

t

jjx ∀≤∑=

δ

Page 20: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

35

Pasemos a continuación a definir y explicar cada uno de los términos del modelo

matricial en profundidad.

-Vector x de variables:

Como ya se ha explicado anteriormente, las variables del problema son :

xxxxxxxx t

je

t

ie

t

sj

t

si

t

jj

t

ij

t

ji

t

ii,,,,,,,

Las cuatro primeras supermatrices de variables tendrán un total de nnn ××

componentes o variables. Para nuestra implementación estas se ordenaran en forma de

vector columna de 3n según la disposición que se indica en la siguiente figura:

[ ]nnnnnnnn

t

iixxxxxxxxx ;..........;,.....,,....., 22

111

;121

11

112

111=

[ ]nnnnnnnn

t

jixxxxxxxxx ;..........;,.....,,....., 22

111

;121

11

112

111=

[ ]nnnnnnnn

t

ijxxxxxxxxx ;..........;,.....,,....., 22

111

;121

11

112

111=

[ ]nnnnnnnn

t

ijxxxxxxxxx ;..........;,.....,,....., 22

111

;121

11

112

111=

De manera que para cada t los 2n términos correspondientes a las tijx se

ordenarían como las filas de la matriz cuadrada que formarían introducidas por filas en

un vector de 2n componentes. Esto hecho n veces (t=1..n) constituiría el vector de las

incógnitas del problema.

Page 21: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

36

Las cuatro segundas supermatrices tendrán un total de 2n componentes o

variables que las ordenaremos del siguiente modo:

[ ]nsnsssnss

t

sixxxxxxx ;.....,.....,,....., 2

221

112

11=

[ ]nsnsssnss

t

sjxxxxxxx ;.....,.....,,....., 2

221

112

11=

[ ]nneeeneee

t

iexxxxxxx ;.....,.....,,....., 2

221

112

11=

[ ]nneeeneee

t

jexxxxxxx ;.....,.....,,....., 2

221

112

11=

El vector de variables del problema estaría constituido por los vectores

xxxxxxxx t

je

t

ie

t

sj

t

si

t

jj

t

ij

t

ji

t

ii ,,,,,,, , en ese orden constituyendo el vector de

4 3n +4 2n componentes que a continuación se representa:

[ ]xxxxxxxxx t

je

t

ie

t

sj

t

si

t

jj

t

ij

t

ji

t

ii,,,,,,,=

-Vector tf de costes:

Como la función objetivo tiene la forma

⎟⎠

⎞⎜⎝

⎛+⋅++++ ∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑

= == == = == = == = == = =

n

t

n

i

t

si

n

t

n

i

t

si

n

t

n

j

n

i

t

jiji

n

t

n

i

n

j

t

ijij

n

t

n

j

n

j

t

jjjj

n

t

n

i

n

i

t

iiii xxxcxcxcxc K1 11 11 1 11 1 11 1 1'

''1 1 1'

''

Page 22: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

37

el vector tf será

[ ]0,0,,,,,, kkccccf jjijjiiit =

donde cada uno de los xxc representa un vector fila de 3n componentes

correspondientes a los costes temporales de realizar un viaje (hay que tener en cuenta

que como máximo hay solo 2n componentes diferentes ya que el coste de un arco es

independiente de t) y cada k representa a un vector de 2n componentes iguales a

k donde k es el coste de utilizar un autobús mas para realizar la asignación.

-Vector b:

El vector b esta compuesto por los términos independientes de las restricciones

del problema. Estos en la forma matricial propuesta corresponden a

Para b

[ ])1(),1(),1(),1(,1 δδδδ jjjjiiiijijiijij KKKK bbaabaabb −+−−+−−+−−+−=

y para eqb

[ ]0,0,0,0,1=eqb

teniendo finalmente

[ ]eqbbb ;=

Page 23: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

38

-Matriz A de coeficientes:

La matriz A tendrá tantas filas como columnas existan y tantas columnas como

incógnitas tenga el problema, es decir 23 44 nn + filas y nn 410 2 + columnas.

Para introducir la matriz A en la computadora, es preciso primero realizar un

análisis de la morfología de las restricciones. A continuación se hará un análisis de

dicha morfología.

Para empezar dicho análisis veamos que supone realizar un sumatorio en i a un

vector xt

ij para unos t y j dados (t=τ ;j=1). Realizar este sumatorio se expresa como:

}{ ;...1;12111

1xxxx n

t

i

t

ijjt ττττ +++===∑

=

Esto es equivalente a realizar un producto vectorial entre un vector columna de

componentes 1 ó 0 y el vector fila x , teniendo en cuenta que los valores 1 coincidan con

las componentes del vector x que queremos sumar. Así nos quedaría el sumatorio de la

siguiente manera:

}{ { }( )[ ] Xnvecesjtn

i

t

ijx ⋅===∑=

0,.......0,)0,...,0,1(),0,...,0,1(,....,0,0,........0,...0,01;1

τ

Si realizamos las siguientes definiciones:

( ) n×= 10,...,0,00 ;

( ) ;0,...,0,00 21 n×=

( ) n×= 10,...,0,11 ;

( ) ;1,...,1,11 21 n×=

j=1

t=1 t=τ

Page 24: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

39

El sumatorio anterior nos quedaría de la siguiente forma:

}{ [ ] Xjtn

i

t

ijx ⋅===∑=

0,........,1.........,,0,01;1

τ con 1 en la posición τ -ésima.

Estando colocado el elemento 1 en el lugar τ=t .

Si realizamos ahora el mismo sumatorio para una j genérica tendríamos:

-Sumatorio en i para una t y una j dada:

}{ ;...; 211

xxxx n

n

i

t

ij jt τ

γ

τ

γ

τ

γγτ +++===∑

=

Realizando la siguiente definición:

( )0,.....1,.....0,0,0=γ , con la componente 1 en el lugar γ -ésimo.

);,.......,,,( γγγγγ =

nos quedaría que:

}{ Xjtn

i

t

ijx ⋅⎥⎦⎤

⎢⎣⎡===∑

=

0,........,.........,,0,0;1

γγτ con γ en la posición τ -ésima.

Luego si una restricción fuese un sumatorio un i de todas las variables para un t

dado y un j dado, la fila de la matriz A correspondiente a dicha restricción tomaría la

forma del primer vector de la descomposición anterior. Así para conocer la morfología

de la matriz A, en primer lugar realizaremos el análisis anterior para todos los tipos de

sumatorios que nos vayamos a encontrar en las restricciones y posteriormente

pasaremos todas las restricciones a dicha forma, definiendo así la matriz.

Page 25: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

40

Nota: Todos las operaciones y sumatorios se van a realizar para xt

ij, si bien son

igualmente aplicables a los demás subconjuntos de variables xxx t

jj

t

ji

t

ii,, . Para los

grupos de variables xxxx t

je

t

ie

t

sj

t

si,,, se hará otro análisis análogo a continuación de este

, ya que al ser vectores de solo 2n componentes, no es valido el análisis de xt

ij.

-Sumatorio en t y en i para una j dada:

}{ ;...........1

22

1

11

2

1

11

∑∑= =

++++++++==n

t

n

nnn

n

i

t

ij xxxxxxx jγγγγγγ

γ

Esto es equivalente a:

}{∑∑= =

⋅⎥⎦⎤

⎢⎣⎡==

n

t

n

i

t

ijXjx

1 1

,.......,,,........., γγγγγ , es decir n veces el vector

);,.......,,,( γγγγγ =

-Sumatorio en j para unos i y t dados:

Análogamente al análisis realizado para el sumatorio en i, realizaremos primero

el sumatorio para i = 1.

}{ ;...1; 112111

xxxx n

n

j

t

ij it ττττ +++===∑=

}{ ( )[ ] Xjtn

i

t

ijx ⋅===∑=

0,.......0,0,.......0,0,0),1,...,1,1(,....,0,0,........0,...0,01;1

τ

j=1

t=1 t=τ

Page 26: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

41

Definiendo:

)1,....1,1(1 = vector de n componentes igual a 1.

)0,....,0,0,0,1(1 =

}{ [ ] Xitn

j

t

ijx ⋅===∑=

0,........,1.........,,0,01;1

τ con el elemento 1 en la posición t=τ

y para un i=φ genérico :

definiendo

)0,..1,....,0,0(=φ con el elemento 1 en la posición φ -ésima .

nos quedaría

}{ [ ] Xitn

j

t

ijx ⋅===∑=

0,........,.........,,0,0;1

φφτ con el elemento φ en la posición

τ -ésima.

-Sumatorio en t y en j para una i dada:

}{ ;...........1

22

1

11

2

1

11

∑∑= =

++++++++==n

t

n

nnn

n

j

t

ij xxxxxxx iφφφφφφ

φ

Esto es equivalente a:

}{ [ ]∑∑= =

⋅==n

t

n

j

t

ij Xix! 1

,...,,, φφφφφ , es decir n veces el vector )0,..1,....,0,0(=φ

Page 27: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

42

-Sumatorio en t para los grupos de variables xxxx t

je

t

ie

t

sj

t

si,,,

Realizamos el análisis para xt

si siendo valido para los otros tres grupos de variables.

{ } [ ] Xin

t

t

six ⋅==∑=

γγγγ ,...,,1

con γ n veces.

A continuación se expondrá un cuadro resumen en el se encuentran todos los

sumatorios que se dan en el problema .

Page 28: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

43

Sumatorio Descomposición Notación Matricial

}{ γτ ==∑=

jtn

i

t

ijx ;1

;...21 xxx n

τ

γ

τ

γ

τ

γ+++

[ ] X⋅0,........,.........,,0,0 γ

con γ en posición

esima−τ

}{∑∑= =

=n

t

n

i

t

ij jx1 1

γ xxxxx n

nn γγγγγ+++++++ ....... 22

1

1

2

1

1 [ ] X⋅γγγγ ,.......,,,.........,

}{ φτ ==∑=

itn

j

t

ijx ;1

xxx n

τ

φ

τ

φ

τ

φ+++ ...21

[ ] X⋅0,........,.........,,0,0 φ

con φ en posición

esima−τ

}{∑∑= =

=n

t

n

j

t

ijix

1 1φ xxxxx n

nn φφφφφ+++++++ ...... 22

1

1

2

1

1 [ ] X⋅φφφφ ,...,,,

{ }γ=∑=

in

t

t

six1

xxxx n

ssss γγγγ++++ ...321 [ ] X⋅γγγ ,...,,

{ }τ=∑=

tn

i

t

six1

xxxx snsss

ττττ ++++ ...321

[ ] X⋅0.,,1,..,0,0 con 1 en

posición esima−τ

{ }γφ ==∑=

jin

t

t

ijx ;1

xxxx n

φγφγφγφγ++++ ...321 X⋅⎥⎦

⎤⎢⎣⎡

φγφγφγ τττ ,...,,

Tabla 3.1 Sumatorios en formato matricial

Page 29: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

44

Donde definimos :

Elemento Definición

γ ( ) xn10,.....1,.....0,0,0=γ , con 1 en la pos γ -ésimo.

γ 21),.......,,,(

xnγγγγγ =

1 n×= 1)1,....1,1(1

φ 21)0,..1,....,0,0( xn=φ con 1 en la pos. φ -ésima.

φγτ )0,...,,....,0,0( γτ φγ = con γ en la pos. φ -ésima.

Tabla 3.2 Definiciones

Ya hemos analizado como quedarían todos los tipos de sumatorios

descompuestos en un vector fila que multiplica al vector columna de variables X . A

partir de aquí es trivial formar la matriz A a partir de las restricciones del problema.

Solo hay que introducir los distintos sumatorios en la forma descompuesta estudiada y

sumarlos entre si.

-Morfología de las restricciones completas

Tras todo lo visto veamos como quedarían las distintas ecuaciones. En primer

lugar se vera un ejemplo siendo el razonamiento de las demás análogo. Posteriormente

se escribirán todas las restricciones en el orden establecido.

Como ejemplo veamos como quedaría el primer grupo de restricciones:

∑ ∑∑∑∑= === =

∀=++n

t

n

t

t

si

n

j

t

ji

n

t

n

i

t

ii ixxx1 111 1

;1

Page 30: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

45

seria equivalente a

[ ]γγγγ ,.......,,,........., xt

ii+ [ ]γγγγ ,.......,,,........., xt

ji+ [ ]γγγ ,...,, xt

si=1 n...1=∀γ

Ya que

[ ]',,,,,,, xxxxxxxxx t

je

t

ie

t

sj

t

si

t

jj

t

ij

t

ji

t

ii= ,

si definimos

γ = [ ]γγγγ ,.......,,,........., , con γ n veces

0 = [ ]0,.......,0,,.........0,0 , con 0 n veces

φ)

= [ ]φφφφ ,...,...,........., , con φ n veces

el primer grupo de restricciones se podría representar de la siguiente manera:

[ γ , γ , 0 , 0 ,γ , 0 , 0 , 0 ] X⋅ = 1 n...1=∀γ

Page 31: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

46

Realicemos razonamientos análogos para los otros grupos de restricciones.

Así definimos en primer lugar las siguientes elementos:

Elemento Sumatorio Definición

γ }{∑∑= =

=n

t

n

i

t

ij jx1 1

γ γ = [ ] 31,......,,,........., xnγγγγ , con γ n veces

0 - 0 = [ ] 310,.......,0,,.........0,0 xn , con 0 n veces

τγ }{ γτ ==∑=

jtn

i

t

ijx ;1

τγ = [ ] 310,......,,........,0,0 xnγ , con γ en pos.τ -ésima

φ)

}{∑∑= =

=n

t

n

j

t

ijix

1 1

φ φ)

= [ ]31

,...,....,.........,xn

φφφφ , con φ n veces

τφ)

}{ φτ ==∑=

itn

j

t

ijx ;1

τφ)

= [ ]31

0,...,.....,.........0,0xn

φ , con φ en pos.τ -ésima

ϕγτ) { }γφ ==∑=

jin

t

t

ijx ;1

τφ)

= [ ]φγφγφγφγ ττττ ...,...,, , con φγτ n veces

τγ }{ γτ == itxt

si; τγ = [ ] 210,...,.....,.........0,0 xnγ , con γ en pos.τ -ésima

Tabla 3.3 Definiciones de elementos

Page 32: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

47

Y en la siguiente tabla se expresaran los diferentes grupos de restricciones, en

primer lugar para las restricciones que se cumplen con signo de igualdad,

Restricciones con signo de igualdad Aeq*x (1er Termino restr.)

∑ ∑∑∑∑= === =

∀=++n

t

n

t

t

si

n

j

t

ji

n

t

n

i

t

iiixxx

1 111 1

;1 [ γ , γ , 0 , 0 ,γ , 0 , 0 , 0 ] X⋅

γ∀

∑ ∑∑∑∑= === =

∀=++n

t

n

t

t

sj

n

i

t

ij

n

t

n

j

t

jjjxxx

1 111 1

;1 [ 0 , 0 , γ , γ , 0 ,γ , 0 , 0 ] X⋅

γ∀

tixxxxxx t

ie

n

j

t

ji

n

i

t

ii

t

si

n

j

t

ji

n

i

t

ii ∀∀=−−−++ ∑∑∑∑====

,';01

'1

'1

'1

'

[ ττ φγ ˆ− , τγ , τφ̂− , 0 , τγ , 0 , τγ , 0 ]X

γ∀ , τ∀

tjxxxxxx t

je

n

i

t

ij

n

j

t

jj

t

sj

n

i

t

ij

n

j

t

jj ∀∀=−−−++ ∑∑∑∑====

,';01

'1

'!

'1

'

[ 0 , τφ̂− , τγ , ττ φγ ˆ− , 0 , τγ , 0 , τγ ]X

γ∀ , τ∀

tn

j

t

je

n

i

t

ie

n

j

t

sj

n

i

t

si xxxx ∀=−−+ ∑∑∑∑====

;0111!

[ 0 , 0 , 0 , 0 ,γ ,γ ,-γ ,-γ ] X⋅

γ∀

Tabla 3.4 Restricciones con signo de igualdad

Page 33: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

48

Y en segundo lugar para las restricciones que se cumplen con signos de menor o igual

Restricciones con signo de menor o igual A*x (1er Termino restr.)

tn

j

t

sj

n

i

t

si xx ∀≤+∑∑==

;11!

[ 0 , 0 , 0 , 0 ,γ ,γ , 0 , 0 ] X⋅ ; γ∀

jiK ijij

n

t

t

ijij abxc ∀∀−+−≤∑=

,);1(1

δ [ ] Xcij ⋅⋅ 0,0,0,0,0,,0,0))))

ϕγτ ; φγ ,∀

jiKjiji

n

t

t

jiji baxc ∀∀−+−≤∑=

,);1(1

δ [ ] Xc ji ⋅⋅ 0,0,0,0,0,0,,0))))

ϕγτ ; φγ ,∀

jjKjjjj

n

t

t

jjjj bbxc ∀∀−+−≤∑=

,);1(1

δ [ ] Xc jj ⋅⋅ 0,0,0,0,,0,0,0 ϕγτ))))

; φγ ,∀

iiKiiii

n

t

t

iiii aaxc ∀∀−+−≤∑=

,);1(1

δ [ ] Xcii ⋅⋅ 0,0,0,0,0,0,0,))))

ϕγτ ; φγ ,∀

;,;1

jiij

n

t

t

ijx ∀≤∑=

δ [ ] X⋅0,0,0,0,0,,0,0))))

ϕγτ ; φγ ,∀

;,;1

jiji

n

t

t

jix ∀≤∑=

δ [ ] X⋅0,0,0,0,0,0,,0))))

ϕγτ ; φγ ,∀

;,';'

1'

jjjj

n

t

t

jjx ∀≤∑=

δ [ ] X⋅0,0,0,0,,0,0,0 ϕγτ))))

; φγ ,∀

;,';'

1'

iiii

n

t

t

iix ∀≤∑=

δ [ ] X⋅0,0,0,0,0,0,0,))))

ϕγτ ; φγ ,∀

Tabla 3.5 Restricciones con signo de menor o igual

Page 34: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

49

3.2.2.2 Introducción del modelo en formato matricial en Matlab

Tras haber analizado cómo quedarían dispuestas los vectores y matrices del

modelo, el siguiente paso será programar en Matlab funciones y programas que sean

capaces de generar tales matrices y vectores a partir de los datos iniciales.

Para ello se han programado en Matlab funciones que a partir de un tipo de

sumatorio que se desee realizar a un vector, por ejemplo }{ γτ ==∑=

jtt

i

t

ijx ;1

sea capaz

de devolver un vector columna de unos y ceros que al multiplicarlo por el vector xt

ijdé

cómo resultado el sumatorio deseado. De esta manera teniendo funciones como la

anterior para todos los tipos de sumatorios que se dan en el problema sólo hay que

realizar un programa que implemente todas las restricciones del problema llamando a

este tipo de funciones para conseguir introducir la matriz A del problema.

A continuación se explicará una función que realiza la operación

}{ γτ ==∑=

jtt

i

t

ijx ;1

siendo los demás programas de sumatorios análogos.

function [a]=sumatorioi(jau,tau,n) primero=(tau-1)*(n^2)+1; a=zeros(n^3,1); a(primero,1); for i=1:n; for j=1:n; if j==jau; a(primero+(i-1)*n+j-1,1)=1; end end end

Page 35: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

50

La función sumatorioi consigue a través de unos argumentos de entrada n, jau y

tau que serán γ ,τ y n del problema devolver a que será el vector fila que multiplicado

por el vector tijx realice el sumatorio requerido. Para ello genera un vector de ceros del

mismo tamaño que tijx , es decir 3n y utilizamos la variable “primero” para señalar la

primera componente que será distinta de cero del vector a mediante las dos sentencias

primero=(tau-1)*(n^2)+1;

a=zeros(n^3,1);

a(primero,1);

A continuación y de acuerdo con el análisis realizado en el apartado anterior en el que

se concluye que

}{ [ ] Xjtn

i

t

ijx ⋅===∑=

0,........,.........,,0,0;1

γγτ con γ en la posición γ -ésima.

Existiría un 1 para cada termino en el que t fuera igual a tau y j fuera igual a jau.

Eso se traduce a

for i=1:n; for j=1:n; if j==jau; a(primero+(i-1)*n+j-1,1)=1; end end end

Page 36: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

51

El resto de las funciones que realizan sumatorios están programadas de manera análoga

así que es relativamente sencilla su interpretación . Así tendríamos:

- Sumatorio en i y en t para una j dada

function [a]=sumatorioi_t(jau,n) a=zeros(n^3,1); for t=1:n; for i=1:n; for j=1:n; if j==jau; a((t-1)*n^2+(i-1)*n+j,1)=1; end end end end

- Sumatorio en j para una i y una t dada

function [a]=sumatorioj(iau,tau,n) primero=(tau-1)*(n^2)+1; a=zeros(n^3,1); a(primero,1); for i=1:n; for j=1:n; if i==iau; a(primero+(i-1)*n+j-1,1)=1; end end end

- Sumatorio en j y t para una i dada

function [a]=sumatorioj_t(iau,n) a=zeros(n^3,1); for t=1:n; for i=1:n; for j=1:n; if i==iau; a((t-1)*n^2+(i-1)*n+j,1)=1; end end end end

Page 37: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

52

- Sumatorio en i para los elementos Xsit,Xsjt, Xie,Xje

function [a]=sumatorioi_simple(tau,n) primero=(tau-1)*n+1; a=zeros(n^2,1); a(primero,1); for i=1:n; a(primero+i-1,1)=1; end

- Sumatorio en t para los elementos Xsit,Xsjt, Xie,Xje

function [a]=sumatoriot_simple(iau,n) a=zeros(n^2,1); for t=1:n; for i=1:n; if i==iau; a((t-1)*n+i,1)=1; else a((t-1)*n+i,1)=0; end end end

- Sumatorio en t para una i y una j dada

function [a]=sumatoriot_doble(iau,jau,n) a=zeros(n^3,1); for t=1:n; for i=1:n; for j=1:n; if i==iau; if j==jau; a((t-1)*n^2+(i-1)*n+j,1)=1; end else a((t-1)*n^2+(i-1)*n+j,1)=0; end end end end

Page 38: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

53

Para calcular el valor de los parámetros ij∂ de las restricciones temporales se ha creado

también esta función que calcula los parámetros delta en función de los valores de ai y

bj.

function [delta]=funciondelta(ai,bj,n); deltaij=zeros(n,n); for i=1:n; for j=1:n; if ai(i,1)>=bj(j,1); delta(i,j)=0; else delta(i,j)=1; end end end

A continuación podemos ver el código del programa que con ayuda de las

funciones anteriores es capaz de generar el modelo compuesto por la matriz A, y los

vectores b y f :

%definicion de datos:problema general %variables auxiliares para restricciones temporales K=1000000; deltaii=funciondelta(ai,ai,n); deltaji=funciondelta(bj,ai,n); deltaij=funciondelta(ai,bj,n); deltajj=funciondelta(bj,bj,n); %vars del problema Xii=zeros(n^3,1); Xji=zeros(n^3,1); Xij=zeros(n^3,1); Xjj=zeros(n^3,1); Xsi=zeros(n^2,1); Xsj=zeros(n^2,1); Xie=zeros(n^2,1); Xje=zeros(n^2,1); x=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]; [longitud,aa]=size(x); Aeq=zeros(1, longitud); %-------------------------MATRIZ Aeq -------------------

Page 39: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

54

%primera restriccion for i=1:n; Xii=sumatorioi_t(i,n); Xji=sumatorioi_t(i,n); Xsi=sumatoriot_simple(i,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; Aeq(i,1:longitud)=auxiliar; Xii=zeros(n^3,1);%reinizializando vars Xji=zeros(n^3,1); Xsi=zeros(n^2,1); end %segunda restriccion for i=1:n; Xjj=sumatorioi_t(i,n); Xij=sumatorioi_t(i,n); Xsj=sumatoriot_simple(i,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; Aeq(i+n,1:longitud)=auxiliar; Xjj=zeros(n^3,1); Xij=zeros(n^3,1); Xsj=zeros(n^2,1); end %tercera restriccion for t=1:n; for i=1:n; Xii=sumatorioi(i,t,n); Xji=sumatorioi(i,t,n); Xsi=elemento(i,t,n); Xii=Xii-sumatorioj(i,t,n); Xij=-sumatorioj(i,t,n); Xie=-elemento(i,t,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; Aeq((t-1)*n+2*n+i,1:longitud)=auxiliar; Xii=zeros(n^3,1); Xji=zeros(n^3,1); Xsi=zeros(n^2,1); Xij=zeros(n^3,1); Xie=zeros(n^2,1); end end

Page 40: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

55

%cuarta restriccion for t=1:n; for i=1:n; Xjj=sumatorioi(i,t,n); Xij=sumatorioi(i,t,n); Xsj=elemento(i,t,n); Xjj=Xjj-sumatorioj(i,t,n); Xji=-sumatorioj(i,t,n); Xje=-elemento(i,t,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; Aeq((t-1)*n+2*n+n^2+i,1:longitud)=auxiliar; Xjj=zeros(n^3,1); Xji=zeros(n^3,1); Xsi=zeros(n^2,1); Xij=zeros(n^3,1); Xje=zeros(n^2,1); end end %6ª restriccion (flujo de salida=entrada) for t=1:n; Xsi=sumatorioi_simple(t,n); Xsj=sumatorioi_simple(t,n); Xie=-sumatorioi_simple(t,n); Xje=-sumatorioi_simple(t,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; Aeq(2*n+2*n^2+t,1:longitud)=auxiliar; Xsi=zeros(n^2,1); Xsj=zeros(n^2,1); Xie=zeros(n^2,1); Xje=zeros(n^2,1); end %-----------Matriz A----------------- %5ª restriccion (flujo de salida) for t=1:n; Xsi=sumatorioi_simple(t,n); Xsj=sumatorioi_simple(t,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; A(t,1:longitud)=auxiliar; Xsi=zeros(n^2,1); Xsj=zeros(n^2,1); end %restriccion 7.1 (temporal ai,bj) for i=1:n; for j=1:n; Xij=cij(i,j)*sumatoriot_doble(i,j,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; A(n+(i-1)*n+j,1:longitud)=auxiliar; Xij=zeros(n^3,1); end end

Page 41: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

56

%restriccion 7.2 (temporal bj,ai) for i=1:n; for j=1:n; Xji=cji(i,j)*sumatoriot_doble(i,j,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; A(n+n^2+(i-1)*n+j,1:longitud)=auxiliar; Xji=zeros(n^3,1); end end %restriccion 7.3 (temporal ai,ai) for i=1:n; for j=1:n; Xii=cii(i,j)*sumatoriot_doble(i,j,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; A(n+2*n^2+(i-1)*n+j,1:longitud)=auxiliar; Xii=zeros(n^3,1); end end %restriccion 7.4 (temporal bj,bj) for i=1:n; for j=1:n; Xjj=cjj(i,j)*sumatoriot_doble(i,j,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; A(n+3*n^2+(i-1)*n+j,1:longitud)=auxiliar; Xjj=zeros(n^3,1); end end %restriccion 8.1 (condicion delta) for i=1:n; for j=1:n; Xij=sumatoriot_doble(i,j,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; A(n+4*n^2+(i-1)*n+j,1:longitud)=auxiliar; Xij=zeros(n^3,1); end end %restriccion 8.2 (condicion delta) for i=1:n; for j=1:n; Xji=sumatoriot_doble(i,j,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; A(n+5*n^2+(i-1)*n+j,1:longitud)=auxiliar; Xji=zeros(n^3,1); end end %restriccion 8.3 (condicion delta) for i=1:n; for j=1:n; Xii=sumatoriot_doble(i,j,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; A(n+6*n^2+(i-1)*n+j,1:longitud)=auxiliar; Xii=zeros(n^3,1); End end

Page 42: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

57

%restriccion 8.4 (condicion delta) for i=1:n; for j=1:n; Xjj=sumatoriot_doble(i,j,n); auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje]'; A(n+7*n^2+(i-1)*n+j,1:longitud)=auxiliar; Xjj=zeros(n^3,1); end end %--------------vector beq--------------------- beq=zeros(3*n+2*n^2,1); %restricciones 1 y 2 beq(1:2*n,1)=1; %---------------b------------------------ b=zeros(1,1); %restr 5 for i=1:n; b(i,1)=1; end %restr 7.1 for i=1:n; for j=1:n; b(n+(i-1)*n+j,1)=bj(j,1) - ai(i,1) + K*(1-deltaij(i,j)); end end %restr 7.2 for i=1:n; for j=1:n; b(n+n^2+(i-1)*n+j,1)=ai(j,1) - bj(i,1) + K*(1-deltaji(i,j)); end end %restr 7.3 for i=1:n; for j=1:n; b(n+2*n^2+(i-1)*n+j,1)=ai(j,1) - ai(i,1) + K*(1-deltaii(i,j)); end end %restr 7.4 for i=1:n; for j=1:n; b(n+3*n^2+(i-1)*n+j,1)=bj(j,1) - bj(i,1) + K*(1-deltajj(i,j)); end end %restr 8.1 for i=1:n; for j=1:n; b(n+4*n^2+(i-1)*n+j,1)=deltaij(i,j); end end

Page 43: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

58

%restr 8.2 for i=1:n; for j=1:n; b(n+5*n^2+(i-1)*n+j,1)=deltaji(i,j); end end %restr 8.3 for i=1:n; for j=1:n; b(n+6*n^2+(i-1)*n+j,1)=deltaii(i,j); end end %restr 8.4 for i=1:n; for j=1:n; b(n+7*n^2+(i-1)*n+j,1)=deltajj(i,j); end end % funcion objetivo f=zeros(1,1); COSTE=5000; for t=1:n; for i=1:n; for j=1:n; f((t-1)*n^2+(i-1)*n+j,1)=cii(i,j); end end end for t=1:n; for i=1:n; for j=1:n; f(n^3+(t-1)*n^2+(i-1)*n+j,1)=cji(i,j); end end end for t=1:n; for i=1:n; for j=1:n; f(2*n^3+(t-1)*n^2+(i-1)*n+j,1)=cij(i,j); end end end for t=1:n; for i=1:n; for j=1:n; f(3*n^3+(t-1)*n^2+(i-1)*n+j,1)=cjj(i,j); end end end f(4*n^3+1:4*n^3+2*n^2,1)=COSTE; f(4*n^3+2*n^2+1:4*n^3+4*n^2,1)=0;

Page 44: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

59

3.3.- MODELO MATEMÁTICO Nº 2

3.3.1.- Desarrollo del modelo

El segundo modelo que vamos a emplear esta basado en modelos de asignación de

autobuses en áreas metropolitanas desarrollados en el estudio “ An Approach for

solving class of transportation scheduling problems” llevado a cabo por B. Gavish,

P.Schweitzert y E Shilefer. En el se estudian modelos de problemas de asignación para

diversas situaciones. Todos estos modelos para problemas de asignación tienen unas

características comunes tales como:

o Todos los vehículos están localizados en un deposito central.

o Cada vehículo comienza desde el deposito central, realiza una cadena de

itinerarios y acaba en el mismo deposito central

o Todos los trayectos deben ser realizado por un y solo un vehículo.

Aparte de estas características cada problema de asignación particular tendrá unas

condiciones especificas que habrá que cumplir, en función de la naturaleza del problema

a tratar. En nuestro caso particular, y dado que nuestro problema de asignación parte de

la premisa de que los trayectos que deben de ser asignados deben cumplir unos horarios

previamente establecidos, introducimos la siguiente característica particular:

o Para que un vehículo pueda realizar un trayecto a continuación de otro es

necesario que el tiempo empleado en realizar el primer trayecto más el tiempo

necesario en llegar al punto donde comienza el segundo trayecto sea menor que

la diferencia de los tiempos programados para dichos trayectos.

Aparte de estas características generales, el modelo que vamos a desarrollar es un

modelo de programación lineal en el cual habrá una función objetivo compuesta por las

variables del problema multiplicadas por unos coeficientes que serán los costes del

problema y mediante un algoritmo de optimización se minimizará el valor de esa

función objetivo, con la condición de que las variables del problema deban cumplir unas

restricciones derivadas de la naturaleza del problema.

Page 45: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

60

Así los costes a minimizar en este problema los podemos dividir en costes de uso

de un nuevo vehículo(salario del conductor, puesta en marcha del vehículo,...) y costes

de conducción de un vehículo( gasto de gasolina, mantenimiento ,...).

Las restricciones del problema están dictadas por la naturaleza del problema con

restricciones tales como: tiempo de realización de un trayecto, todos los autobuses

deben partir y regresar del deposito central, hay que realizar todos los trayectos por uno

y sólo un vehículo,...

Las variables serán de tipo cero, uno donde una variable cero implicara que un

autobús no ha realizado un determinado trayecto y el valor 1 significará que un autobús

ha sido asociado a una determinada ruta.

Tras esta descripción general del modelo pasaremos a una descripción exhaustiva de

las partes del modelo.

Formulación del problema de asignación

En el problema existen n trayectos que deben ser realizados por los autobuses

disponibles. Asociemos el subíndice i=0 al deposito central y los subíndices i=1..n a los

diferentes n trayectos a ser cubiertos. De esta manera todos los vehículos deberán

comenzar su recorrido en el deposito central (i=0) realizarán una cadena de itinerarios

asociados con i=1...n y retornaran al depósito central (i=0)

Uno y sólo un vehículo realizará cada uno de los trayectos. La función objetivo

tratara de determinar el numero optimo de vehículos necesarios para tal propósito.

Entonces:

Sean:

o 1=ijx si un vehículo realiza el trayecto i y a continuación realiza el trayecto

j.

o 0=xij en cualquier otro caso.

o V El coste en que se incurre al utilizar un vehículo para realizar la

planificación en vez de dejarlo en el deposito.

Page 46: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

61

o ijt Tiempo necesario para realizar el trayecto i y llegar al punto donde

comienza el trayecto j.

o ijc Coste de conducir durante el trayecto i y hasta el punto donde comienza

el trayecto j. Este será proporcional a la distancia recorrida y por tanto al

tiempo empleado en el trayecto luego ijij tkc ⋅=

o ia Hora a la que está programada la salida del trayecto i

Entonces el modelo se formula como:

Min.

∑∑∑== =

⋅+=n

jj

n

j

n

iijijI xVxcZ

10

0 0

(1)

s.a.

njxn

iij ,...2,1;1

0

==∑=

(2)

nixn

jij ,...2,1;1

0

==∑=

(3)

nxn

ii =∑

=00 ; (4)

nxn

ii =∑

=00 ; (5)

0)( ≥−−− siijjij tatax (6)

njixij ,..1,;0,1 =∀=

00x variable entera

En la función objetivo podemos diferenciar el primer termino correspondiente a

los costes de conducción de un vehículo y el segundo término correspondiente a los

costes en los que se incurre con la utilización de un vehículo en lugar de que este

permanezca en el deposito.

Page 47: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

62

Las restricciones (2) y (3) aseguran que cada nodo será visitado una vez por

exactamente un vehículo y las restricciones (4) y (5) obligan a que todos los autobuses

partan del nodo i=0 ( deposito central ) y terminen su ruta en el mismo sitio, pudiendo

en el camino realizar otros trayectos, o bien permanecer en este depósito central. La

variable 00x toma el valor del numero de autobuses que permanecen en el deposito

central y no realizan ninguno de los n trayectos a cubrir.

La restricción (6) asegura que dos trayectos pueden ser unidos por un vehículo si

y solo si :

0≥−−− siijj tata (7)

Donde se ha introducido un tiempo de seguridad para evitar esperas en caso de

atascos o demás incidentes.

Vamos a eliminar estas 2n restricciones asociando un coste M a todos los pares

i,j donde no se cumple (7) . M es un numero suficientemente grande tal que la función

objetivo empeora claramente cuando se le asocia algún valor a la variable ijx .

Entonces la función objetivo quedara de la siguiente manera:

∑∑∑== =

⋅+=n

jj

n

j

n

iijijI xVxcZ

10

0 0

donde =ijC M si 0<−− iijj ata

ijij tkC ⋅= si 0≥−− iijj ata

Debido a la morfología particular de nuestro problema vamos a realizar un

cambio en la notación del problema.

Page 48: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

63

En el caso particular de nuestro problema existen claramente diferenciados unos

nodos de origen y unos nodos de destino desde donde parten o donde llegan todos los

trayectos. Cada trayecto de ida de un nodo origen a un nodo destino lleva asociado un

trayecto de vuelta, lo que incita a dividir los trayectos en trayectos de ida y vuelta.

Así, la nueva notación quedara de la siguiente manera:

Asociamos a los trayectos de ida los índices i =1,...n y a los trayectos de vuelta

el índice j=1,...n . A cada trayecto de ida le será asignado el valor ia correspondiente

con el instante temporal en el que el vehículo comenzara a realizar dicho trayecto. A

cada trayecto de vuelta se le asignará el valor jb correspondiente con el instante

temporal en el que comienza dicho trayecto de vuelta. El deposito central tiene

asociados los nodos s y e, nodos salida y entrada. Todos los vehículos deben comenzar

su recorrido en el nodo s y terminar en el nodo e. En caso de que un vehículo

permanezca en el deposito central, este se contabilizará en la variable xse

• xij para variables asociadas a arcos que van desde un trayecto de ida a un

trayecto de vuelta.

• x ji variables asociadas a arcos que van desde un trayecto de vuelta a un trayecto

e ida

• xii para variables asociadas a arcos que van desde un trayecto de ida a otro

trayecto de ida

• x jj para variables asociadas a arcos que van desde un trayecto de vuelta a otro

trayecto de vuelta.

• xsi para variables asociadas a un autobús que realizará por primera vez el

trayecto de ida i

• xsj para variables asociadas a un autobús que realizará por primera vez el

trayecto de vuelta j.

Page 49: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

64

• xie para variables asociadas a un autobús cuyo último trayecto asociado es el

trayecto i.

• x je para variables asociadas a un autobús cuyo último trayecto asociado es el

trayecto j.

• xse para contabilizar el numero de autobuses que permanecen en el depósito

central.

Con este cambio de variables el problema anterior quedaría formulado de la

siguiente manera:

Min

⎟⎟⎠

⎞⎜⎜⎝

⎛+

++++=

∑∑

∑∑∑∑∑∑∑∑

==

= == == == =

n

jj

n

ii

n

j

n

jjjjj

n

i

n

iiiii

n

j

n

ijiji

n

j

n

iijijI

XXV

XCXCXCXCZ

10

10

1 11 11 11 1 (8)

s.a.

nixxx si

n

iji

n

iii ,...2,1;1

11

==++∑∑==

(9.a)

njxxx sj

n

jjj

n

iij ,...2,1;1

11==++∑∑

==

(9.b)

nixxx ie

n

jij

n

iii ,...2,1;1

11==++∑∑

==

(10.a)

njxxx je

n

iji

n

jjj ,...2,1;1

11==++∑∑

==

(10.b)

nxxx se

n

jsj

n

isi =++∑∑

== 11 (11)

nxxx se

n

jje

n

iie =++∑∑

== 11 (12)

donde

=ijC M si 0<−−− siijj tatb ;

ijij tkC ⋅= si 0≥−−− siijj tatb ;

=jiC M si 0<−−− sjjii tbta ;

jiji tkC ⋅= si 0≥−−− sjjii tbta ;

=iiC M si 0<−−− siiii tata

iiii tkC ⋅= si 0≥−−− siiii tata

=jjC M si 0<−−− sjijj tbtb

jjjj tkC ⋅= si 0≥−−− sjijj tbtb

Page 50: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

65

Las restricciones (9.a) y (9.b) serian equivalentes a la restricción (2) de la

primera formulación. Las restricciones (10.a) y (10.b) serian equivalentes a la

restricción (3).Las restricciones (11) y (12) representan lo mismo que (4) y (5). 3.3.2.- Implementación

Al igual que con el primer modelo usaremos el paquete Matlab para la

implementacion y aplicación de este nuevo algoritmo. Para ello en primer lugar se

desarrollará una aplicación para introducir los datos en forma matricial en Matlab y a

continuación se ensayarán varios algoritmos de programación lineal para resolver el

problema de asignación inicial.

3.3.2.1 Morfología del problema en formato matricial

El Problema queda en forma matricial de la siguiente manera:

Min xft

s.a. bAx =

{ }1,0=x

Vector x de variables

Introduciremos el vector x de la siguiente forma:

[ ]xxxxxxxxxx sejeiesjsijjijjiii,,,,,,,,=

Page 51: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

66

donde cada vector xijesta ordenado de la siguiente manera:

Los cuatro primero vectores de variables tendrán un total de nn× componentes

o variables. Para nuestra implementación estas se ordenaran en forma de vector

columna de 2n según la disposición que se indica en la siguiente figura:

[ ]nnniixxxxxx ,.....,,....., 2111211=

[ ]nnnjixxxxxx ,.....,,....., 2111211=

[ ]nnnijxxxxxx ,.....,,....., 2111211=

[ ]nnnjjxxxxxx ,.....,,....., 2111211=

Los cuatro segundos vectores tendrán un total de n componentes o variables

que las ordenaremos del siguiente modo:

[ ]snsssi xxxx ,....., 21=

[ ]snsssjxxxx ,....., 21=

[ ]neeeiexxxx ,....., 21=

[ ]neeejexxxx ,....., 21=

Page 52: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

67

Matriz A y Vector b

Usando la notación usada en el apartado 3.1.2 podemos formular las

restricciones de una manera mas esquemática que nos da una idea de la morfología de

estas. Así realizamos en primer lugar las siguientes definiciones:

Elemento Definición

γ ( ) xn10,.....1,.....0,0,0=γ , con 1 en la pos γ -esimo.

γ 21),.......,,,(

xnγγγγγ =

1 n×= 1)1,....1,1(1

φ 21

)0,..1,....,0,0(xn

=φ con 1 en la pos. φ -esima.

0 ( ) n×= 10,...,0,00

0 ( ) ;0,...,0,00 21 n×=

Tabla 3.6 Definiciones de elementos

Y las restricciones quedarían como se refleja en el siguiente cuadro:

Restricción Formato Matricial

nixxx si

n

jji

n

iii ,...2,1;1

11==++∑∑

==

[γ ,γ , 0 , 0 ,γ , 0 , 0 , 0 ,0] X⋅ = 1 n...1=∀γ

njxxx sj

n

jjj

n

iij ,...2,1;1

11==++∑∑

==

[ 0 , 0 ,γ ,γ , 0 ,γ , 0 , 0 ,0] X⋅ = 1 n...1=∀γ

nixxx ie

n

jij

n

iii ,...2,1;1

11==++∑∑

==

[φ , 0 ,φ , 0 , 0 , 0 ,γ , 0 ,0] X⋅ = 1 n...1=∀γ

njxxx je

n

iji

n

jjj ,...2,1;1

11==++∑∑

==

[ 0 ,φ , 0 ,φ , 0 , 0 , 0 ,γ ,0] X⋅ = 1 n...1=∀γ

nxxx se

n

jsj

n

isi =++∑∑

== 11 [ 0 , 0 , 0 , 0 ,1,1, 0 , 0 ,1] X⋅ = n

nxxx se

n

jje

n

iie =++∑∑

== 11 [ 0 , 0 , 0 , 0 , 0 , 0 ,1,1,1] X⋅ = n

Tabla 3.7 Restricciones en formato matriccial

Page 53: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

68

Vector tf de costes

El vector tf tomara pues la siguiente forma:

[ ]0,0,0,1,1,,,, ⋅⋅= VVccccf jjijjiiit

donde jjijjiii cccc ,,, tienen 2n componentes cada uno ordenados de la siguiente

manera:

[ ]nnnii xccccc ...,..,, ,21,11211= ;

[ ]nnnji xccccc ...,..,, ,21,11211=

[ ]nnnij xccccc ...,..,, ,21,11211=

[ ]nnnjj xccccc ...,..,, ,21,11211=

Page 54: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

69

3.3.2.2 Introducción del modelo en formato matricial en Matlab

Donde las funciones auxiliares que se han empleado son:

Funciondelta(ai,bj,cij,n) - Esta función asigna un coste M a los arcos que no

pueden cumplir la restricción (7) y por tanto son arcos prohibidos, tal y como se

explico en el desarrollo del modelo.

function [delta]=funciondelta(ai,bj,cij,n); tiempseg=10; delta=zeros(n,n); for i=1:n; for j=1:n; if bj(j,1) < ai(i,1) + cij(i,j)+tiempseg; delta(i,j)=1; end end end

Sumatorioi(jau,n) – Esta función realiza el sumatorio de un elemento ijx en i

para un j dado.

function [a]=sumatorioi(jau,n) a=zeros(n^2,1); for i=1:n; for j=1:n; if j==jau; a((i-1)*n+j,1)=1; end end end

Sumatorioj(iau,n) – Esta función realiza el sumatorio de un elemento ijx en j

para un i dado.

function [a]=sumatorioj(iau,n) a=zeros(n^2,1); for i=1:n; for j=1:n; if i==iau; a((i-1)*n+j,1)=1; end end end

Page 55: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

70

El código utilizado para introducir el modelo completo es el siguiente:

%definición de datos: problema general %parámetros auxiliares para elegir variables cuyo coste

relativo es M deltaii=funciondelta(ai,ai,cii,n); deltaji=funciondelta(bj,ai,cji,n); deltaij=funciondelta(ai,bj,cij,n); deltajj=funciondelta(bj,bj,cjj,n);

%vars del problema Xii=zeros(n^2,1); Xji=zeros(n^2,1); Xij=zeros(n^2,1); Xjj=zeros(n^2,1); Xsi=zeros(n,1); Xsj=zeros(n,1); Xie=zeros(n,1); Xje=zeros(n,1); Xse=0; x=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje;Xse]; [longitud,aa]=size(x); Aeq=zeros(1, longitud); %-------------------------MATRIZ Aeq -----------------------

------ %primera restriccion for i=1:n; Xii=sumatorioi(i,n); Xji=sumatorioi(i,n); Xsi(i,1)=1; auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje;Xse]'; Aeq(i,1:longitud)=auxiliar; Xii=zeros(n^2,1);%reinizializando vars Xji=zeros(n^2,1); Xsi=zeros(n,1); end

Page 56: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

71

%segunda restriccion for i=1:n; Xjj=sumatorioi(i,n); Xij=sumatorioi(i,n); Xsj(i,1)=1; auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje;Xse]'; Aeq(i+n,1:longitud)=auxiliar; Xjj=zeros(n^2,1); Xij=zeros(n^2,1); Xsj=zeros(n,1); end %tercera restriccion for i=1:n; Xii=sumatorioj(i,n); Xij=sumatorioj(i,n); Xie(i,1)=1; auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje;Xse]'; Aeq(i+2*n,1:longitud)=auxiliar; Xii=zeros(n^2,1); Xij=zeros(n^2,1); Xie=zeros(n,1); end %cuarta restriccion for i=1:n; Xjj=sumatorioj(i,n); Xji=sumatorioj(i,n); Xje(i,1)=1; auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje;Xse]'; Aeq(i+3*n,1:longitud)=auxiliar; Xjj=zeros(n^2,1); Xji=zeros(n^2,1); Xje=zeros(n,1); end %quinta Xsi(1:n,1)=1; Xsj(1:n,1)=1; Xse=1; auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje;Xse]'; Aeq(4*n+1,1:longitud)=auxiliar; Xsi=zeros(n,1); Xsj=zeros(n,1); Xse=0; %sexta Xie(1:n,1)=1; Xje(1:n,1)=1; Xse=1; auxiliar=[Xii;Xji;Xij;Xjj;Xsi;Xsj;Xie;Xje;Xse]'; Aeq(4*n+2,1:longitud)=auxiliar; Xie=zeros(n,1); Xje=zeros(n,1); Xse=0;

Page 57: 3.- MODELOS MATEMÁTICOS 3.1 …bibing.us.es/proyectos/abreproy/4205/fichero/Volumen+1...PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos para

PROYECTO FIN DE CARRERA Desarrollo, Implementación y Análisis de modelos Matemáticos

para la asignación de vehículos a trayectos

72

%--------------vector beq--------------------- beq(1:4*n,1)=1; beq(4*n+1:4*n+2,1)=n; % funcion objetivo f=zeros(1,1); COSTE=5000; M=100000000000; for i=1:n; for j=1:n; if deltaii(i,j)==1 f((i-1)*n+j,1)=M; else f((i-1)*n+j,1)=cii(i,j); end end end for i=1:n; for j=1:n; if deltaji(i,j)==1 f(n^2+(i-1)*n+j,1)=M; else f(n^2+(i-1)*n+j,1)=cji(i,j); end end end for i=1:n; for j=1:n; if deltaij(i,j)==1 f(2*n^2+(i-1)*n+j,1)=M; else f(2*n^2+(i-1)*n+j,1)=cij(i,j); end end end for i=1:n; for j=1:n; if deltajj(i,j)==1 f(3*n^2+(i-1)*n+j,1)=M; else f(3*n^2+(i-1)*n+j,1)=cjj(i,j); end end end f(4*n^2+1:4*n^2+2*n,1)=COSTE; f(4*n^2+2*n+1:4*n^2+4*n+1,1)=0;