programación lineal multiobjetivo aplicada al mundo...

61
Facultad de Ciencias Sociales y Jurídicas UNIVERSIDAD DE JAÉN Facultad de Ciencias Sociales y Jurídicas Trabajo Fin de Grado Programación Lineal Multiobjetivo aplicada al mundo empresarial Alumno: María López Valdivia Julio, 2016

Upload: haminh

Post on 11-Feb-2019

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

Facultad d

e C

iencia

s S

ocia

les y

Jurí

dic

as

UNIVERSIDAD DE JAÉN Facultad de Ciencias Sociales y Jurídicas

Trabajo Fin de Grado

Programación Lineal Multiobjetivo

aplicada al mundo empresarial

Alumno: María López Valdivia

Julio, 2016

Page 2: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

Agradecimientos

En primer lugar a mi tutora Ana María Martínez Rodríguez por resolver las

dudas que hayan ido surgiendo en el trascurso de la realización de este trabajo.

Un agradecimiento especial a mi pareja Daniel Pegalajar Luque, sin su ayuda

este trabajo no hubiera salido adelante. Gracias por apoyarme en los momentos malos,

aguantar mis lloros, enfados y cabreos; y dedicarme esas palabras que solo tú sabes

para sacar lo mejor de mí.

A Tita, por darme paz y tranquilidad, cuando te tumbabas a mi lado y me

observabas la concentración se apoderaba de mí y todo era mucho más fácil; además de

esos momentos de descanso acariciándote y jugando contigo me animaban a continuar.

Nunca pude imaginar como un animal tan pequeñito como tú podría aportar tanto a una

persona.

A mis padres Antonio y Fermina, aunque no os tenga a mi lado sin vosotros no

hubiera podido andar este camino y ver el final de el con este trabajo, sé que en la

distancia me apoyáis y con cada llamada lo demostráis.

A mis abuelos Juan y Rafaela, solo con ver vuestra cara de satisfacción y orgullo

el día de mi graduación me disteis fuerzas para continuar toda la vida.

A mi abuela María, allá donde estés sé que estarás orgullosa de mí y ver que he

conseguido lo que muchos no creían que conseguiría jamás.

Page 3: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

2

Resumen

Hoy en día, la toma de decisiones se ha convertido en un apartado trascendental

en la gestión de una organización. Una mala decisión puede lastrar el futuro de una

empresa, así como una buena catapultarla al éxito. Para facilitar esta tarea, existe lo que

se denomina “Programación Lineal Multiobjetivo”.

El presente trabajo tiene como objeto la descripción de esta técnica de una forma

concisa, centrándose en su aplicación en el ámbito empresarial, sector en el que

destacan los resultados en cuanto a investigación. Se analizarán las principales técnicas

de resolución: e-restricciones, ponderaciones, programación por metas… y se ilustrarán

mediante ejemplos que ayudarán a entender las bondades y ventajas de estas técnicas.

Se pretende mostrar con esto el gran potencial que posee este campo y como con el

transcurrir de los años ha ido convirtiéndose en pieza fundamental en la gestión

empresarial.

Abstract

Nowadays, decision making has become an important theme in the management

of an organization. A bad decision can wreck the future of a company as well as a good

one can catapult to success. In order to facilitate this, “Multiobjective Linear

Programming” has been created.

This essay aims to study this technique in a concise way, focusing on its

application in business, a sector with great results in terms of papers. Main resolution

methods will be discussed: e-restrictions, weights analysis, goal programming… and

will be illustrated by examples that will help us to understand the benefits and

advantages of these techniques. It is intended to show that the great potential of this

field and as with the passing of the years it has become a fundamental part in business

management.

Page 4: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

3

Tabla de contenido 1. INTRODUCCIÓN ................................................................................... 5

1.1. MOTIVACIÓN DEL PROYECTO SELECCIONADO ........................ 6

1.2. OBJETIVOS ........................................................................................ 6

1.2.1. OBJETIVO GENERAL ................................................................. 6

1.2.2. OBJETIVOS ESPECIFICOS ......................................................... 7

2. ESTADO DEL ARTE.............................................................................. 8

2.1. ¿QUÉ ES LA PROGRAMACIÓN LINEAL MULTIOBJETIVO? ....... 8

2.2. ANTECEDENTES HISTÓRICOS DE LA PROGRAMACIÓN

LINEAL MULTIOBJETIVO .................................................................................... 8

2.3. PROGRAMACIÓN LINEAL VS PROGRAMACIÓN LINEAL

MULTIOBJETIVO ................................................................................................. 12

3. FUNDAMENTOS TEÓRICOS DE “PROGRAMACIÓN LINEAL

MULTIOBJETIVO” ................................................................................................... 14

3.1. PLANTEAMIENTO DEL PROBLEMA ............................................ 14

3.2. OPTIMALIDAD PARETIANA ......................................................... 14

3.3. MATRIZ DE PAGOS (PAY-OFF MATRIX)..................................... 16

3.4. TASA DE INTERCAMBIO ............................................................... 17

4. MÉTODOS DE RESOLUCIÓN ............................................................ 18

4.1. PRINCIPALES TÉCNICAS DE RESOLUCIÓN ............................... 18

4.2. TÉCNICAS GENERADORAS .......................................................... 18

4.2.1. MÉTODO DE LAS PONDERACIONES .................................... 19

4.2.2. MÉTODO DE LAS -RESTRICCIONES .................................... 20

4.2.3. SIMPLEX MULTIOBJETIVO .................................................... 20

4.3. TÉCNICAS SATISFACIENTES ....................................................... 21

4.3.1. PROGRAMACIÓN POR METAS .............................................. 21

5. EJEMPLOS ........................................................................................ 28

5.1. EJEMPLO 1: “MÉTODO DE LAS PONDERACIONES” .............. 28

Page 5: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

4

5.2. EJEMPLO 2:”MÉTODO DE LAS -RESTRICCIONES” .................. 31

5.3. EJEMPLO 3: “METAS CON PRIORIDADES O LEXICOGRAFICAS”

35

5.4. EJEMPLO 4:”METAS SIN PRIORIDADES” .................................... 40

6. CONCLUSIONES GENERALES ......................................................... 42

7. FUTURAS LÍNEAS DE INVESTIGACIÓN ......................................... 43

8. ÍNDICE DE FIGURAS .......................................................................... 45

9. ÍNDICE DE TABLAS ........................................................................... 45

10. BIBLIOGRAFÍA ................................................................................... 46

Page 6: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

5

1. INTRODUCCIÓN

Durante mis estudios en el Grado en Estadística y Empresa en la Universidad de

Jaén, he cursado varias asignaturas dedicadas a la “Investigación Operativa”, materia

que ha estudiado y planteado soluciones a problemas procedentes de ámbitos

principalmente enfocados al mundo empresarial. Entre los temas impartidos destaca la

“Programación Lineal”.

Los problemas contenidos en la “Programación Lineal” solo tienen en cuenta

una única función objetivo, además estos son planteados y mediante la aplicación de

una serie de algoritmos se resuelven, obteniendo en el proceso un único valor óptimo.

Sin embargo, como bien sabemos la realidad es bastante diferente ya que día a

día nos enfrentamos al hecho de tener que tomar decisiones entre varias opciones. Y

depende de cómo tomemos éstas las cosas sucederán de una manera u otra. Por tanto el

hecho de tomar decisiones y hacerlo correctamente es un proceso que adquiere una gran

importancia en la actualidad, tanto a nivel personal como a nivel empresarial para

cualquier organización.

En relación con mis estudios en el área empresarial, puedo decir que la toma de

decisiones dentro de una empresa está a la orden del día y es uno de los factores que

determina la futura supervivencia de ésta, puesto que en una empresa se establecen una

serie de objetivos, generales o específicos, hacia los cuales deben enfocarse y

encaminarse todo y cada uno de los esfuerzos que realice la organización para llegar a

su consecución y de esta forma mejorar o estabilizar la eficacia y eficiencia de la

entidad.

Es por esto que los problemas que plantea la “Programación Lineal” son una

herramienta que se nos queda corta en este aspecto y hay que dar un paso más adelante

para llegar a la “Programación Lineal Multiobjetivo” técnica que plasma

fehacientemente la realidad empresarial.

Con este trabajo de investigación busco introducirme en las diferentes técnicas

que componen este ámbito y exponer cada una de ellas de una forma concisa para

demostrar su amplio campo de aplicación, así como de las bondades que las

caracterizan.

Page 7: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

6

1.1. MOTIVACIÓN DEL PROYECTO SELECCIONADO

La decisión multiobjetivo es un campo presente en todos los aspectos de nuestra

vida; cada mañana nada más levantarnos ya tenemos que decidir entre si desayunar

leche o zumo y ver que ropa es la adecuada para ese día. Estas decisiones parecen

fáciles de tomar pero hay otros campos en los que se nos presentan decisiones cruciales,

donde evidentemente, es mucho más complicado dilucidar saber cuál es la adecuada o

acertada.

En el mundo empresarial estas situaciones están presentes a diario ya que hasta

la ley empresarial por excelencia “Fabricar mucho, gastando poco” lleva implícita

decisiones de este tipo. Es por ello necesario explotar estas soluciones que ofrecen un

punto de vista más cercano a la realidad que nos rodea y que proporciona resultados

útiles en el mundo empresarial al ayudarnos a lidiar con los objetivos conflictivos.

Es por esta razón mi motivación hacia este campo de investigación puesto que

considero esta área de la “Investigación Operativa” muy útil y necesaria, observando

los tiempos que corren; además de adecuarse como una pieza de puzle a mi formación

en “Estadística y Empresa” ya que esta es su área de aplicación por excelencia.

1.2. OBJETIVOS

En el siguiente apartado se detallan los objetivos que se persiguen con el

siguiente trabajo:

1.2.1. OBJETIVO GENERAL

La finalidad de este trabajo de investigación es mostrar que es la “Programación

Lineal Multiobjetivo” para ello haré un recorrido por su historia, expondré los conceptos

básicos que la conforman y los diferentes métodos de resolución que existen.

Estos serán presentados de forma teórica primero y con una relación de ejemplos

posteriormente para esclarecer el tema y mostrar la gran utilidad que tiene esta

disciplina.

Page 8: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

7

1.2.2. OBJETIVOS ESPECIFICOS

Para alcanzar el objetivo general de este trabajo, se abordarán una serie de

objetivos específicos a lo largo del texto. Podemos describirlos a continuación:

Exponer las dificultades que pueden presentarse a la hora de resolver

problemas de este tipo, así como aquellos conceptos importantes que nos

ayuden a superar estos obstáculos.

Esbozar un apartado histórico, desde el origen de las técnicas hasta las

aplicaciones y estado en el que nos encontramos en la actualidad.

Resaltar las principales diferencias entre algunos de los métodos y

técnicas más representativos de la Programación Lineal Multiobjetivo.

Realizar ejemplos que ayuden a comprender lo expuesto a lo largo del

presente trabajo.

Page 9: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

8

2. ESTADO DEL ARTE

2.1. ¿QUÉ ES LA PROGRAMACIÓN LINEAL MULTIOBJETIVO?

La Programación Lineal Multiobjetivo (PLMO) o también conocida como

Decisión Multicriterio abarca un conjunto de técnicas utilizadas en el propósito de la

toma de decisiones. Esta añade un extra de complejidad a la programación matemática

lineal clásica, puesto que introduce al problema más de un objetivo que optimizar. Su

propósito es llevar al decisor frente a la mejor solución posible planteada en un

problema con varios objetivos a mejorar en la que la mayoría de ellos están en conflicto,

es decir la mejora en algunos de ellos conlleva el empeoramiento de otros.

2.2. ANTECEDENTES HISTÓRICOS DE LA PROGRAMACIÓN LINEAL

MULTIOBJETIVO

Tomar decisiones entre varias opciones que sean contradictorias es algo natural

en los seres humanos, ya que situaciones de elecciones contradictorias es algo con lo

que las personas lidiamos a diario.

Por tanto podemos decir que el concepto de “criterios contradictorios” está

presente desde tiempos prehistóricos, ya que en esta época nuestros antecesores debían

cazar para comer además de preocuparse de su seguridad ya que podrían ser devorados

por su propia víctima; por esto sus objetivos eran cazar y salir ilesos en el proceso. Otro

campo de manifestación de este concepto son fábulas, como es “El Asno de Buridán”

(Zupko, 2003) donde un asno es colocado delante de dos montones de heno ambos del

mismo tamaño y calidad y el asno murió debido a la indecisión entre cual montón de los

dos coger.

Este es uno de los múltiples ejemplos que podemos encontrar en el origen de la

“Toma de decisiones multicriterio” un amplio campo científico que se divide en dos

ramas las cuales son: “Toma de decisiones multiatributo” y “Programación

multiobjetivo” en la cual nos vamos a centrar en este trabajo.

Page 10: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

9

En 1891 Francis Ysidro Edgeworth (1845-1926) introdujo el concepto de “Caja

de Edgeworth” (Edgeworth, 1881), esta se trata de un diagrama donde se representan las

curvas de indiferencia de dos individuos y su objetivo es identificar una asignación que

beneficie a ambos individuos por igual. Esta es la base para un concepto posterior

desarrollado en 1896 por el economista Vilfredo Pareto (1848-1923) que se conoce

como “Óptimo de Pareto” (Vilfredo, 1896), este se denomina como el punto de

equilibrio en el que no se puede mejorar el bienestar de los individuos sin reducir el de

alguno de ellos.

Ilustración 2 Francis Edgeworth1 y Vilfredo Pareto

2, los “padres” de la Programación Multiobjetivo

El concepto de “Óptimo de Pareto” es de suma importancia y de él parten las

posteriores investigaciones en las que se basa la “Programación Multiobjetivo”, estas se

sucedieron en su mayoría durante los años 70 donde se produjo una gran revolución

científica.

Ésta dio comienzo en el año 1951 con la introducción del vector eficiente o no

dominado (Koopmans, 1951)como una versión nueva del “Óptimo de Pareto” por parte

de Koopmans, en este mismo año Kuhn-Tucker formulo el problema de maximización

1 http://www.apprendre-math.info/history/photos/Edgeworth_3.jpeg 2 https://eixamestudis.files.wordpress.com/2013/08/vilfredo_pareto_eixam.jpg

Toma de decisiones

Multicriterio

Toma de decisiones

Multiatributo

Programación Multiobjetivo

Ilustración 1 Esquema de la Toma de decisiones Multicriterio

Page 11: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

10

de vectores (KuHN, 1951) lo que estableció las condiciones necesarias para la

existencia de soluciones en los problemas multiobjetivo.

Podemos decir que el año 1960 marca un punto importante en la evolución de la

“Toma de Decisiones Multicriterio” puesto que es aquí cuando esta se divide; la

“Programación Multiobjetivo” se individualiza y adopta su propia metodología.

En 1955 se sentaron las bases de la “Programación por Metas” aunque esta no

fue desarrollada para problemas lineales por Charnes y Cooper hasta el año 1961; en

este mismo año publican su trabajo titulado “Management Models and Industrial

Applications of Linear Programming” en este trabajo se presenta por primera vez un

problema de Programación Lineal, en el cual entran en conflicto una serie de objetivos

incluidos como restricciones.

En esta década de los 60 siguen apareciendo diferentes metodologías para la

resolución de los problemas con múltiples objetivos, como el método de las

ponderaciones el cual fue enunciado en 1963 por Zadech y el método de las -

restricciones por Marglin en 1967.

Yuri Ijiri publica un libro en 1965 donde se mejora el marco teórico y la

estructura operativa propuesta por Charnes y Cooper anteriormente, su principal

novedad es la introducción de las propiedades excluyentes, (Ijiri Y. , 1965)

razonamiento de gran importancia a la hora de la resolución de los problemas

multiobjetivo. Este hecho propicio la aparición de una serie de trabajos enfocados a

distintas áreas en los que la programación multiobjetivo es aplicada para resolverlos.

En 1968 Charnes y Cooper publicaron de nuevo dos trabajos en los que se

presenta el problema de la programación de medios de publicidad (Charnes A. a., 1968)

como un caso de programación por objetivos. Para finalizar esta década en 1969 Mao

publica un libro sobre temas financieros (Mao, 1969) en el que se plantean algunos

problemas relacionados con la planificación de la estructura financiera de la empresa

dentro de un marco de programación con objetivos múltiples.

La primera reunión científica dedicada al análisis multicriterio tuvo lugar en

1970 en La Haya (Paises Bajos) y en 1972 la segunda ya que este año se celebró la I

Conferencia Mundial sobre Toma de Decisiones Multicriterio, en la Universidad de

Carolina del Sur. Con este acto se da comienzo a una revolución en la ciencia

multicriterio apareciendo a partir de este punto numerosos artículos e investigaciones

sobre esta rama de aprendizaje.

Page 12: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

11

Es este mismo año y de la mano de Sang M. Lee cuando aparece el primer libro

dedicado a esta temática (Lee, 1972). En este libro Lee presenta el marco teórico de la

programación por objetivos de una manera mucho más precisa de lo que se había hecho

en trabajos anteriores, permitiendo mejorar los aspectos relativos a la formulación de los

modelos; también se presenta por primera vez tanto el método gráfico de resolución de

programas multiobjetivo como un algoritmo simplex modificado y adaptado a

estructuras multiobjetivo.

En 1976, James P. Ignizio publica otro libro dedicado también a la programación

multiobjetivo (Ignizio J. P., 1976), presentando claros avances con respecto al libro de

Lee. Desde un punto de vista teórico, la principal novedad del libro de Ignizio consiste

en demostrar rigurosamente que las técnicas clásicas de programación matemática

(lineal, cuadrática, etc.) son casos particulares de la programación con múltiples

objetivos, cuando hasta entonces en la mayor parte de la bibliografía se consideraba

exactamente lo contrario; es decir, se presentaba a la programación multiobjetivo como

una particularización de la programación lineal. Este libro proporciona los instrumentos

necesarios para poder utilizar al máximo las técnicas multiobjetivo. Este libro, junto al

publicado por Jared Cohon sobre “Programación y planificación multiobjetivo”

(Cohon, 1978), fueron considerados como dos obras magistrales de la época.

Durante la década de los ochenta, el elemento que caracteriza la importancia y la

dimensión que va adquiriendo la decisión multicriterio, es la introducción de la

informática en la reflexión sobre esta nueva corriente científica. Junto con el campo de

la Toma de Decisiones Multicriterio Discretas que alcanzaron la madurez en esta época.

Numerosos métodos interactivos para problemas de carácter discreto se

desarrollaron; uno de los más pioneros fue presentado por Stanley Zionts para la

resolución de problemas con un número discreto de alternativas (Zionts S. , 1981).

Otra de las preocupaciones de esta época, era la falta de información presente en

numerosos problemas de decisión. Numerosos investigadores estudiaron la posibilidad

de obtener ordenamientos de alternativas con información parcial o en presencia de

riesgo. Este fue el centro de atención del trabajo publicado por Craig Kirkwood y

Rakesh Sarin en 1985 en la revista Operations Research. Estos presentan un método

para clasificar alternativas multiatributo utilizando una función de evaluación ponderada

con información parcial, este método se aplica para evaluar materiales para su uso en la

contención de desperdicios nucleares (Kirkwood, 1985). A partir de estos primeros

Page 13: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

12

resultados la modelización parcial o con información incompleta se ha convertido en un

tópico de investigación muy importante.

Desde la década de los 90 hasta nuestros días han aparecido una enorme

cantidad de métodos, técnicas, artículos, etc. que sería imposible referenciarlos a todos

aquí, los eventos más destacados ocurridos durante esta década, abarcan diversos

aspectos: (Köksalan, 2013):

La potencialidad de las nuevas herramientas informáticas permitió el

desarrollo de métodos interactivos. El decisor pasó a formar parte activa

del proceso de decisión y no una mera figura a menudo sustituida por un

modelo matemático.

La interdisciplinariedad ganó terreno en todos los ámbitos de la decisión,

dando lugar a la aparición de numerosas aplicaciones prácticas reales y

de gran envergadura. La implicación de distintos países y profesionales

de las más diversas disciplinas dio origen a una perspectiva de progreso

sin precedentes hasta el momento.

En el ámbito académico, la valoración y la estimación de las

publicaciones en el ámbito de la Toma de Decisiones en general y de la

Decisión Multicriterio en particular, han constituido importantes

estímulos para dar lugar a la aparición de artículos y trabajos con elevado

índice de impacto.

2.3. PROGRAMACIÓN LINEAL VS PROGRAMACIÓN LINEAL

MULTIOBJETIVO

En sus inicios la Programación Lineal solo tenía una perspectiva, esta era desde

el punto de vista uniobjetivo; durante un largo periodo de tiempo o incluso en la

actualidad esta se sigue utilizando, aunque cada vez este planteamiento va dejando paso

a una propuesta con mucha más fuerza y mucho más realista como es la Programación

Lineal Multiobjetivo, que plasma la realidad de una forma más fiel que la visión

uniobjetivo.

En líneas generales, en todas las decisiones que debemos tomar, ya sea en

nuestro hogar, en el mundo empresarial o en cualquier aspecto, hay varios criterios que

nos condicionan a decantarnos entre una opción u otra y en la mayoría de los casos estos

criterios se contradicen y entran en conflicto entre ellos. Podemos decir que esta es la

Page 14: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

13

base principal que propició la aparición de la PLMO y lo que ha hecho que la

Programación Lineal Clásica pierda protagonismo frente a ella.

Podemos decir que la Programación Lineal Clásica ofrece una visión reducida de

la realidad, puesto que para el planteamiento de los problemas el decisor solo tiene en

cuenta una única función objetivo. Esta condición es una importante limitación ya que

no se tienen en cuenta otros criterios que pueden influir en su decisión. Por otro lado las

restricciones que se plantean en este tipo de problemas son fijas e inquebrantables otra

razón que los hace alejarse de la realidad dado que a veces es considerable no tener en

cuenta todas las restricciones de la misma manera y no cumplir alguna de ellas si esta no

tiene la suficiente importancia frente a las demás.

Es por estas razones por las que aparece la PLMO ya que era necesario un nuevo

método más realista en el que se tuvieran en cuenta varios criterios de decisión y en el

que las restricciones pasasen a ser menos estrictas. Además de que en estos problemas

se tienen en cuenta varios criterios simultáneamente y las preferencias de los decisores.

Por último otro punto que diferencia ambas metodologías es que en el caso

uniobjetivo solo existe un valor óptimo, es decir una sola solución; en contraposición en

los procesos multiobjetivo ofrecen un conjunto de soluciones eficientes llamado óptimo

de Pareto concepto que se expondrá a continuación.

Page 15: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

14

3. FUNDAMENTOS TEÓRICOS DE “PROGRAMACIÓN LINEAL

MULTIOBJETIVO”

3.1. PLANTEAMIENTO DEL PROBLEMA

Un problema de Programación Lineal Multiobjetivo es considerado como tal

cuando todas las funciones objetivo y restricciones que lo componen son de tipo lineal.

Dicho problema compuesto por n variables de decisión (𝑥 = (𝑥1, … , 𝑥𝑛)) y p

objetivos se puede plantear de la siguiente manera: (Insua, 2004)

𝑚á𝑥 𝑍 = (𝑐1𝑇𝑥…𝑐𝑝

𝑇𝑥)𝑠. 𝑎.𝐴𝑥 ≤ 𝑏𝑥 ≥ 0

Dónde:

- Z es la función objetivo que es un vector compuesto por p funciones

objetivo; ésta describe la meta o fin que el decisor quiere obtener o alcanzar.

- A es una matriz con m filas y n columnas y b un vector de una sola fila;

representan las restricciones, generadas cuando los recursos son limitados.

Dentro de los problemas de optimización multiobjetivo nos podemos encontrar

tres casos diferentes: en los que se maximicen o minimicen todas las funciones objetivo

y el caso mixto en el que algunas funciones sean de maximizar y otras de minimizar.

3.2. OPTIMALIDAD PARETIANA

En el punto anterior se hace un planteamiento general de un problema

multiobjetivo sin embargo antes de mostrar las diferentes técnicas que se pueden usar

para resolverlo hay que dar una definición previa del concepto de solución tan

importante para estos problemas.

Como ya hemos descrito anteriormente, en los problemas con un único objetivo

solo se obtiene una única solución óptima, esta es la que proporciona el mejor valor para

el objetivo, es decir es un único valor que maximiza o minimiza dicha función

dependiendo de los requisitos que esta posea.

Por tanto podemos decir que en los problemas con un único objetivo el concepto

de optimalidad juega un papel muy importante, en cambio, cuando se trata de un

problema donde existen varios objetivos, es imposible definir un óptimo sino que se

pretende establecer un conjunto de soluciones óptimas.

Page 16: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

15

Cuando consideramos un problema de PLMO, lo ideal sería coger un elemento

que sea el óptimo del problema simultáneamente en cada una de las funciones objetivo;

sin embargo, este concepto de óptimo no nos sirve, dado que una solución que

maximice un objetivo en general no maximizará los restantes, es decir al mejorar unos

empeoraría otros debido a que estos en la mayor parte de los casos están en situación de

conflicto. Es por esta razón por la que es tan difícil definir el concepto de óptimo en este

tipo de problemas.

En consecuencia llegamos a un nuevo concepto originalmente propuesto por

Francis Y. Edgeworth en 1891 y generalizado por Vilfredo Pareto en 1986, llamado

“Conjunto de Pareto” o “solución eficiente”, que se define como “Una alternativa es

eficiente o Pareto Óptima si toda alternativa que proporcione una mejora en un

atributo produce un empeoramiento en al menos otro de los atributos”

La finalidad ahora es buscar un conjunto de soluciones, las cuales forman un

número indefinido, por tanto, hay que reducir esta cantidad, para ello en primer lugar se

procede a desechar aquellas que están dominadas. Se dice que una “Alternativa

dominada o no eficiente” es aquella para la que existe otra alternativa con todos los

atributos mejores.

Así se define el “Conjunto eficiente o de Pareto” también llamada “Frontera de

Pareto”.

Ilustración 3 Representación de la famosa "Frontera de Pareto" (Sayyad, 2013)

Por último, podemos decir que en la mayoría de las situaciones se nos pide una

única solución, no un conjunto de soluciones. A la solución escogida por el decisor del

conjunto eficiente se le llama “Solución de mejor compromiso”

Page 17: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

16

3.3. MATRIZ DE PAGOS (PAY-OFF MATRIX)

Un concepto importante a tener en cuenta antes de explicar los métodos de

resolución de los problemas multiobjetivo es la “Matriz de Pagos”. El cálculo de esta es

el primer paso a seguir antes de proceder a la resolución del problema. Tiene una gran

utilidad dado que ayuda a cuantificar el grado de conflicto existente entre los objetivos

considerados en el problema.

Tabla 1 Matriz de Pagos

𝒛𝟏(𝒙) 𝒛𝟐(𝒙) … 𝒛𝒏(𝒙)

𝒙𝟏 𝑧1(𝑥1) 𝑧2(𝑥1) … 𝑧𝑛(𝑥1)

𝒙𝟐 𝑧1(𝑥2) 𝑧2(𝑥2) … 𝑧𝑛(𝑥2)

𝒙𝒎 𝑧1(𝑥𝑚) 𝑧2(𝑥𝑚) … 𝑧𝑛(𝑥𝑚)

La diagonal principal está conformada por los resultados obtenidos al optimizar

cada una de las funciones objetivo consideradas por separado, de acuerdo con el

conjunto de restricciones conocido. Este conjunto de soluciones constituye la solución

ideal y uno de los valores es el conocido como “Punto Ideal”.

La matriz también nos proporciona los valores anti-ideales, que es el peor

elemento de cada columna; este punto corresponderá al elemento mínimo de la columna

si el objetivo correspondiente se maximiza o al elemento máximo si se minimiza.

El punto anti-ideal representa una solución poco atractiva para el decisor, pero a

su vez es muy útil primero para normalizar los objetivos que estén medidos en

diferentes unidades. Segundo la diferencia entre estos y los ideales definen un intervalo

de valores para cada criterio que en algunas ocasiones es necesario conocerlo ya que

ayuda a buscar el conjunto eficiente y así obtener una buena solución.

Page 18: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

17

3.4. TASA DE INTERCAMBIO

La tasa de intercambio o también conocida como “Trade-off” es otro de los

conceptos cruciales en el ámbito multicriterio. Las tasas de intercambios entre atributos

se definen como la cantidad que se está dispuesto a empeorar un objetivo para mejorar

en una unidad otro objetivo.

𝑇𝑖𝑗 =∆𝑍1∆𝑍2

Las tasas de intercambio o “Trade-off” tienen un gran interés dentro de la

metodología multicriterio. Estas constituyen un buen índice para medir el coste de

oportunidad de un criterio en términos de los otros criterios que estemos considerando.

Estas juegan un papel dentro de las técnicas interactivas multicriterio, dichas

técnicas no se consideran en este trabajo. (Romero, 1993)

Page 19: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

18

4. MÉTODOS DE RESOLUCIÓN

4.1. PRINCIPALES TÉCNICAS DE RESOLUCIÓN

Las técnicas que se usan para la resolución de los problemas multiobjetivo se

clasifican dependiendo de cómo se trasmita la información entre el analista y el decisor.

Se pueden clasificar en los siguientes tipos:

Técnicas a Posteriori o generadoras: Estas tienen carácter mecánico,

en primer lugar actúa el analista resolviendo el problema y

posteriormente le muestra las soluciones al decisor, por tanto estas

técnicas solo cuentan con la información correspondiente a la estructura

matemática y no incluyen las preferencias del decisor.

Su fin es la obtención de un conjunto completo de soluciones eficientes,

es decir con estas técnicas obtenemos todas las posibles soluciones que el

problema planteado puede tener.

Técnicas a Priori o satisfacientes: En estas técnicas es el decisor el que

actúa primero, incorporando sus preferencias y prioridades al problema y

posteriormente el analista se encarga de su resolución teniendo en cuenta

la información proporcionada por el decisor.

Estas técnicas al contrario que las anteriores no proporcionan el total de

soluciones factibles, sino que solo proporciona un subconjunto de

soluciones que son las que concuerdan con las preferencias establecidas

por el decisor.

Técnicas interactivas: En estas técnicas el analista y el decisor trabajan

codo con codo, es decir se lleva a cabo un flujo continuo de información

entre ellos.

4.2. TÉCNICAS GENERADORAS

Como se indica en el apartado anterior estas técnicas no incorporan información

a priori en el proceso, por tanto es el analista el que plantea y resuelve el problema sin

obtener información por parte del decisor. Éste entra en juego cuando el analista ya ha

generado el conjunto eficiente y es aquí cuando el decisor incorpora sus necesidades al

problema y setoma la decisión final. Dentro de las técnicas generadoras tenemos tres

métodos de resolución, que son los siguientes:

Page 20: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

19

Método de las Ponderaciones

Método de las -restricciones

Simplex Multiobjetivo

Los dos primeros métodos reducen el problema a un problema de programación

lineal con un único objetivo, en cambio el “Simplex Multiobjetivo” considera todos los

objetivos a la vez. A continuación detallaremos cada uno de ellos:

4.2.1. MÉTODO DE LAS PONDERACIONES

El Método de las ponderaciones deriva directamente de las condiciones

necesarias de Kuhn-Tucker (KuHN, 1951) para soluciones eficientes, este fue propuesto

por Zadeh en 1963, (Zadeh, 1963) por tanto podemos decir que posiblemente sea la

primera técnica multiobjetivo considerada.

Considerando el planteamiento de un problema multiobjetivo mostrado

anteriormente el método de las ponderaciones consiste en la construcción de un

problema uniobjetivo derivado de él, que nos ayude a encontrar soluciones eficientes.

Para conseguir esto debemos ponderar la función objetivo, para ello se asigna y

multiplica un peso 𝑘 positivo a cada uno de los objetivos 𝑧𝑘 y se considera como

función objetivo global la suma ponderada de los p objetivos.

Antes de eso, debemos transformar todas las funciones objetivos a términos de

maximizar, multiplicado estas por -1.

El planteamiento del problema ponderado es el siguiente:

𝑚á𝑥 𝑍 =∑𝑘𝑍𝑘(𝑋)

𝑠. 𝑎. 𝐴𝑋 ≤ 𝑏𝑋 ≥ 0

con 𝑘 peso asociado al objetivo 𝑍𝑘.

Dependiendo de cómo se realice la asignación de los pesos, las soluciones

obtenidas se caracterizaran de un modo u otro.

I. Si todos los pesos 𝑘 asignados son mayores que cero cualquier solución

óptima que obtengamos será eficiente.

II. Si algún peso es igual a cero, la solución que obtendremos será

débilmente eficiente, es decir, no existirá otra alternativa factible en el

problema que mejore estrictamente todos los objetivos establecidos.

III. Si con algún peso igual a cero la solución al problema es única, entonces

esta es eficiente.

Page 21: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

20

4.2.2. MÉTODO DE LAS -RESTRICCIONES

Este método fue propuesto en 1967 por el economista Marglin (Marglin, 1967),

se considera uno de los métodos más antiguos dentro de la programación

multiobjetivo, pero a su vez es uno de los más pobres puesto que la obtención de las

soluciones es complicada y no se puede asegurar que estas sean eficientes.

En este procedimiento también se busca derivar a un problema uniobjetivo, para

ello una de las funciones objetivo se fija y las demás pasan a considerarse restricciones,

una vez determinada una cota que se asocia a cada una de ellas, el planteamiento del

problema es el que sigue:

𝑀á𝑥 𝑍𝑙(𝑥) 𝑠. 𝑎.

𝐴𝑥 ≤ 𝑏 𝑍𝑘 ≥ 𝜖𝑘 𝑘 ≠ 𝑙 𝑥 ≥ 0

Donde la cota que le imponemos a cada una de las funciones se tomará dentro de

su rango de variación 𝜀𝑘 ∈ [𝑍𝑘𝑚𝑖𝑛 , 𝑍𝑘

𝑚𝑎𝑥].

En esta técnica, no tenemos asegurada que la solución sea eficiente, salvo que la

solución obtenida sea única. En el caso de soluciones optimas alternativas no es posible

asegurar la eficiencia de las mimas.

La asignación de cotas, que es la clave del método, nos hace que se modifique el

conjunto de oportunidades, y esto implica un problema adicional, dado que si las

imponemos demasiado optimistas o grandes el conjunto no se modifica y nos resultaría

un problema consistente en maximizar uno de los objetivos, y, si por el contrario, las

imponemos demasiado pesimistas o pequeñas podemos plantear un problema con un

conjunto de oportunidades vacío. La terminología utilizada, en términos de grande y

pequeño es relativa a la naturaleza del problema que se esté estudiando.

4.2.3. SIMPLEX MULTIOBJETIVO

En los problemas de programación lineal clásica el método más usado para su

resolución, es el llamado “Simplex”. Este método es posible adaptarlo también a los

problemas de programación multicriterio.

A diferencia de los dos métodos explicados anteriormente, en los que el

problema multiobjetivo se transformaba a uno uniobjetivo, el “Simplex Multiobjetivo”

considera simultáneamente todos los objetivos.

Page 22: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

21

Este método se apoya principalmente en tres etapas. En la primera, se determina

una solución básica factible inicial. Esta generalmente se lleva a cabo, como en el caso

uniobjetivo, introduciendo variables de holgura y /o artificiales, permitiendo así obtener

un punto extremo inicial. En la segunda, se determina un punto extremo eficiente cuya

existencia está garantizada, si la región factible del problema es no vacía y todas las

funciones objetivo están acotadas en ella. Finalmente, la tercera etapa, consiste en

determinar todos los puntos eficientes, lo que se lleva a cabo a partir de la solución

obtenida en la etapa anterior y generando a partir de ella los restantes puntos extremos

eficientes. (Insua, 2004)

Como ya sabemos, incluso para el caso con un solo objetivo, el algoritmo del

simplex puede requerir un número exponencial de pivotes, esta misma situación es

equiparable al caso y multiobjetivo. Además, a medida que aumenta la dimensionalidad,

también aumenta el número de puntos eficientes, esto hace que el algoritmo sea

complicado de resolver tanto manualmente como computacionalmente. (Ehrgott, 2006)

4.3. TÉCNICAS SATISFACIENTES

Como podemos ver en apartados anteriores en este tipo de técnicas el decisor

proporciona al analista sus deseos y prioridades para que este los tenga en cuenta a la

hora de plantear el problema.

El método por excelencia dentro de las técnicas satisfacientes es la denominada

“Programación por Metas” o “Goal Programming”

4.3.1. PROGRAMACIÓN POR METAS

4.3.1.1. INTRODUCCIÓN A LA PROGRAMACIÓN POR METAS

En la vida real, la mayoría de los problemas poseen multitud de objetivos, no

solamente uno. Por ejemplo, si una empresa decidiese concentrar sus esfuerzos

solamente en mantener los costes, podría dañar seriamente el medioambiente o afectar a

la sociedad que atiende seriamente. Si una empresa dedicada a la salud se dedicase a

fabricar tratamientos específicamente caros o únicamente para enfermedades raras,

obtendrían un escaso beneficio. Si una editorial pone demasiado énfasis en un libro que

esté libre de “fallos”, la cantidad de tiempo que invertiría en revisar una y otra vez un

texto hasta ser publicado, retrasaría una y otra vez su fecha de lanzamiento. En

definitiva, encontrar soluciones óptimas para un modelo formulado con un simple

Page 23: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

22

objetivo puede afectar seriamente otras aspiraciones y metas que también son

importantes para una organización.

La programación por metas trata de tener en cuenta simultáneamente varios

objetivos o metas que son realmente importantes para el decisor. Mientras la PL

consiste en restricciones y una simple función objetivo, la cual debe ser minimizada o

maximizada, el modelo de Programación por Metas consiste en restricciones y un

conjunto de metas que son priorizadas con algún sentido.

En ambos métodos, si las restricciones son inconsistentes, no habrá soluciones

factibles para el modelo. Sin embargo, en la Programación por Metas, se puede esperar

aunque haya un conjunto de soluciones factibles que satisfaga las restricciones, ninguna

de ellas pueda satisfacer simultáneamente todas las metas de la organización en

conflicto. El objetivo de este método por tanto, reside en encontrar aquella solución que

satisfaga las verdaderas restricciones y se acerque lo más posible a las metas declaradas.

4.3.1.2. Origen de la Programación por Metas

La primera piedra para la construcción de la programación por metas se puso en

1955 de mano de los autores Charnes, Cooper & Ferguson, (Charnes A. a., 1955) con la

publicación de un artículo en la revista Management Science. Este trabajo pretende

desarrollar un método que permita determinar las compensaciones salariales de los

ejecutivos de la compañía General Electric.

Dada la insuficiencia de las técnicas estadísticas clásicas para abordar este tipo

de problema estos autores formularon un modelo de regresión con restricciones en el

que se minimiza la suma de las desviaciones absolutas. Dado que la desviación absoluta

es una forma no lineal que no puede optimizarse de una manera directa, estos autores

linealizaron el modelo introduciendo, por primera vez en la literatura, variables de

desviación positivas y negativas.

Page 24: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

23

Ilustración 4 Charnes3 y Cooper

4 fueron los autores más destacados de esta técnica

Charnes y Cooper desarrollan la programación por metas y la presentan en su

famoso Management and Industrial Applications of Linear Programming (Charnes A.

a., 1957). Aunque estos paradójicamente no analizaron en este trabajo un problema de

decisión con metas múltiples, sino un caso de infactibilidad en programación lineal.

En el año 1963 Ignizio se enfrentó a un complejo problema en el campo del

diseño en ingeniería consistente en la organización del sistema de antenas del programa

Saturno/Apolo (Ignizio J. , 1963). Este problema implicaba metas múltiples, funciones

no lineales, así como variables enteras. Ignizio consiguió obtener soluciones razonables

(satisfacientes) mediante la adaptación del concepto de “Programación por metas”

introducido por Charnes y Cooper.

Ijiri desarrolló técnicas matemáticas como la matriz inversa generalizada para

computar modelos de PM basados en metas excluyentes (Ijiri Y. , 1965), En 1968 se

formularon modelos de PM en el campo de la planificación de medios publicitarios

(Charnes A. a., 1968). Finalmente, para acabar esta década, debe citarse los trabajos de

(Jääskeläinen, 1969) en los que propuso modelos de PM para la planificación logística,

así como los primeros algoritmos de resolución.

En los años setenta es cuando la Programación por Metas llega a pleno auge

debido a numerosos trabajos desarrollados a partir de la idea inicial de Charnes y

Cooper. Los principales autores de estos trabajos fueron (Lee, 1972) e (Ignizio J. P.,

1976).

A partir de esta época se marca un antes y después en la Programación por

Metas y comienzan a aparecer numerosos trabajos en los que se desarrolla tanto teórica

como operativamente la Programación por Metas, así como numerosas aplicaciones en

distintas áreas. Puede decirse que la Programación por Metas se ha convertido en el

3https://feliperangel13.files.wordpress.com/2015/10/charner.png 4http://digitalcollections.library.cmu.edu/portal/images/Cooper_4.jpg

Page 25: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

24

enfoque multicriterio más aplicado y en el método más popular dentro de la

investigación operativa.

4.3.1.3. Aspectos Básicos de la Programación por Metas

La “Programación por Metas” es considerada como una de las técnicas de

optimización multiobjetivo más antiguas, esta busca reducir al mínimo la desviación de

los objetivos establecidos. El concepto básico de la “Programación por Metas” consiste

en que si un objetivo no se alcanza la solución obtenida debe ser los más cercana

posible al objetivo preestablecido.

Existen tres tipos posibles de metas (Taha, 2004):

Meta unilateral inferior: es un límite inferior por debajo del cual no se quiere

caer (pero se aceptan desvíos). Así, si estamos maximizando 𝑍𝑖(𝑥) al imponer

un nivel 𝑢𝑖, se deseará que 𝑍𝑖(𝑥) ≥ 𝑢𝑖

Meta unilateral superior: es un límite superior que no se quiere exceder (pero

está bien quedar por debajo del mismo). Así, si estamos maximizando se deseará

𝑍𝑖(𝑥) ≤ 𝑢𝑖

Meta bilateral: es un objetivo específico que no se quiere perder hacia ningún

lado, 𝑍𝑖(𝑥) = 𝑢𝑖

Existen dos tipos de restricciones funcionales:

Las restricciones ordinarias de Programación Lineal (restricciones “duras” o

estrictas), estas deben cumplirse de manera estricta.

Las ecuaciones objetivo (“blandas” o flexibles), estas pueden admitir

desviaciones de la meta establecida, pero estas desviaciones estarán asociadas a

una penalización que se reflejará en un parámetro en la Función Objetivo.

Variables de desviación: son desviaciones positivas y negativas que se

introducen en el modelo y que representan la diferencia entre el valor que se quiere

obtener y el que se ha obtenido. Estas son dependientes por definición por tanto no

pueden ser variables básicas simultáneamente. Esto quiere decir que como mucho una

de las dos variables de desviación puede asumir un valor positivo.

Las variables de desviación pueden ser de dos tipos:

𝑑𝑖+ Variable de decisión positiva, representa la parte de la decisión que no

alcanza el valor objetivo, estableciendo 𝑑𝑖+ ≥ 0.

𝑑𝑖− Variable de decisión negativa, representa la parte del valor de la toma de

decisiones que excede el valor objetivo, estableciendo 𝑑𝑖− ≥ 0.

Page 26: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

25

En la práctica, cuando el objetivo se determina, hay tres posibilidades para la

toma de decisiones:

Minimizar Meta Si se logra la meta

𝑑𝑖+ Minimizar el bajo rendimiento 𝑑𝑖

+ = 0, 𝑑𝑖− ≥ 0

𝑑𝑖− Minimizar el logro excesivo 𝑑𝑖

− = 0, 𝑑𝑖+ ≥ 0

𝑑𝑖− + 𝑑𝑖

+

Minimizar ambos tanto el bajo

rendimiento como el logro

excesivo

𝑑𝑖− = 0, 𝑑𝑖

+ = 0

4.3.1.4. Planteamiento del problema

La primera formulación que aparece de un problema de Programación por Metas

es la siguiente:

𝑀í𝑛 𝑍 =∑|𝑧𝑖(𝑥) − �̂�𝑖|

𝑝

𝑖=1𝑠. 𝑎

𝑥 ∈ 𝐹

donde �̂�𝑖 es la meta establecida por el decisor para el i-ésimo objetivo 𝑧𝑖 y F la

región factible definida por las restricciones lineales. El criterio es por tanto hacer

mínima la suma de los valores absolutos de las desviaciones o diferencias entre los

valores de los objetivos y sus metas.

Si observamos el planteamiento anterior, vemos que la función objetivo no es

lineal por lo que el método simplex no se podrá aplicar. Sin embargo, es posible

transformar cada función objetivo 𝑧𝑖(𝑥), convirtiendo el problema en formato lineal,

con las ventajas que esto reporta. La transformación se define a partir de dos nuevas

variables 𝑑𝑖+ y 𝑑𝑖

−, de desviación por defecto y por exceso respectivamente del objetivo

𝑧𝑖 de su meta �̂�𝑖

𝑑𝑖+ =

1

2(|𝑧𝑖(𝑥) − �̂�𝑖| − (𝑧𝑖(𝑥) − �̂�𝑖))

𝑑𝑖− =

1

2(|𝑧𝑖(𝑥) − �̂�𝑖| + (𝑧𝑖(𝑥) − �̂�𝑖))

Por tanto, 𝑑𝑖+ y 𝑑𝑖

− se interpretan como defecto y exceso respectivamente del

nivel de aspiración o meta del objetivo i-ésimo. Como significado físico de la variable

de desviación, tenemos que 𝑑𝑖+ es igual a 𝑧𝑖 (𝑥) − �̂�𝑖 si 𝑧𝑖(𝑥) ≥ �̂�𝑖 y cero en otro caso, y

análogamente 𝑑𝑖−. Para cada i se tiene además.

Page 27: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

26

𝑑𝑖+ − 𝑑𝑖

− = |𝑧𝑖(𝑥) − �̂�𝑖|

𝑑𝑖+ + 𝑑𝑖

− = 𝑧𝑖(𝑥) − �̂�𝑖𝑑𝑖+ ∙ 𝑑𝑖

− = 0

𝑑𝑖+, 𝑑𝑖

− ≥ 0

y a partir de aquí podemos transformar el planteamiento general en un problema

lineal equivalente.

𝑀í𝑛 𝐷 =∑(𝑑𝑖+ + 𝑑𝑖

−)

𝑃

𝑖=1𝑠. 𝑎.

𝑥 ∈ 𝐹𝑧𝑖(𝑥) + 𝑑𝑖

+ − 𝑑𝑖− = �̂�𝑖

𝑑𝑖+, 𝑑𝑖

− ≥ 0 (𝑖 = 1,… , 𝑝)

4.3.1.5. Métodos de resolución

A continuación se presentan los dos algoritmos más comunes para la resolución

de problemas de “Programación por Metas”. Ambos métodos unifican las múltiples

metas en una única función objetivo, estos son:

Programación por Metas Lexicográficas

Programación por Metas Ponderadas

4.3.1.5.1. Programación por Metas Lexicográficas

En numerosas situaciones, el decisor no es capaz de determinar con precisión la

importancia relativa de los objetivos. Entonces usamos la programación por metas

lexicográficas, el decisor debe ordenar las metas desde la más importante (meta 1) hasta

la menos importante (meta m). La programación por metas con prioridades empieza por

centrarse en cumplir la meta más importante lo antes posible, antes de seguir con la

siguiente meta más alta, y así hasta llegar a la meta más baja, es decir, las funciones

objetivo son priorizadas de tal manera que el logro de la primera meta es más

importante que el logro de la segunda meta y el logro de esta más importante que el de

la tercera y así sucesivamente hasta llegar a la última meta. De tal modo que los

objetivos de prioridad inferior solamente se logran siempre y cuando no se degrade la

solución conseguida por un objetivo de prioridad superior. (Orumie, 2013)

Cuando este es el caso, la Programación por metas con prioridades puede

resultar muy útil, esta fue introducida por Ijiri (Ijiri Y. , 1965)

La función objetivo utilizada en la Programación por Metas Lexicográficas se

define como:

Page 28: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

27

𝑙𝑒𝑥 𝑀𝑖𝑛 𝑍 =∑𝑝𝑖(𝑑𝑖+ + 𝑑𝑖

−)

𝑘

𝑖

donde 𝑝𝑖 , 𝑖 = 1,… , 𝑛 son las prioridades de cada meta y el orden establecido

para ellas. El orden, se establece asignando a cada objetivo el nivel de prioridad que el

decisor crea conveniente según sus preferencias.

4.3.1.5.2. Programación por Metas Ponderadas

En la programación por metas ponderadas, los pesos están asociados a cada uno

de los objetivos para medir la importancia relativa de las desviaciones de cada uno de

ellos.

Este método está compuesto por una única función objetivo y esta se forma con

la suma ponderada de los valores asignados a las funciones que representan las metas

del problema.

Este método comienza determinando la prioridad de cada meta, para ello se

asigna un peso ponderado que muestre la importancia de cada meta.

Este método se le atribuye a Charnes and Cooper (Charnes A. a., 1977) y la

función objetivo del modelo es la siguiente:

min𝑍 =∑𝑤𝑖+𝑑𝑖

+ + 𝑤𝑖−𝑑𝑖

𝑚

𝑖=1

Donde 𝑤𝑖+ y 𝑤𝑖

− son constantes no negativas que representan los pesos relativos

asignados a las respectivas variables de desviación. Son pesos positivos, que reflejan la

importancia que se le asigna a cada objetivo, donde el mayor peso asignado, es el

objetivo con más importancia para el decisor.

Page 29: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

28

5. EJEMPLOS

En esta sección de muestran los ejemplos donde se aplican las técnicas antes

expuestas. Estos ejemplos han sido resueltos mediante el software R, los script

respectivos al proceso de resolución de estos serán añadidos al final de este trabajo.

5.1. EJEMPLO 1: “MÉTODO DE LAS PONDERACIONES”

Una empresa realiza dos tipos de bombones, de calidad excelente y de

primera calidad. Para producirlos utiliza cacao y almendras, de los que dispone

semanalmente de 48 kilos y 4.5 kilos respectivamente. Para realizar una caja de

bombones de calidad excelente se necesita 600 gramos de cacao y 50 gramos de

almendras mientras que para una caja de primera calidad se necesita 400 gramos de

cacao y 50 gramos de almendras. Por cada caja de calidad excelente se obtiene un

beneficio de 70 € y por cada una de primera calidad de 40 €; para producirlas se tarda 7

horas y 4 horas respectivamente.

Buscar una solución de compromiso que maximice los beneficios y minimice las

horas de producción.

Se considera que minimizar las horas de producción es dos veces más

importante que la maximización de los beneficios, puesto que si no minimizamos las

horas de producción los trabajadores pueden convocar una huelga. Resolver el problema

mediante el método de las ponderaciones. (Castro Íñigo, 2011)

Definimos las variables de decisión siguientes:

𝑥1: Cajas de bombones de calidad excelente producidas semanalmente

𝑥2: Cajas de bombones de primera calidad producidas semanalmente

Modelización del problema:

𝑚á𝑥 𝑍 = (70𝑥1 + 40𝑥2 )

𝑚í𝑛 𝑍 = (7𝑥1 + 4𝑥2)

𝑠. 𝑎 {

600𝑥1 + 400𝑥2 ≤ 4800050𝑥1 + 50𝑥2 ≤ 4500

𝑥1, 𝑥2 ≥ 0

En primer lugar multiplicamos la segunda función objetivo por -1 para

convertirla en una función objetivo de maximizar. La modelización del problema

quedaría como se muestra a continuación:

𝑚á𝑥 𝑍 = (70𝑥1 + 40𝑥2 , −7𝑥1 − 4𝑥2)

𝑠. 𝑎 {

600𝑥1 + 400𝑥2 ≤ 48000 (1)50𝑥1 + 50𝑥2 ≤ 4500 (2)

𝑥1, 𝑥2 ≥ 0

Page 30: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

29

Representamos la región factible del problema

Para ello representamos en el gráfico las dos restricciones a las que está

sometido este problema y calculamos los puntos de corte de ambas funciones, tanto

entre ellas como con los ejes.

Ilustración 5 Conjunto Factible (Elaboración Propia)

Obtenemos los vértices y Representamos el Espacio de funciones

A continuación, calculamos los vértices para representar el espacio de funciones,

para ello sustituimos los puntos obtenidos en el conjunto factible en las funciones

objetivo.

Tabla 2 Puntos extremos de las regiones F y Z

Vértices (𝑥1, 𝑥2) (𝑍1, 𝑍2)

A’ (0,0) (0,0)

B’ (0,90) (3600,-360)

C’ (60,30) (5400,-540)

D’ (80,0) (5600,-560)

Page 31: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

30

Ilustración 6 Espacio de Funciones (Elaboración Propia)

Si supervisamos el conjunto Z podemos observar cuales son los puntos

eficientes. Como podemos ver el espacio de funciones es una recta por tanto la solución

más eficiente es la que se encuentra en el extremo, en este caso la que se corresponde

con el vértice D’; las demás soluciones están dominadas por esta.

Calculamos la matriz de pagos:

Maximizamos ambas funciones objetivo junto con las restricciones

𝑚á𝑥 𝑍 = 70𝑥1 + 40𝑥2

𝑠. 𝑎 {

600𝑥1 + 400𝑥2 ≤ 48000 50𝑥1 + 50𝑥2 ≤ 4500

𝑥1, 𝑥2 ≥ 0

𝑚á𝑥 𝑍 = −7𝑥1 − 4𝑥2

𝑠. 𝑎 {

600𝑥1 + 400𝑥2 ≤ 4800050𝑥1 + 50𝑥2 ≤ 4500

𝑥1, 𝑥2 ≥ 0

Al maximizar la primera función objetivo obtenemos que 𝑥1∗ = 80 y 𝑥2

∗ = 0 con

lo cual 𝑍1∗ = 5600 sustituimos estos valores también en la otra función objetivo

considerada, valor que representamos en la matriz de pagos.

Seguimos el mismo procedimiento anterior para la siguiente función objetivo,

donde, 𝑥1∗ = 0 , 𝑥2

∗ = 0 y por tanto 𝑍2∗ = 0.

Page 32: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

31

Tabla 3 Matriz de Pagos Ejemplo 1

Beneficios Horas de Producción

Beneficios 5600 -560

Horas de Producción 0 0

Resolvemos el problema ponderado:

𝑚á𝑥 𝑍 = 1(70𝑥1 + 40𝑥2 ) + 2(−7𝑥1 − 4𝑥2) == 56𝑥1 + 32𝑥2

𝑠. 𝑎 {

600𝑥1 + 400𝑥2 ≤ 48000 50𝑥1 + 50𝑥2 ≤ 4500

𝑥1, 𝑥2 ≥ 0

Resolviendo el problema ponderado aplicando el método simplex sobre el

problema transformado, obtenemos la siguiente solución 𝑥1∗ = 80 y 𝑥2

∗ = 0, que es uno

de los puntos eficientes, véase el punto D’ de la ilustración 6. Además, 𝑧1∗ = 5600

(Beneficios) y 𝑧2𝑜∗ = −𝑧2

∗ = 560 (Horas de producción).

A continuación, comprobamos que se cumplen las restricciones a las que estaba

sometido el problema. Sustituyendo los valores en estas examinamos que se consume

todo el cacao disponible y que nos sobran 500 gramos de almendras.

5.2. EJEMPLO 2:”MÉTODO DE LAS -RESTRICCIONES”

Una empresa dispone de dos tipos de máquinas A y B. Por cada hora de

trabajo en la máquina A se obtienen 20 piezas y 30 piezas por cada hora en la

máquina B. Por motivos de capacidad de la empresa no se pueden fabricar al día más de

600 piezas ni menos de 250. Además debido a las características de las dos

máquinas el coste por unidad producida por la máquina A es de 4 € y 3 € por

unidad producida por B.

Se desea maximizar el número de piezas diarias producidas y minimizar el coste

de producción. Buscar una solución compromiso que cumpla estos requisitos.

El decisor considera que el objetivo de maximizar el número de piezas es más

importante que el objetivo de los costes, pero establece que estos no deben superar los

2000€. Resolver el problema mediante el método de las -restricciones. (Castro Íñigo,

2011)

Definimos las variables de decisión siguientes:

𝑥1: Número de horas diarias de trabajo de la máquina A

𝑥2: Número de horas diarias de trabajo de la máquina B

Page 33: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

32

Modelización del problema:

𝑚á𝑥 𝑍 = 20𝑥1 + 30𝑥2 𝑚í𝑛 𝑍 = 80𝑥1 + 90𝑥2

𝑠. 𝑎 {

20𝑥1 + 30𝑥2 ≤ 60020𝑥1 + 30𝑥2 ≥ 250

𝑥1, 𝑥2 ≥ 0

En primer lugar multiplicamos la segunda función objetivo por -1 para

convertirla en una función objetivo de maximizar. La modelización del problema

quedaría como se muestra a continuación:

𝑚á𝑥 𝑍 = (20𝑥1 + 30𝑥2 , −80𝑥1 − 90𝑥2)

𝑠. 𝑎 {

20𝑥1 + 30𝑥2 ≤ 60020𝑥1 + 30𝑥2 ≥ 250

𝑥1, 𝑥2 ≥ 0

Representamos la región factible del problema

Seguimos el mismo procedimiento que para el ejemplo anterior, representamos

ambas restricciones y los puntos de corte, como podemos observar se trata de dos rectas

paralelas por lo que no se cortan entre ellas, aunque si lo hacen con los ejes.

Ilustración 7 Conjunto Factible Ejemplo 2 (Elaboración Propia)

Page 34: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

33

Representamos el Espacio de Funciones:

Sustituimos los puntos obtenidos en el gráfico anterior en las respectivas

funciones objetivo y después los representamos con lo que obtenemos el conjunto de

vértices y el espacio de funciones.

Tabla 4 Conjunto de Vértices Ejemplo 2

Vértices (𝑥1, 𝑥2) (𝑍1, 𝑍2)

A’ (0,83) (249.9,-749.7)

B’ (12.5,0) (250,-1000)

C’ (30,0) (600,-2400)

D’ (0,20) (600,-1800)

Ilustración 8 Espacio de Funciones Ejemplo 2

Inspeccionado el conjunto Z, podemos ver cuáles son los puntos eficientes. Si

consideramos los dos vértices más extremos C’ y D’, vemos que el número de piezas

toma su valor más alto en el vértice D’ por lo que podemos sopesar que este es un punto

eficiente del problema, en cambio en el vértice C’ el número de piezas es igual que en el

D’ y que el valor para el coste es el más elevado, es por esto que la solución contenida

en el vértice D’ es preferible a la contenida en el vértice C’.

Page 35: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

34

Podemos establecer la solución comprendida en el vértice D’ como solución

compromiso del problema.

Calculamos la matriz de pagos:

Maximizamos ambas funciones objetivo junto con las restricciones

𝑚á𝑥 𝑍 = 20𝑥1 + 30𝑥2

𝑠. 𝑎 {

20𝑥1 + 30𝑥2 ≤ 600 20𝑥1 + 30𝑥2 ≥ 250

𝑥1, 𝑥2 ≥ 0

𝑚á𝑥 𝑍 = −80𝑥1 − 90𝑥2

𝑠. 𝑎 {

20𝑥1 + 30𝑥2 ≤ 60020𝑥1 + 30𝑥2 ≥ 250

𝑥1, 𝑥2 ≥ 0

Los valores obtenidos al maximizar ambas funciones objetivo con sus

respectivas soluciones han sido, 𝑥1∗ = 30 , 𝑥2

∗ = 0 y 𝑍1∗ = 600 para la primera y

𝑥1∗ = 0 , 𝑥2

∗ = 8.333 y 𝑍1∗ = −749.7para la segunda. Con estos valores calculamos la

matriz de pagos.

Tabla 5 Matriz de Pagos Ejemplo 2

Nº Piezas Costes

Nº Piezas 600 -2400

Costes 249.99 -749,7

El punto (600,-749.7) es el punto ideal o solución óptima, ya que son los puntos

donde se maximizan el número de piezas y se minimizan los costes. El punto (249.99,-

2400) es el punto antideal ya que en este ocurre justo al contrario de la situación

anterior.

Resolvemos el problema con la -restricción:

𝑚á𝑥 𝑍 = 20𝑥1 + 30𝑥2

𝑠. 𝑎 {

20𝑥1 + 30𝑥2 ≤ 60020𝑥1 + 30𝑥2 ≥ 250−80𝑥1 − 90𝑥2 ≤ 2000

𝑥1, 𝑥2 ≥ 0

Resolviendo el problema por el método de las -restricciones aplicando el

método simplex sobre el problema transformado, obtenemos la siguiente solución

𝑥1∗ = 0 y 𝑥2

∗ = 20, que es uno de los puntos eficientes, véase el punto D’ de la

ilustración 6. Además, 𝑧1∗ = 600 piezas que se producen al día, vemos que esta se

encuentra dentro de los parámetros impuestos y 𝑧2𝑜∗ = −𝑧2

∗ = 1800 €, el coste no

supera el límite de 2000 € euros establecidos.

Page 36: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

35

5.3. EJEMPLO 3: “METAS CON PRIORIDADES O LEXICOGRAFICAS”

Una fábrica de quesos produce tres tipos de quesos: queso curado, queso

semicurado y queso fresco. Para ello se utilizan dos tipos de leche, leche de oveja y

leche de cabra. La fábrica está dotada de dos tipos de máquinas. La máquina 1,

utiliza en cada hora 70 litros de leche de oveja y 200 litros de leche de cabra para

producir 9 kilogramos de queso curado, 2 kilogramos de queso semicurado y 5

kilogramos de queso fresco. Con la máquina 2, se obtienen cada hora 10, 5 y 4

kilogramos de cada queso respectivamente con un gasto de 100 litros de leche de oveja

y 80 litros de leche de cabra.

Teniendo en cuenta los estudios de demanda de los tres productos la

compañía estima que debe producir al día al menos 900 y 300 kilogramos de queso

curado y semicurado, respectivamente, y no más de 800 kilogramos de queso

fresco. Los beneficios por kilogramo producido de cada tipo de queso son de 4, 6, y 7

euros respectivamente.

La gerencia de la empresa se ha planteado las siguientes metas y objetivos con el

siguiente orden de prioridades:

Prioridad 1. La cantidad de leche utilizada para la producción de los

quesos no supere 14000 litros diarios para la leche de oveja y 20000

litros diarios para la leche de cabra.

Prioridad 2. La cantidad de leche de cabra no sea superior a la de oveja.

Prioridad 3. Maximizar beneficios.

Modelizar y resolver el problema para calcular el número de horas al día que

deben operar las máquinas. (Castro Íñigo, 2011)

Definimos las variables de decisión del problema:

𝑥1: Horas al día que debe operar la máquina 1

𝑥2: Horas al día que debe operar la máquina 2

Modelización del problema:

𝑚í𝑛 𝑍 = (𝑑1− + 𝑑2

−, 𝑑3+, −(4(9𝑥1 + 10𝑥2) + 6(2𝑥1 + 5𝑥2) + 7(5𝑥1 + 4𝑥2)))

𝑠. 𝑎.

{

9𝑥1 + 10𝑥2 ≥ 900 (1)

2𝑥1 + 5𝑥2 ≥ 300 (2)5𝑥1 + 4𝑥2 ≤ 800 (3)

70𝑥1 + 100𝑥2 + 𝑑1+ − 𝑑1

− = 14000 (4)

200𝑥1 + 80𝑥2 + 𝑑2+ − 𝑑2

− = 20000 (5)

70𝑥1 + 100𝑥2 − 200𝑥1 − 80𝑥2 + 𝑑3+ − 𝑑3

− = 0 (6)

𝑥1, 𝑥2, 𝑑1+, 𝑑1

−, 𝑑2+, 𝑑2

−, 𝑑3+, 𝑑3

− ≥ 0

Page 37: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

36

Representamos el conjunto de soluciones factibles:

Ilustración 9 Conjunto Factible Ejemplo 3 (Elaboración Propia)

Prioridad 1:

𝑃1 ≡ 𝑚í𝑛(𝑑1− + 𝑑2

−)

𝑠. 𝑎.

{

9𝑥1 + 10𝑥2 ≥ 900 (1)2𝑥1 + 5𝑥2 ≥ 300 (2) 5𝑥1 + 4𝑥2 ≤ 800 (3)

70𝑥1 + 100𝑥2 + 𝑑1+ − 𝑑1

− = 14000 (4)

200𝑥1 + 80𝑥2 + 𝑑2+ − 𝑑2

− = 20000 (5)

𝑥1, 𝑥2, 𝑑1+, 𝑑1

−, 𝑑2+, 𝑑2

−, ≥ 0

Page 38: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

37

Ilustración 10 Representación Primera Prioridad Ejemplo 3 (Elaboración Porpia)

Soluciones óptimas: �̅� ∈ 𝐴

Valor óptimo: 0

Prioridad 2:

𝑃2 ≡ 𝑚í𝑛(𝑑3+)

𝑠. 𝑎.

{

9𝑥1 + 10𝑥2 ≥ 900 (1)2𝑥1 + 5𝑥2 ≥ 300 (2) 5𝑥1 + 4𝑥2 ≤ 800 (3)

70𝑥1 + 100𝑥2 + 𝑑1+ − 𝑑1

− = 14000 (4)

200𝑥1 + 80𝑥2 + 𝑑2+ − 𝑑2

− = 20000 (5)

−130𝑥1 + 20𝑥2 + 𝑑3+ − 𝑑3

− = 0 (6)

𝑥1, 𝑥2, 𝑑1+, 𝑑1

−, 𝑑2+, 𝑑2

−, 𝑑3+, 𝑑3

− ≥ 0

Page 39: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

38

Ilustración 11Representación Segunda Prioridad Ejemplo 3 (Elaboración Propia)

Soluciones óptimas: �̅� ∈ 𝐵

Valor óptimo: 0

Prioridad 3:

𝑃3 ≡ 𝑚í𝑛(−83𝑥1 − 98𝑥2)

𝑠. 𝑎.

{

9𝑥1 + 10𝑥2 ≥ 900 (1)

2𝑥1 + 5𝑥2 ≥ 300 (2) 5𝑥1 + 4𝑥2 ≤ 800 (3)

70𝑥1 + 100𝑥2 + 𝑑1+ − 𝑑1

− = 14000 (4)

200𝑥1 + 80𝑥2 + 𝑑2+ − 𝑑2

− = 20000 (5)

−130𝑥1 + 20𝑥2 + 𝑑3+ − 𝑑3

− = 0 (6)

𝑥1, 𝑥2, 𝑑1+, 𝑑1

−, 𝑑2+, 𝑑2

−, 𝑑3+, 𝑑3

− ≥ 0

Page 40: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

39

Ilustración 12 Solución Gráfica Ejemplo 3 (Elaboración Propia)

La solución óptima consiste en operar 19.44 horas al día con la máquina 1 y

126.39 horas al día con la máquina 2. Se utilizan 14000 litros de leche de oveja y de

cabra, de ambos la misma cantidad. Y el beneficio obtenido es de 14000€.

Page 41: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

40

5.4. EJEMPLO 4:”METAS SIN PRIORIDADES”

En una industria panadera se quiere introducir la elaboración de dos nuevos tipos

de pan: integral y de centeno, ya que se tiene asegurada la venta de su

producción.

Estos panes se elaboran principalmente a base de tres ingredientes: salvado

integral, harina de trigo y harina de centeno. Para elaborar 1 kg de pan integral se

necesitan 350 g de salvado integral y 150 g de harina de trigo y para la elaboración de 1

kg de pan de centeno se necesitan 250 g de harina de trigo y 250 g de harina de

centeno. La disponibilidad diaria de salvado integral es de 210 kg, 115 kg de

harina de trigo y 100 kg de harina de centeno. El beneficio que deja cada kg de pan

integral es de 0.40 € y 0.60 € cada kg de pan de centeno.

La industria panadera pretende conseguir las siguientes metas, aunque considera

que la meta del beneficio es dos veces más importante que las otras dos metas

establecidas.

Meta 1: Se desea obtener un beneficio de al menos 240 € diarios.

Meta 2: Se desea que la cantidad elaborada diariamente de pan integral

sea al menos el doble que la de centeno.

Meta 3: Se desea que la cantidad elaborada diariamente de pan de

centeno no sea inferior a 300 kg.

El dueño de la industria panadera opina que el logro para el objetivo de la meta

de beneficio es 2 veces más importante que las otras dos metas. (Castro Íñigo, 2011)

Definimos las variables de decisión del problema:

𝑥1: Kg de pan integral elaborado diariamente

𝑥2: Kg de pan de centeno elaborado diariamente

𝑚í𝑛 𝑍 = 2𝑑1+ + 𝑑2

+ + 𝑑3+

{

0,35𝑥1 ≤ 2100,25𝑥2 ≤ 100

0,15𝑥1 + 0,25𝑥2 ≤ 115

0,4𝑥1 + 0,6𝑥2 + 𝑑1+ − 𝑑1

− = 240

𝑥1 − 2𝑥2 + 𝑑2+ − 𝑑2

− = 0

𝑥2 + 𝑑3+ − 𝑑3

− = 300

𝑥1, 𝑥2, 𝑑1+, 𝑑1

−, 𝑑2+, 𝑑2

−, 𝑑3+, 𝑑3

− ≥ 0

La solución óptima consiste en elaborar diariamente 418,1818 kg de pan integral

y 209,0909 kg de pan de centeno. El beneficio diario es de 292.73€ (𝑑1+ = 0, 𝑑1

− =

52.73), por lo tanto podemos decir que la meta primera meta no se cumple, hay un

Page 42: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

41

exceso, aunque en este caso es bueno puesto que lo que queremos es que los beneficios

sean los máximos.

La producción de pan integral es exactamente el doble que la producción de pan

de centeno (𝑑2+ = 0, 𝑑2

− = 0), como vemos la segunda meta también se cumple.

Por último, la cantidad elaborada diariamente de pan de centeno es menor de

300 kg (𝑑3+ = 90.91, 𝑑3

− = 0), por tanto, la última meta establecida no se cumple.

Page 43: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

42

6. CONCLUSIONES GENERALES

En este trabajo de investigación se ha realizado un recorrido dentro del campo de

la “Programación Multiobjetivo”, se han visto los conceptos básicos de esta, así como

los principales métodos de resolución que la componen con su respectivo ejemplo

aclaratorio. Por tanto podemos extraer las siguientes conclusiones:

La “Programación Multiobjetivo”, es una rama de la Investigación Operativa

que se ajusta perfectamente a la realidad, puesto que tiene en cuenta varios objetivos

enfrentados, situación más que común en la realidad de cualquier persona o empresa.

Los resultados de los ejemplos expuestos han servido para mostrar la utilidad de

esta disciplina. Que es aplicable en el mundo empresarial, además de tener otros

muchos campos más de aplicación.

Aparte de estos métodos de resolución, a día de hoy existen muchas más

opciones, que se exponen en la siguiente sección, que introducen mejoras y hacen que la

“Programación Lineal Multiobjetivo” sea más eficaz y se adapte aún más a la realidad.

El software elegido para la resolución de los problemas y la generación de los

gráficos, ha sido R debido a sus características y potencialidad. Todos los scripts

utilizados han sido incluidos en los anexos al final de este proyecto.

Por último podemos concluir, que los objetivos tanto generales como específicos

establecidos al inicio de este proyecto, se han cumplido.

Page 44: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

43

7. FUTURAS LÍNEAS DE INVESTIGACIÓN

Durante el desarrollo de este trabajo de investigación han surgido nuevos

interrogantes y líneas de investigación paralelas al tema en cuestión, sobre los que se

recomienda trabajar con el fin de complementar lo expuesto en este trabajo.

Una de las líneas paralelas que nos encontramos es los “Métodos Interactivos

Multiobjetivo”, una técnica más que añadir a las “Tecnicas a priorí o generadoras” o a

las “Técnicas a posteriorí” presentadas en este estudio.

Como ya se ha mencionado anteriormente, en el “Proceso Interactivo”, el

analista y el decisor trabajan codo a codo. En este tipo de procesos no se tienen las

preferencias absolutas del decisor sino las preferencias relativas a la solución

presentada, cuando se tienen estas se reformula el problema incluyéndolas y obteniendo

así una nueva solución. Este proceso iterativo e interactivo continúa moviéndose a

través de todas las soluciones eficientes siguiendo la dirección establecida por el

decisor, hasta que se alcanza la solución que este considera buena.

Los métodos más destacados dentro de este campo son, el “Método STEM”,

(Benayoun R. a., 1971), este es considerado como el método interactivo más antiguo y

el más usado de todos. Y el “Método de Zionts & Wallenius”, (Zionts S. a., 1976) este

puede ser considerado como uno de los métodos más importantes dentro de este campo,

aunque, debido a su gran complejidad no goza de una gran aceptación práctica.

Otro punto a tratar seria la “Programación Lineal Multiobjetivo Discreta”, en

todos los ejemplos tratados en este trabajo, subyace un conjunto de soluciones factibles

formado por infinitos puntos, este tipo de problemas suelen denominarse problemas

continuos.

En contraposición a estos, nos encontramos con los problemas contenidos dentro

de la “Programación Lineal Multionjetivo Discreta”, en los que el número de

alternativas es finito y normalmente este no es muy grande. Los métodos expuestos

antes son aplicables a este tipo de problemas, aunque, existen métodos desarrollados

explícitamente para este enfoque.

Uno de los métodos más conocidos y aplicados dentro de este paradigma, es el

método ELECTRE, (Benayoun R. a., 1966), este consiste en la partición del conjunto

eficiente para reducir su tamaño. Se divide en un subconjunto de alternativas favorables

y en otro con las menos favorables.

Page 45: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

44

A finales de la década de los 70, se introdujo otro método el cual tuvo un gran

impacto tanto de forma teórica como de aplicación. Este es conocido por AHP (Analitic

Hierarchy Process), (Saaty, 1977).

Como se puede observar, estas líneas de actuación son complementarias a las ya

expuestas en este trabajo y se pueden considerar como líneas de investigación futuras

para completar este estudio.

Page 46: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

45

8. ÍNDICE DE FIGURAS

o Ilustración 1 Esquema de la Toma de decisiones Multicriterio .............. 9

o Ilustración 2 Francis Edgeworth y Vilfredo Pareto, los “padres” de la

Programación Multiobjetivo ................................................................... 9

o Ilustración 3 Representación de la famosa "Frontera de Pareto" (Sayyad,

2013) ................................................................................................... 15

o Ilustración 4 Charnes y Cooper fueron los autores más destacados de

esta técnica........................................................................................... 23

o Ilustración 5 Conjunto Factible (Elaboración Propia) .......................... 29

o Ilustración 6 Espacio de Funciones (Elaboración Propia) .................... 30

o Ilustración 7 Conjunto Factible Ejemplo 2 (Elaboración Propia) ......... 32

o Ilustración 8 Espacio de Funciones Ejemplo 2 .................................... 33

o Ilustración 9 Conjunto Factible Ejemplo 3 (Elaboración Propia) ......... 36

o Ilustración 10 Representación Primera Prioridad Ejemplo 3

(Elaboración Porpia) ............................................................................ 37

o Ilustración 11Representación Segunda Prioridad Ejemplo 3

(Elaboración Propia) ............................................................................ 38

o Ilustración 12 Solución Gráfica Ejemplo 3 (Elaboración Propia) ........ 39

9. ÍNDICE DE TABLAS

Tabla 1 Matriz de Pagos................................................................................. 16

Tabla 2 Puntos extremos de las regiones F y Z ................................................ 29

Tabla 3 Matriz de Pagos Ejemplo 1 ................................................................. 31

Tabla 4 Conjunto de Vértices Ejemplo 2 ......................................................... 33

Tabla 5 Matriz de Pagos Ejemplo 2 ................................................................. 34

Page 47: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

46

10. BIBLIOGRAFÍA

Benayoun, R. a. (1966). ELECTRE: Une Methode Pour Guider le Choix en Presence de

Points de Vue Multiples. Sema, Direction Scientifique. Note de Travail No. 49.

Benayoun, R. a. (1971). Linear programming with multiple objective functions: Step

method (STEM). Mathematical programming, 1(1), 366-375.

Castro Íñigo, B. a. (2011). Ejercicios resueltos de investigación operativa: exámenes

propuestos en la Facultad de Ciencias Económicas y Empresariales. Servicio

Editorial de la Universidad del País Vasco/Euskal Herriko Unibertsitatearen

Argitalpen Zerbitzua.

Charnes, A. a. (1955). Optimal estimation of executive compensation by linear

programming. Management science, 1(2), 138-151.

Charnes, A. a. (1957). Management models and industrial applications of linear

programming. Management Science, 4(1), 38--91.

Charnes, A. a. (1968). A goal programming model for media planning. Management

Science, 14(8), B-423.

Charnes, A. a. (1977). Goal programming and multiple objective optimizations: Part 1.

European Journal of Operational Research, 1(1), 39-54.

Cohon, J. L. (1978). Multiobjective programming and planning.

Edgeworth, F. Y. (1881). Mathematical psychics: An essay on the application of

mathematics to the moral sciences (Vol. 10). London: Kegan Paul.

Ehrgott, M. (2006). Multicriteria optimization. Springer Science & Business Media.

Ignizio, J. (1963). Adaptive antenna array study. Boeing Company, RWA-5557.

Ignizio, J. P. (1976). Goal programming and extensions. Lexington Books.

Ijiri, Y. (1965). Management Goals and Accounting for Control. Chicago: Rand-

McNally.

Ijiri, Y. (1965). The effects of accounting alternatives on management decisions.

Graduate School of Business, Standford University.

Insua, S. R. (2004). Investigación operativa: modelos determinísticos y estocásticos.

Madrid: Centro de estudios Ramón Areces S.A.

Jääskeläinen, V. (1969). A goal programming model of aggregate production planning.

The Swedish Journal of Economics, 14-29.

Kirkwood, C. W. (1985). Ranking with partial information: A method and an

application. Operations Research, 33(1), 38-48.

Page 48: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

47

Köksalan, M. a. (2013). An early history of multiple criteria decision making. Journal

of Multi-Criteria Decision Analysis, 20(1-2), 87-94.

Koopmans, T. (1951). Analysis of Production as an Efficient Combination of Economic

Activities. Activity Analysis, Cowles Commission Monograph.

KuHN, H. a. (1951). Nonlinear programming, Proecedings of the Berkeley Symposium

of Mathematical Statistics and Probability. University of California Press.

Lee, S. M. (1972). Goal programming for decision analysis. Auerbach Philadelphia.

Mao, J. C. (1969). Quantitative analysis of financial decisions. Prentice Hall.

Marglin, J. (1967). Public investment criteria. Cambridge, Massachusetts: MIT Press.

Orumie, U. a. (2013). An efficient method of solving lexicographic linear goal

programming problem. International Journal of Scientific and Research

Publications, 3, 1-8.

Romero, C. (1993). Teoría de la decisión multicriterio: conceptos, técnicas y

aplicaciones.

Saaty, T. L. (1977). A scaling method for priorities in hierarchical structures. Journal of

mathematical psychology, 15(3), 234-281.

Sayyad, A. S. (2013). Pareto-optimal search-based software engineering (POSBSE): A

literature survey. En Realizing Artificial Intelligence Synergies in Software

Engineering (RAISE). IEEE.

Taha, H. A. (2004). Investigación de operaciones. Pearson Educación.

Vilfredo, P. (1896). Cours d’economie politique. Rouge: Lausanne: Librairie de

l'Universit'e.

Zadeh, L. (1963). Optimality and Non-scalar Valued Performance Criteria. Automatic

Control, IEEE Transactions, 8, 59-63.

Zionts, S. (1981). A multiple criteria method for choosing among discrete alternatives.

European Journal of Operational Research, 7(2), 143-147.

Zionts, S. a. (1976). An interactive programming method for solving the multiple

criteria problem. Management science, 22(6), 652-663.

Zupko, J. a. (2003). John Buridan: portrait of a fourteenth-century arts master.

Cambridge Univ Press.

Page 49: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

ANEXO: SCRIPTS UTILIZADOSPROBLEMA 1

### EJEMPLO 1 ###

### REPRESENTAMOS EL CONJUNTO FACTIBLE ###

### Calculamos los puntos de corte con los ejes y entre ambas funciones ###

### Puntos de corte de dos funciones ###

myCoeffMatrix<-matrix(c(600,400,50,50),nrow=2,ncol=2,byrow=T)

myRhsMatrix<-matrix(c(48000,4500),nrow = 2,ncol = 1,byrow = T)

myInverse<-solve(myCoeffMatrix)

myResult<-myInverse %*% myRhsMatrix

print(myResult)

### Puntos de corte con los ejes ###

x2=0

(48000-400*x2)/600

x1=0

(4500-50*x1)/50

### Representación de las funciones ###

curve((48000-600*x)/400,-10,100,ylim=c(-10,120),col="red",lwd=3,xlab="x1",ylab="x2",

main="Conjunto Factible")

curve((4500-50*x)/50,col="blue",lwd=3,add=T)

abline(h=0)

abline(v=0)

### Sombreado ###

x<-c(0.2,79.2,59.7,0.2)

y<-c(0.2,0.2,29.7,89.2)

polygon(x, y,col = "#B1F8F8", lty = 0.1, lwd = 0.1, border = NULL)

### Marcado de puntos ###

text(-5,85,"(0,90)")

points(0,90,type="p",pch=19,col="black",bg=NA,cex=1)

text(-5,5,"(0,0)")

points(0,0,type="p",pch=19,col="black",bg=NA,cex=1)

I

Page 50: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

text(73,3,"(80,0)")

points(80,0,type="p",pch=19,col="black",bg=NA,cex=1)

text(65,35,"(60,30)")

points(60,30,type="p",pch=19,col="black",bg=NA,cex=1)

text(5,120,"(1)")

text(90,5,"(2)")

text(30,30,"F",cex=2)

### REPRESENTAMOS EL ESPACIO DE FUNCIONES ###

### Representación de los vertices###

x<-c(0,5600,5400,3600)

y<-c(0,-560,-540,-360)

plot(x,y,type="b",xlim=c(-50,6000),ylim=c(-700,50),xlab = "z1",ylab = "z2",main

= "Espacio de Funciones")

lines(x,y,lwd=4,col="#0000FF")

abline(h=0)

abline(v=0)

abline(h=-560,lty=2,col="red",lwd=3)

x1<-c(0,5600,0)

y1<-c(0,-560,-560)

polygon(x=x1, y=y1, col = "#D4D4D4", lty = 1, lwd = 1, border = NULL)

text(150,30,"A'")

points(0,0,type="p",pch=19,col="black",bg=NA,cex=1.5)

text(5750,-575,"D'")

points(5600,-560,type="p",pch=19,col="black",bg=NA,cex=1.5)

text(5570,-525,"C'")

points(5400,-540,type="p",pch=19,col="black",bg=NA,cex=1.5)

text(3750,-335,"B'")

points(3600,-360,type="p",pch=19,col="black",bg=NA,cex=1.5)

text(2000,-400,"Z",cex=2)

### CALCULAMOS LA MATRIZ DE PAGOS ###

### Maximizamos la primera función con sus restricciones ###

require(lpSolve)

f.obj <- c(70,40)

f.con <- matrix (c(600,400,50,50), nrow=2, byrow=TRUE)

f.dir <- c("<=", "<=")

II

Page 51: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

f.rhs <- c(48000,4500)

Funcion1<-lp (direction = "max", objective.in=f.obj, const.mat=f.con,

const.dir=f.dir, const.rhs=f.rhs, compute.sens=1)

Funcion1$objval

Funcion1$solution

### Maximizamos la segunda función con sus restricciones ###

f.obj <- c(-7,-4)

f.con <- matrix (c(600,400,50,50), nrow=2, byrow=TRUE)

f.dir <- c("<=", "<=")

f.rhs <- c(48000,4500)

Funcion2<-lp (direction = "max", objective.in=f.obj, const.mat=f.con,

const.dir=f.dir, const.rhs=f.rhs, compute.sens=1)

Funcion2$objval

Funcion2$solution

### RESOLVEMOS EL PROBLEMA PONDERADO ###

f.obj <- c(56,32)

f.con <- matrix (c(600,400,50,50), nrow=2, byrow=TRUE)

f.dir <- c("<=", "<=")

f.rhs <- c(48000,4500)

Ejemplo1<-lp (direction = "max", objective.in=f.obj, const.mat=f.con,

const.dir=f.dir, const.rhs=f.rhs, compute.sens=1)

Ejemplo1$objval

Ejemplo1$solution

III

Page 52: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

PROBLEMA 2

### EJEMPLO 2 ###

### REPRESENTAMOS EL CONJUNTO FACTIBLE ###

### Calculamos los puntos de corte con los ejes ###

### No se cortan entre ellas, ya que son rectas paralelas.

### Puntos de corte con los ejes función 1 ###

x1=0

x2<-(600-20*x1)/30

x2

x2=0

x1<-(600-30*x2)/20

x1

### Puntos de corte con los ejes función 2 ###

x1=0

x2<-(250-20*x1)/30

x2

x2=0

x1<-(250-30*x2)/20

x1

### Representación de las funciones ###

curve((600-20*x)/30,-10,50,ylim=c(-10,30),col="red",lwd=3,xlab="x1",ylab="x2",

main="Conjunto Factible")

curve((250-20*x)/30,col="blue",lwd=3,add=T)

abline(h=0)

abline(v=0)

### Sombreado ###

x<-c(0.2,0.2,12.7,29.7)

y<-c(19.8,8.5,0,0)

polygon(x, y,col = "#B1F8F8", lty = 0.1, lwd = 0.1, border = NULL)

### Marcado de puntos ###

text(-3,19,"(0,20)")

points(0,20,type="p",pch=19,col="black",bg=NA,cex=1)

IV

Page 53: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

text(-4,7,"(0,8.33)")

points(0,8.33,type="p",pch=19,col="black",bg=NA,cex=1)

text(9,-2,"(12.5,0)")

points(12.5,0,type="p",pch=19,col="black",bg=NA,cex=1)

text(28,-2,"(30,0)")

points(30,0,type="p",pch=19,col="black",bg=NA,cex=1)

text(5,3,"(1)")

text(25,5,"(2)")

text(15,5,"F",cex=2)

### REPRESENTAMOS EL ESPACIO DE FUNCIONES ###

### Representación de los vertices###

x<-c(600,249.9,250,600,600)

y<-c(-1800,-749.7,-1000,-2400,-1800)

plot(x,y,type="b",xlim=c(0,700),ylim=c(-2400,0),xlab = "z1",ylab = "z2",main =

"Espacio de Funciones")

lines(x,y,lwd=4,col="#0000FF")

abline(h=0)

abline(v=0)

abline(h=-740,lty=2,col="red",lwd=2)

abline(v=249.9,lty=2,col="red",lwd=2)

polygon(x, y, col = "#D4D4D4", lty = 1, lwd = 1, border = NULL)

text(630,-1800,"D'")

points(600,-1800,type="p",pch=19,col="black",bg=NA,cex=1.5)

text(265,-695,"A'")

points(249.9,-749.7,type="p",pch=19,col="black",bg=NA,cex=1.5)

text(230,-1000,"B'")

points(250,-1000,type="p",pch=19,col="black",bg=NA,cex=1.5)

text(630,-2400,"C'")

points(600,-2400,type="p",pch=19,col="black",bg=NA,cex=1.5)

text(400,-1350,"Z",cex=2)

### CALCULAMOS LA MATRIZ DE PAGOS ###

### Maximizamos la primera función con sus restricciones ###

require(lpSolve)

f.obj <- c(20,30)

f.con <- matrix (c(20,30,20,30), nrow=2, byrow=TRUE)

V

Page 54: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

f.dir <- c("<=", ">=")

f.rhs <- c(600,250)

Funcion1<-lp (direction = "max", objective.in=f.obj, const.mat=f.con,

const.dir=f.dir, const.rhs=f.rhs, compute.sens=1)

Funcion1$objval

Funcion1$solution

### Maximizamos la segunda función con sus restricciones ###

f.obj <- c(-80,-90)

f.con <- matrix (c(20,30,20,30), nrow=2, byrow=TRUE)

f.dir <- c("<=", ">=")

f.rhs <- c(600,250)

Funcion2<-lp (direction = "max", objective.in=f.obj, const.mat=f.con,

const.dir=f.dir, const.rhs=f.rhs, compute.sens=1)

Funcion2$objval

Funcion2$solution

### RESOLVEMOS EL PROBLEMA PONDERADO ###

f.obj <- c(20,30)

f.con <- matrix (c(20,30,20,30,-80,-90), nrow=3, byrow=TRUE)

f.dir <- c("<=", ">=","<=")

f.rhs <- c(600,250,2000)

Ejemplo1<-lp (direction = "max", objective.in=f.obj, const.mat=f.con,

const.dir=f.dir, const.rhs=f.rhs, compute.sens=1)

Ejemplo1$objval

Ejemplo1$solution

VI

Page 55: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

PROBLEMA 3

### EJEMPLO 3 ###

### REPRESENTAMOS EL CONJUNTO FACTIBLE ###

### Calculamos los puntos de corte entre ambas funciones ###

### Puntos de corte entre las funciones 1 y 2 ###

myCoeffMatrix<-matrix(c(9,10,2,5),nrow=2,ncol=2,byrow=T)

myRhsMatrix<-matrix(c(900,300),nrow = 2,ncol = 1,byrow = T)

myInverse<-solve(myCoeffMatrix)

myResult<-myInverse %*% myRhsMatrix

print(myResult)

### Puntos de corte con los ejes función 1 ###

x1=0

x2<-(900-9*x1)/10

x2

### Puntos de corte con los ejes función 2 ###

x2=0

x1<-(300-5*x2)/2

x1

### Puntos de corte con los ejes función 3 ###

x1=0

x2<-(800-5*x1)/4

x2

x2=0

x1<-(800-4*x2)/5

x1

### Representación de las funciones ###

curve((900-9*x)/10,-15,180,ylim=c(-15,220),col="red",lwd=3,xlab="x1",ylab="x2",

main="Conjunto Factible")

curve((300-2*x)/5,col="blue",lwd=3,add=T)

curve((800-5*x)/4,col="green",lwd=3,add=T)

abline(h=0)

abline(v=0)

VII

Page 56: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

### Sombreado###

x<-c(0.5,0.5,60,150,158)

y<-c(198,91,37,0.5,0.5)

polygon(x, y,col = "#B1F8F8", lty = 0.1, lwd = 0.1, border = NULL)

### Marcado de puntos###

text(10,205,"(0,200)")

points(0,200,type="p",pch=19,col="black",bg=NA,cex=1)

text(-8,85,"(0,90)")

points(0,90,type="p",pch=19,col="black",bg=NA,cex=1)

text(50,30,"(60,36)")

points(60,36,type="p",pch=19,col="black",bg=NA,cex=1)

text(140,-5,"(150,0)")

points(150,0,type="p",pch=19,col="black",bg=NA,cex=1) text(170,5,"(160,0)")

points(160,0,type="p",pch=19,col="black",bg=NA,cex=1)

text(83,7,"(1)")

text(120,5,"(2)")

text(150,25,"(3)")

text(50,100,"X",cex=2)

### RESOLVEMOS EL PROBLEMA MEDIANTE EL MÉTODO GRÁFICO ###

### PRIORIDAD 1 ###

### REPRESENTAMOS EL CONJUNTO FACTIBLE ###

### Calculamos los puntos de corte entre las funciones ###

### Puntos de corte entre las funciones 5 y 2 ###

myCoeffMatrix<-matrix(c(200,80,2,5),nrow=2,ncol=2,byrow=T)

myRhsMatrix<-matrix(c(20000,300),nrow = 2,ncol = 1,byrow = T)

myInverse<-solve(myCoeffMatrix)

myResult<-myInverse %*% myRhsMatrix

print(myResult)

### Puntos de corte entre las funciones 5 y 3 ###

myCoeffMatrix<-matrix(c(200,80,5,4),nrow=2,ncol=2,byrow=T)

myRhsMatrix<-matrix(c(20000,800),nrow = 2,ncol = 1,byrow = T)

myInverse<-solve(myCoeffMatrix)

myResult<-myInverse %*% myRhsMatrix

VIII

Page 57: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

print(myResult)

### Puntos de corte entre las funciones 5 y 4 ###

myCoeffMatrix<-matrix(c(200,80,70,100),nrow=2,ncol=2,byrow=T)

myRhsMatrix<-matrix(c(20000,14000),nrow = 2,ncol = 1,byrow = T)

myInverse<-solve(myCoeffMatrix)

myResult<-myInverse %*% myRhsMatrix

print(myResult)

### Puntos de corte entre las funciones 4 y 3 ###

myCoeffMatrix<-matrix(c(70,100,5,4),nrow=2,ncol=2,byrow=T)

myRhsMatrix<-matrix(c(14000,800),nrow = 2,ncol = 1,byrow = T)

myInverse<-solve(myCoeffMatrix)

myResult<-myInverse %*% myRhsMatrix

print(myResult)

### Puntos de corte con los ejes función 4 ###

x1=0

x2<-((14000-7*x1)/100)

x2

### Representación de las funciones ###

curve((900-9*x)/10,-15,180,ylim=c(-15,220),col="red",lwd=3,xlab="x1",ylab="x2",

main="Conjunto Factible")

curve((300-2*x)/5,col="blue",lwd=3,add=T)

curve((800-5*x)/4,col="green",lwd=3,add=T)

curve((14000-70*x)/100,col="pink",lwd=3,add = T)

curve((20000-200*x)/80,col="orange",lwd=3,add = T)

abline(h=0)

abline(v=0)

### Sombreado ###

x<-c(0.5,0.5,60,90,61)

y<-c(139,91,37,24,96.5)

polygon(x, y,col = "#B1F8F8", lty = 0.1, lwd = 0.1, border = NULL)

### Numeración de funciones ###

text(83,7,"(1)")

text(120,5,"(2)")

text(150,25,"(3)")

text(20,135,"(4)")

IX

Page 58: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

text(30,200,"(5)")

text(45,80,"A",cex=2)

arrows(30,100,50,140,length = 0.2,code=3)

arrows(65,45,95,55,length = 0.2,code=3)

### PRIORIDAD 2 ###

### REPRESENTAMOS EL CONJUNTO FACTIBLE ###

### Calculamos los puntos de corte entre las funciones ###

### Puntos de corte entre las funciones 6 y 4 ###

myCoeffMatrix<-matrix(c(-130,20,70,100),nrow=2,ncol=2,byrow=T)

myRhsMatrix<-matrix(c(0,14000),nrow = 2,ncol = 1,byrow = T)

myInverse<-solve(myCoeffMatrix)

myResult<-myInverse %*% myRhsMatrix

print(myResult)

### Puntos de corte entre las funciones 6 y 1 ###

myCoeffMatrix<-matrix(c(-130,20,9,10),nrow=2,ncol=2,byrow=T)

myRhsMatrix<-matrix(c(0,900),nrow = 2,ncol = 1,byrow = T)

myInverse<-solve(myCoeffMatrix)

myResult<-myInverse %*% myRhsMatrix

print(myResult)

### Representación de las funciones ###

curve((900-9*x)/10,-15,180,ylim=c(-15,220),col="red",lwd=3,xlab="x1",ylab="x2",

main="Conjunto Factible")

curve((300-2*x)/5,col="blue",lwd=3,add=T)

curve((800-5*x)/4,col="green",lwd=3,add=T)

curve((14000-70*x)/100,col="pink",lwd=3,add = T)

curve((20000-200*x)/80,col="orange",lwd=3,add = T)

curve((130*x)/20,col="purple",lwd=3,add = T)

abline(h=0)

abline(v=0)

### Sombreado ###

x<-c(0.5,0.5,12,19)

y<-c(139,91,80,126)

polygon(x, y,col = "#B1F8F8", lty = 0.1, lwd = 0.1, border = NULL)

X

Page 59: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

### Numeración de funciones ###

text(83,7,"(1)")

text(120,5,"(2)")

text(150,25,"(3)")

text(15,140,"(4)")

text(25,200,"(5)")

text(-5,-5,"(6)")

text(10,115,"B",cex=2)

arrows(15,160,35,150,length = 0.2,code=3)

### Solución eficiente ###

points(19.44,126.39,type="p",pch=19,col="red",bg=NA,cex=1.5)

text(45,132,"(19.44,126.39)",col="red",cex=1)

### RESOLVEMOS EL PROBLEMA ###

library(lpSolve)

### Prioridad 1 ###

f.objective1<-c(0,0,0,1,0,1,0,0)

f.restricciones1<-matrix(c(70,100,1,-1,0,0,0,0,

200,80,0,0,1,-1,0,0,

-130,20,0,0,0,0,1,-1,

9,10,0,0,0,0,0,0,

2,5,0,0,0,0,0,0,

5,4,0,0,0,0,0,0),nrow=6,byrow=T)

f.hrsb1<-c(14000,20000,0,900,300,800)

f.dir1<-c("=","=","=",">=",">=","<=")

Lecheb1<-lp(direction="min",objective.in=f.objective1,const.mat=f.restricciones1,

const.dir=f.dir1,const.rhs=f.hrsb1,compute.sens=0)

Lecheb1$solution

### Prioridad 2 ###

f.objective2<-c(0,0,0,0,0,0,0,1)

f.restricciones2<-matrix(c(70,100,1,-1,0,0,0,0,

200,80,0,0,1,-1,0,0,

-130,20,0,0,0,0,1,-1,

9,10,0,0,0,0,0,0,

2,5,0,0,0,0,0,0,

5,4,0,0,0,0,0,0,

0,0,0,1,0,1,0,0),nrow=7,byrow=T)

XI

Page 60: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

f.hrsb2<-c(14000,20000,0,900,300,800,0)

f.dir2<-c("=","=","=",">=",">=","<=","=")

Lecheb2<-lp(direction="min",objective.in=f.objective2,const.mat=f.restricciones2,

const.dir=f.dir2,const.rhs=f.hrsb2,compute.sens=0)

Lecheb2$solution

### Prioridad 3 ###

f.objective3<-c(83,98,0,0,0,0,0,0)

f.restricciones3<-matrix(c(70,100,1,-1,0,0,0,0,

200,80,0,0,1,-1,0,0,

-130,20,0,0,0,0,1,-1,

9,10,0,0,0,0,0,0,

2,5,0,0,0,0,0,0,

5,4,0,0,0,0,0,0,

0,0,0,1,0,1,0,0,

0,0,0,0,0,0,0,1),nrow=8,byrow=T)

f.hrsb3<-c(14000,20000,0,900,300,800,0,0)

f.dir3<-c("=","=","=",">=",">=","<=","=","=")

Lecheb3<-lp(direction="max",objective.in=f.objective3,const.mat=f.restricciones3,

const.dir=f.dir3,const.rhs=f.hrsb3,compute.sens=0)

Lecheb3$solution

XII

Page 61: Programación Lineal Multiobjetivo aplicada al mundo ...tauja.ujaen.es/bitstream/10953.1/6975/1/TFG_Maria_Lopez_Valdivia.pdf · MATRIZ DE PAGOS (PAY-OFF MATRIX) ... “Toma de decisiones

PROBLEMA 4

### EJEMPLO 4 ###

### RESOLVEMOS EL PROBLEMA DE METAS PONDERADAS ###

library(lpSolve)

f.objective1<-c(0,0,2,0,1,0,1,0)

f.restricciones1<-matrix(c(0.4,0.6,1,-1,0,0,0,0,

1,-2,0,0,1,-1,0,0,

0,1,0,0,0,0,1,-1,

0.35,0,0,0,0,0,0,0,

0,0.25,0,0,0,0,0,0,

0.15,0.25,0,0,0,0,0,0),nrow=6,byrow=T)

f.hrsb1<-c(240,0,300,210,100,115)

f.dir1<-c("=","=","=","<=","<=","<=")

Pan1<-lp(direction="min",objective.in=f.objective1,const.mat=f.restricciones1,

const.dir=f.dir1,const.rhs=f.hrsb1,compute.sens=0)

Pan1$solution Pan1$objval

XIII