119
Trabajo Fin de Grado Grado en Ingeniería de Tecnologías Industriales Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica Autor: Francisco José Fernández Fernández Tutor: Pedro Luis González Rodríguez Departamento de Organización Industrial y Gestión de Empresas I Escuela Técnica Superior de Ingeniería Sevilla, 2014

Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Trabajo Fin de Grado

Grado en Ingeniería de Tecnologías Industriales

Optimización Multiobjetivo aplicada a la

formulación de un fármaco de administración

oftálmica

Autor: Francisco José Fernández Fernández

Tutor: Pedro Luis González Rodríguez

Departamento de Organización Industrial y

Gestión de Empresas I

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2014

Page 2: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 3: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Trabajo Fin de Grado

Grado en Ingeniería de Tecnologías Industriales

Optimización Multiobjetivo aplicada a la

formulación de un fármaco de administración

oftálmica

Autor:

Francisco José Fernández Fernández

Tutor:

Pedro Luis González Rodríguez

Profesor Titular de la Universidad

Departamento de Organización Industrial y Gestión de Empresas I

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2014

Page 4: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 5: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Trabajo Fin de Grado: Optimización Multiobjetivo aplicada a la formulación de un fármaco de

administración oftálmica

Autor: Francisco José Fernández Fernández

[email protected]

30258073-D

Tutor: Pedro Luis González Rodríguez

El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes

miembros:

Presidente:

Vocales:

Secretario:

Acuerdan otorgarle la calificación de:

Sevilla, 2014

El Secretario del Tribunal

Page 6: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 7: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

A mi familia y amigos

A mis maestros

Page 8: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 9: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

i

Agradecimientos

Para comenzar, quiero agradecer a D. Pedro Luis González Rodríguez haberme dado la oportunidad

de realizar este proyecto, atenderme y ayudarme siempre que lo he necesitado. A los profesores de la

rama de Organización y Producción, por enseñarnos el lado bueno e interesante de esta dura carrera,

así como a todos los profesores en general que se han preocupado de transmitir y hacer que

aprendamos cosas útiles más allá de teoría y demostraciones.

A los compañeros de la escuela, sobre todo a los que han formado parte de la clase de Organización,

ya que en los dos últimos años hemos pasado mucho tiempo juntos, ayudándonos cuando hacía falta

y distrayéndonos en los momentos que podíamos.

A mi familia, especialmente a mis padres, por apoyarme en los malos momentos y por los buenos

consejos que me han dado, así como su paciencia e insistencia en que estudiase.

A todos mis amigos, por todos los buenos momentos que hacen distraerte y despejar la mente en

aquellas situaciones en las que hay más problemas y preocupaciones.

A Laura, pos su apoyo incondicional y por compartir su tiempo conmigo.

Page 10: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 11: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

iii

Resumen

En nuestro Trabajo Fin de Grado se pretende abordar un problema de optimización multiobjetivo no

lineal con métodos vistos en varias asignaturas de la carrera, sobre todo en Herramienta para la toma

de decisiones.

El problema surge a través de la Facultad de Farmacia, resultado de unos estudios para la producción

de un nuevo fármaco, y necesitaban una alternativa en el estudio del mismo.

Para ello, vamos a estudiar el origen del problema, adaptándolo a la configuración conocida para

poder resolverlo. Al ser un problema no lineal, hemos decidido resolver los métodos empleados con

el solver LINGO. Los métodos que hemos usado en el estudio del mismo son la Programación por

Compromiso y la Programación por Metas, donde hacemos un estudio diferente entre la

Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial.

Pretendemos buscar una solución que aporte unos valores en las variables de forma que cumpla en

mayor o menor medida los métodos estudiados. Aunque no sea imprescindible, puesto que nuestra

misión es estudiar el problema con los métodos que seleccionemos, sería de gran utilidad para la

gente de farmacia aportar una solución que aporte claridad para su estudio.

Page 12: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 13: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

v

Abstract

In this final year dissertation I would like to solve a non-lineal Multiobjective Optimization Problem

with techniques that we have seen in classes during the degree.

The problem that we are going to study comes from Faculty of Pharmacy in Seville.

I have to adapt the original problem to one which we know how to solve. Due to our problem is non-

lineal, we need to use LINGO, because this solver works with non-lineal problems. We have chosen

three different techniques, the first one is Compromise Programming, and the other two are

relationed with Goal Programming.

I am going to search a solution that gives us the result of the problem with a good level of reality for

the different techniques. Although I am going to do my best to find it, this is not the principal

objective of the project, because we have to explain with lot of details the methods we have

mentioned.

Page 14: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Índice

Agradecimientos i

Resumen iii

Abstract v

Índice vi

Índice de Tablas ix

Índice de Figuras xi

Notación xiii

1 Objetivo del Proyecto 1

1.1. Introducción 2

1.2. Objeto del Proyecto 3

1.3. Estructura del Documento 5

2 Introducción del Problema 7

2.1. Introducción 8

2.1.1 Estructura de un proceso de decisión 8

2.1.2 Conceptos básicos 9

2.1.3 Formulación general de un problema 10

2.2. Datos de entrada, variables y salidas 12

2.2.1 Factores que intervienen 12

2.2.2 Respuestas del sistema 14

3 Descripción del Problema 17

3.1. Ecuaciones de partida 18

3.1.1 Antes de la extrusión 18

3.1.2 Después de la extrusión 19

3.2. Formulación del problema 22

3.3. LINGO 25

3.3.1 Características principales 25

3.3.2 Sintaxis de LINGO 26

3.3.3 Dominio de variables 26

3.3.4 Operadores Lógicos 27

3.3.5 Interpretación de la solución 28

4 Descripción de la Solución 31

4.1. Introducción 32

4.2. Optimización de las salidas de forma individual 33

4.2.1 Antes de la extrusión 33

4.2.2 Después de la extrusión 37

4.3. Programación Multiobjetivo 42

Page 15: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

vii

4.3.1 Introducción 42

4.3.2 Conceptos introducidos por Pareto 42

4.3.3 Normalización y ponderación preferencial de los criterios 44

4.3.4 Tasa de intercambio de objetivos 52

5 Método de resolución de Programación por Compromiso 53

5.1. Explicación del método general 54

5.2. Aplicación y resolución del método 57

5.2.1 Resolución del problema con la métrica p = 1 58

5.2.2 Resolución del problema con la métrica p = 2 61

5.2.3 Resolución del problema con la métrica p = ∞ 64

6 Métodos de resolución de Programación por Metas 71

6.1. Introducción 72

6.2. Niveles de aspiración y variables de decisión 73

6.3. Programación por Metas Ponderadas 76

6.4. Programación lexicográfica 81

6.4.1 Prioridad Q1 83

6.4.2 Prioridad Q2 85

6.4.3 Prioridad Q3 88

7 Conclusiones 93

Referencias 95

Bibliografía 97

Page 16: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 17: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

ix

ÍNDICE DE TABLAS

Tabla 2–1 Variables codificadas 14

Tabla 3–1. Valores del ajuste de las ecuaciones de salida 21

Tabla 3–2 Nombre de las salidas 24

Tabla 3–3. Lista de operadores lógicos de la herramienta LINGO 27

Tabla 3–4. Lista de operadores lógicos de la herramienta LINGO 28

Tabla 4–1. Solución de la herramienta Lingo a la función tamaño antes de la extrusión 33

Tabla 4–2. Solución de la herramienta Lingo a la función IP antes de la extrusión 34

Tabla 4–3. Solución de la herramienta Lingo a la función ZetaPot antes de la extrusión 35

Tabla 4–4. Solución de la herramienta Lingo a la función EE antes de la extrusión 36

Tabla 4–5. Solución de la herramienta Lingo a la función tamaño después de la extrusión 37

Tabla 4–6. Solución de la herramienta Lingo a la función IP después de la extrusión 38

Tabla 4–7. Solución de la herramienta Lingo a la función ZetaPot después de la extrusión 39

Tabla 4–8. Solución de la herramienta Lingo a la función EE después de la extrusión 40

Tabla 4–9. Resumen de los resultados de las ecuaciones 41

Tabla 4–10. Conjunto de soluciones eficientes 43

Tabla 4–11. Pesos (importancia) de las salidas del sistema (método básico). 49

Tabla 4–12. Matriz de comparación propuesta por Saaty. 50

Tabla 4–13. Pesos (importancia) del sistema (ambos métodos). 51

Tabla 5–1. Datos de los objetivos para la programación por compromiso 57

Tabla 5–2. Solución de la programación por compromiso con métrica p = 1 59

Tabla 5–3. Solución de la programación por compromiso con métrica p = 2 63

Tabla 5–4. Solución de la programación por compromiso con métrica p = ∞ 66

Tabla 5–5. Resultados de la programación por compromiso con pesos por el método básico. 68

Tabla 5–6. Resultados de la programación por compromiso con pesos método Saaty. 69

Tabla 6–1. Posibilidades en las variables de desviación 73

Tabla 6–2. Variables de desviación de nuestro problema 74

Tabla 6–3. Valores de las variables de desviación de nuestro problema 75

Tabla 6–4. Solución de la programación por metas ponderadas 78

Tabla 6–5. Resultados de la programación por metas ponderadas 80

Tabla 6–6. Solución del modelo lexicográfico secuencial para la prioridad Q1 84

Tabla 6–7. Solución del modelo lexicográfico secuencial para la prioridad Q2 87

Page 18: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Tabla 6–8. Solución del modelo lexicográfico secuencial para la prioridad Q3 89

Tabla 6–9. Solución final del modelo lexicográfico secuencial 91

Page 19: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

xi

ÍNDICE DE FIGURAS

Figura 2-1. Esquema del sistema. 12

Figura 2-2. Esquema de las variables. 14

Figura 2-3. Esquema de las respuestas. 16

Figura 4-1. Código de Lingo optimizando la función tamaño antes de la extrusión. 33

Figura 4-2. Código de Lingo optimizando la función IP antes de la extrusión. 34

Figura 4-3. Código de Lingo optimizando la función ZetaPot antes de la extrusión. 35

Figura 4-4. Código de Lingo optimizando la función EE antes de la extrusión. 36

Figura 4-5. Código de Lingo optimizando la función tamaño después de la extrusión. 37

Figura 4-6. Código de Lingo optimizando la función IP después de la extrusión. 38

Figura 4-7. Código de Lingo optimizando la función ZetaPot después de la extrusión. 39

Figura 4-8. Código de Lingo optimizando la función EE después de la extrusión. 40

Figura 4-9. Preferencias en la salida del sistema. 48

Page 20: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 21: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

xiii

Notación

A* Conjugado

c.t.p. En casi todos los puntos

c.q.d. Como queríamos demostrar

∎ Como queríamos demostrar

e.o.c. En cualquier otro caso

e número e

∞ Infinito

Ln(x) Logaritmo neperiano de x

∂x

∂y

Derivada parcial de x

Derivada parcial de y

: Tal que

< Menor que

> Mayor que

≤ Menor o igual que

≥ Mayor o igual que

\ Backslash

⇒ Si y entones

⇔ Si y sólo si

min Minimizar

Max Maximizar

s.a. Sujeto a

∈ Pertenencia de conjunto

⊆ Subconjunto

VDND Variable de desviación no deseada

Page 22: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 23: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

1

1 OBJETIVO DEL PROYECTO

L presente proyecto se redacta con carácter de Trabajo de Fin de Grado, para la obtención por

parte de quien lo suscribe del título de Graduado en Ingeniería de las Tecnologías Industriales,

perteneciente a la Escuela Técnica Superior de Ingeniería de la Universidad de Sevilla.

E

Obra siempre de modo que tu conducta pudiera

servir de principio a una legislación universal.

-Immanuel Kant -

Page 24: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Objetivo del Proyecto

2

1.1. Introducción

Este proyecto surge gracias a la colaboración y aportación del tutor del mismo, el profesor D. Pedro

Luis González Rodríguez, ofreciendo la posibilidad de estudiar técnicas de decisión multicriterio en

un enfoque multiobjetivo, a través de un problema de optimización no lineal. Dicho problema es el

resultado de un Trabajo Fin de Máster, realizado en Julio del año 2013 por la licenciada Dª Carmen

Martina Arroyo García, titulado “Formulación y caracterización de transferomas para administración

oftálmica: Diseño Experimental”.

En este trabajo Fin de Máster se describe el proceso completo desde la introducción de conceptos,

causas, factores de riesgo, epidemiología y clasificación de diversos aspectos, como los materiales,

equipos e instrumentación, cuantificación y caracterización de las técnicas empleadas para realizar

los procesos en el laboratorio. Ambos campos no son de nuestra incumbencia, debido a la intrínseca

relación con el mundo de la farmacia y la biología.

Nuestro estudio comienza con el Diseño Experimental, momento en el que aparecen las ecuaciones y

variables con las que empezaremos a trabajar. Asimismo, es conveniente reseñar que en el Trabajo

Fin de Máster, los principales puntos sobre los que se llevó a cabo el trabajo fueron:

La evaluación de la influencia de factores variables de la formulación especificados en una

matriz experimental, sobre cada una de las respuestas, determinando las variables del

proceso que presenten significación estadística sobre la respuesta analizada.

Los porcentajes de contribución de cada uno de los factores y las interacciones entre ellos.

La optimización de todas las respuestas con el fin de conocer los niveles de los factores que

alcanzarían valores máximos o mínimos deseados.

En definitiva, el trabajo que estamos describiendo se centró, dentro del campo matemático y de la

optimización, en el análisis individual de las respuestas. Es especialmente destacable que en el

estudio sólo se incluyeron los factores aislados, no así las diversas interacciones entre ellos. En

contraposición, en nuestro Trabajo Fin de Grado pasaremos por alto el estudio de las respuestas de

forma individual, así como la interpretación física y farmacológica de los resultados. En el presente

trabajo fin de grado abordaremos el problema desde un punto de vista multiobjetivo, aplicando

técnicas de optimización matemática estudiadas durante la carrera, concretamente en la asignatura de

Herramientas para la toma de decisiones.

Page 25: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

3 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

1.2. Objeto del Proyecto

El presente proyecto tiene como objetivo general definir distintos métodos para el estudio completo

de un problema de optimización multicriterio previamente definido, así como la interpretación de las

soluciones que obtengamos.

Comenzaremos estudiando el problema desde una perspectiva general, para pasar a estudiar cada una

de las funciones que actúan como salidas del sistema. Acto seguido, y con un peso mayor en la

importancia global del trabajo, nos centraremos en el estudio de la interrelación de las variables y la

forma con la que afecta al sistema global, para poder obtener de una forma clara y concisa qué

combinación o combinaciones de variables son las que resultan óptimas desde un punto de vista

multiobjetivo y diferente al análisis individual de las respuestas estudiado en el Trabajo Fin de

Máster de partida.

Como nuestro trabajo surge a través de los experimentos realizados en la Facultad de Farmacia

(Universidad de Sevilla), debemos sacar unas conclusiones realistas acerca del valor que deben

tomar las variables que intervienen en los experimentos para ver qué combinación de las mismas es

acertada para los resultados buscados. Por esta razón, nos han explicado la importancia relativa que

tienen las funciones objetivos que actúan como salidas del sistema, puesto que satisfacer todos los

objetivos, estando enfrentado entre ellos, se antoja imposible. Por esta razón, pretendemos sacar unas

conclusiones acertadas en cuánto al valor que tomarán algunas de las variables, indicando el valor

del factor de entrada para los experimentos, y no el valor que nos dé como resultado el valor de la

variable en el proceso de optimización.

Dicho de otra forma, y a modo de resumen, en los laboratorios de farmacia donde se realizaron los

experimentos, usaron unos factores con diversas posibilidades de elección para cada uno, y quieren

unos valores determinados al terminar el procedimiento para las salidas de manera conjunta, teniendo

en cuenta los objetivos, en muchos casos contrapuestos. Para estudiar el problema, y que no tuvieran

que hacer todas las combinaciones posibles en los experimentos, se codifican los factores que actúan

como variables de entrada para nosotros, de forma que podamos emplearlas en los métodos de

programación que vamos a usar. Cada una de las variables tendrá unas condiciones particulares en

función de los valores que puedan tomar en la vida real, unas serán continuas y otras discretas, pero

sin ningún patrón previamente establecido. Codificando las respuestas de salida para transformarlas

en funciones objetivo, y estudiando el problema con distintos métodos, pretendemos encontrar

alguna solución aceptable para todos los métodos que vamos a ver y que, además, cuando saquemos

los valores de las variables, y volvamos a transformarlos en valores reales de los factores, puedan

aportar información en los experimentos que antes hemos citado.

Asimismo, este documento ha de servir como explicación teórica y práctica de los distintos métodos

y técnicas empleadas sobre la programación multiobjetivo, en concreto, al tratarse de un problema no

lineal, no podremos abordar todos ellos de la forma más simple pues no es válido para nuestro caso.

Para la realización de los apartados donde necesitamos una herramienta para la formulación y

resolución de problemas no lineales hemos recurrido a la aplicación LINGO, debido a la simplicidad

del lenguaje y al gran parecido con el lenguaje de modelado matemático tradicional que usa.

Page 26: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Objetivo del Proyecto

4

El motivo principal que me ha llevado a la realización del presente trabajo es el tema de la

optimización. Hemos visto muchos aspectos relacionados con la optimización a lo largo de la

carrera. Normalmente, eran problemas y planteamientos lineales, y aunque este problema en

concreto no es así, consideraba un reto el enfrentarme a un tema tan interesante desde un punto de

vista no tan conocido.

Además, la optimización es una de las principales funciones de un ingeniero, así como la eficiencia.

Si el problema que se plantea se resuelve utilizando el menor número de recursos posibles, eso se

traduce en dinero, y es ahí donde radica la mayor diferencia entre unos y otros a la hora de

diferenciarse en la vida real.

Por último, destacar el interés en la generalidad de los métodos empleados. Esto es debido a la mayor

facilidad en el momento de realizar posibles cambios futuros en alguna de las formas de la sintaxis o

en cualquier parte del problema. En cambio, si lo hubiésemos hecho totalmente aplicado y centrado

en nuestro problema en cuestión, podríamos haber satisfecho el fin específico de resolver nuestras

funciones objetivos, pero no se podría decir lo mismo del objetivo general de generar una solución

válida para problemas de la misma índole.

Para abordar el objetivo general anteriormente mencionado, vamos a abordar diferentes objetivos

específicos (OE):

OE1.- Interpretar el problema de estudio, describiendo los aspectos y datos más importantes

de partida, adaptándolo a una formulación general de un problema multiobjetivo (Capítulo

2).

OE2.- Describir el problema de forma general y seleccionar la herramienta de resolución más

adecuada (Capítulo 3).

OE3.- Optimizar las respuestas de forma individual (Capítulo 4).

OE4.- Optimizar las respuestas desde el punto de vista multiobjetivo. Aspectos importantes

incluidos: ponderaciones y tasas de intercambio (Capítulo 4).

OE5.- Aplicar Método de Programación por Compromiso (Capítulo 5).

OE6.- Aplicar Método de Programación por Metas (Capítulo 6).

Page 27: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

5 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

1.3. Estructura del Documento

El proyecto se estructura de la siguiente manera:

El primer Capítulo se dedica a realizar una introducción del objetivo general y justificación

del proyecto, detallando los objetivos específicos que intervienen en el mismo y la estructura

del documento.

En el Capítulo 2 se realiza una primera parte introductoria, donde explicamos la procedencia

del problema que vamos a estudiar, así como los objetivos que nos han llevado a realizarlo.

Con ello satisfacemos el objetivo específico 1.

El Capítulo 3 lo dedicamos a describir el problema que nos concierne propiamente dicho.

Explicamos las características del sistema completo, y se realiza una primera formulación del

procedimiento general. De esta forma abordamos el segundo objetivo específico.

En el cuarto Capítulo, describimos la solución general, introduciendo los conceptos que

intervienen en la programación multiobjetivo y el primer estudio de las funciones objetivo

que actúan como salidas del sistema, todo ello destinado a satisfacer el objetivo específico 3.

Los Capítulos 5 y 6 estudian el problema mediante la Programación por Compromiso y por

Metas respectivamente, abordando los dos últimos objetivos específicos.

Un último capítulo de Conclusiones donde trataremos de ver si hemos cumplido o no con el

objetivo planteado.

Page 28: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 29: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

7

2 INTRODUCCIÓN DEL PROBLEMA

N problema es todo aquello que necesita ser resuelto. Se puede considerar de una forma

genérica como una pregunta o interrogante sobre cualquier tema que no se sabe o se

desconoce, y cuya solución es la respuesta o el nuevo conocimiento obtenido mediante el

desarrollo de la solución.

U

Nunca consideres el estudio como una obligación,

sino como una oportunidad para penetrar en el

bello y maravilloso mundo del saber.

-Albert Einstein -

Page 30: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Introducción del Problema

8

2.1. Introducción

Nuestro problema se centra en el estudio de un problema de decisión en el que tenemos una serie de

variables y funciones objetivo. En concreto, en nuestro proyecto intervienen cinco variables y ocho

funciones objetivo, pero no las vamos a presentar ahora porque hemos dedicado una sección

exclusivamente a ello.

Si tomamos como sistema el conjunto global de las variables y las funciones, debemos, pues,

estudiar el comportamiento de las salidas (funciones) ante las posibles combinaciones y cambios de

las entradas (variables). Presentaremos y describiremos los diferentes métodos empleados para este

estudio y sacaremos las conclusiones pertinentes.

2.1.1 Estructura de un proceso de decisión

Un proceso de toma de decisión se puede definir como la elección por parte de un individuo o un

grupo de ellos de lo mejor entre lo posible. Los problemas surgen cuando tenemos que definir qué es

lo mejor y qué es lo posible.

Si atendemos al enfoque más tradicional, hay unos recursos que no son infinitos, es decir, están

limitados, y esto supone una serie de restricciones para nuestro problema.

Ejemplo: Si tenemos una cesta con capacidad para cinco piezas de fruta que queremos llevar a la

playa, y tenemos en el frigorífico dos peras, dos manzanas y tres plátanos, tendremos que

seleccionar qué introduciremos en dicha cesta, pues todo no cabe.

Por tanto, las variables del problema tendrán que satisfacer estas restricciones para poder

proporcionar una solución que sea admisible. El conjunto de todas las soluciones admisibles se

denomina conjunto factible, alcanzable o admisible. Este conjunto puede ser continuo o discreto. Lo

llamamos continuo si el conjunto tiene infinitas soluciones y discreto si tiene un número finito de

soluciones admisibles.

Para esta primera parte del problema, en la que tenemos que seleccionar el conjunto admisible, sólo

necesitamos información que no depende de ningún criterio subjetivo, y aplicando algunas técnicas

conocidas, o simplemente atendiendo a la razón determinamos el conjunto de soluciones alcanzables.

Una vez que tenemos definido los componentes y la forma del conjunto factible, hay que seleccionar

de entre todas esas posibles combinaciones las mejores. En este momento, hay que definir unos

criterios que seleccionarán unas soluciones con preferencia a otras.

Page 31: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

9 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

En este marco, siguiendo la estructura teórica, se encuadran tanto los problemas de decisión del

paradigma tradicional de la optimización como los que lo hacen por medio de la programación

matemática. De esta manera, encajamos las soluciones admisibles como aquellas que cumplen las

restricciones del problema. Las decisiones sobre las preferencias entre las soluciones se ordenan

según un criterio que representa las preferencias del centro decisor, llamado función objetivo. Si

recurrimos a técnicas matemáticas medianamente complejas, como puede ser el Simplex (válido

cuando tanto la estructura de las restricciones como la de la función objetivo son lineales) llegamos a

la solución óptima, siendo ésta la que alcanza un mejor valor de la función objetivo de entre todas las

que componen el conjunto admisible.

Esta estructura tiene una base sólida muy importante. Esto quiere decir que el método, desde un

punto de vista interno, roza la perfección. En contraposición, debemos reseñar que de forma externa,

aplicándolo a problemas reales, no es tan favorable.

En la vida real, la mayoría de los problemas no tienen un centro decisor que deba ordenar las

soluciones admisibles tomando como referencia un sólo criterio, sino que deben hacer esta tarea en

función de muchos y diversos puntos de vista. Por ello, investigadores de todo el mundo, han

centrado sus esfuerzos en los últimos cincuenta años acerca de centros decisores que barajen las

posibilidades de una forma más parecida a la que se hace en los problemas reales, y no tanto con la

formalidad matemática de un único objetivo. Se han desarrollado muchos métodos específicos en el

campo de la investigación operativa y la ingeniería de sistemas, algunos de ellos en los que nos

centraremos en el momento que debamos aportar una solución al problema.

En resumen, la teoría de decisión multicriterio ayuda a formalizar problemas complejos de decisión y

a tomar decisiones más coherentes que la teoría clásica.

2.1.2 Conceptos básicos

Para aportar mayor claridad a las explicaciones sobre los problemas de optimización y decisión

multicriterio, y en concreto del que abordaremos en este proyecto, comenzaremos explicando

algunos conceptos básicos relacionados con el tema. Son conceptos técnicos generales muy básicos,

aunque útiles a la hora de comenzar a estudiar el problema, pues en las explicaciones que se ilustren

en la sección de solución del presente proyecto aparecerán y hablaremos

2.1.2.1 Atributo

Valor observado (medido) de una decisión, independientemente de los deseos del decisor.

Page 32: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Introducción del Problema

10

2.1.2.2 Objetivo

Dirección de mejora de un atributo.

Será de maximizar o minimizar si es numérico, sino habrá que establecer previamente unas

preferencias. En general, los objetivos toman la forma Max f(x) o min f(x).

2.1.2.3 Nivel de aspiración

Nivel de logro aceptable para el correspondiente atributo.

2.1.2.4 Meta

Combinación de un atributo con su nivel de aspiración.

Es muy importante aclarar la diferencia entre meta y restricción. Una restricción (la ecuación que la

representa) ha de cumplirse siempre, sino la solución no será válida pues no pertenecerá al conjunto

de soluciones eficiente. Sin embargo, la ecuación de una meta puede no cumplirse, dicho en otras

palabras, lo ideal es que sí lo haga, pero no descartaremos una solución por no cumplir una de ellas,

pues la única información que esto nos aporta es que no se satisface el nivel de aspiración de la

misma, pero en ningún momento que esa solución no pertenezca al conjunto admisible.

2.1.2.5 Criterio

Término general que engloba los tres conceptos anteriores. Criterio es todo aquel objetivo, nivel de

aspiración o meta que se considera importante para un determinado problema.

2.1.3 Formulación general de un problema

Un problema genérico del tipo que vamos a estudiar en el proyecto que estamos presentando tiene la

siguiente forma:

𝐸𝑓min(𝑀𝑎𝑥)𝑓(𝑥) = [𝑓1(𝑥), 𝑓2(𝑥),… , 𝑓𝑞(𝑥)]

𝑠. 𝑎. 𝑥 ∈ �̌� ⊆ 𝑅𝑛;

�̌� 𝑒𝑠 𝑒𝑙 𝑐𝑜𝑛𝑗𝑢𝑛𝑡𝑜 𝑑𝑒 𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛𝑒𝑠 𝑓𝑎𝑐𝑡𝑖𝑏𝑙𝑒𝑠 𝑞 𝑒𝑠 𝑒𝑙 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜𝑠 𝑑𝑒𝑙 𝑝𝑟𝑜𝑏𝑙𝑒𝑚𝑎

Page 33: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

11 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

Es independiente para el método de estudio que las funciones objetivo sean de minimizar o

maximizar, sólo lo tendremos en cuenta una vez que lleguemos a la solución, para poder interpretar

de una manera acertada los resultados. Asimismo, cada una de las funciones puede ser lineal o no

lineal. En nuestro caso, son todas no lineales, cosa que dificulta el problema pues los métodos para

resolver son más complejos.

Page 34: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Introducción del Problema

12

2.2. Datos de entrada, variables y salidas

En el presente proyecto, tenemos 5 factores de entrada al sistema y 8 funciones de salida, también

llamadas respuestas. A modo de ejemplo, presentamos un esquema.

Figura 2-1. Esquema del sistema.

En el proyecto realizado por la licenciada Dª Carmen Martina Arroyo García, el cual sirve de base

para realizar el presente documento, se desarrolló un estudio en el que se intentaba poner de

manifiesto la influencia que ejercen los distintos parámetros o factores (cantidad de colesterol,

cantidad y tipo de activador de borde, presencia o no de estearilamina e incorporación del fármaco en

fase acuosa o fase oleosa), sobre las respuestas (eficacia de encapsulación de los transfersomas,

tamaño, potencial zeta e índice de polidispersión) tanto antes como después de la extrusión.

2.2.1 Factores que intervienen

Los factores que intervienen en el estudio se detallan a continuación, y además, presentaremos la

codificación empleada en el proceso de optimización. Estos factores son las variables que usaremos

en los procesos de optimización. Son conceptos extraños de los que desconocemos prácticamente

todo pues no están en nuestro ámbito, pero los codificaremos de tal forma que no sea un problema y

podamos sacar conclusiones de una forma sencilla.

2.2.1.1 Cantidad de colesterol

Los experimentos se realizaron con cantidades comprendidas entre 20 y 27 ηmoles de colesterol. Al

ser una cantidad comprendida entre estos valores, esta variable es continua, pudiendo tomar

SISTEMA 5 factores 8 respuestas

Page 35: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

13 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

cualquier valor intermedio entre los límites.

Nombre codificado: Ch

2.2.1.2 Tipo de activador de borde

Hay dos tipos, el primero es el desoxicolato sódico y el segundo Tween® 20. Esta variable es

discreta pues hay que seleccionar una de ellas.

Nombre codificado: TE

2.2.1.3 Cantidad de activador de borde

Los experimentos se realizan con una cantidad determinada del tipo de activador mencionado

anteriormente. Independientemente del elegido, oscila entre 10 y 12 mg. Tenemos pues, una variable

continua, pues tenemos que seleccionar un valor intermedio, a elegir por nosotros.

Nombre codificado: AEA

2.2.1.4 Estearilamina

Presencia o no de estearilamina. Variable discreta.

Nombre codificado: EA

2.2.1.5 Incorporación del principio activo

En fase acuosa (FA) o fase oleosa (FO). Variable discreta.

Nombre codificado: Dr

A modo de resumen, exponemos todas las variables en una tabla, adjuntando además, los valores

codificados que usaremos en la solución de las ecuaciones.

Page 36: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Introducción del Problema

14

Tabla 2–1 Variables codificadas

VARIABLE VALORES LÍMITE VALOR CODIFICADO

Ch 20 ηmoles 0

27 ηmoles 1

AEA 10 mg 0

12 mg 1

Dr FO (Fase oleosa) 0

FA (Fase acuosa) 1

EA Sí (Incorpora estearilamina) 0

No (No incorpora) 1

TE Tween® 20 0

Desoxicolato sódico 1

Figura 2-2. Esquema de las variables.

2.2.2 Respuestas del sistema

Como hemos señalado anteriormente, en nuestro proyecto intervienen ocho respuestas. Cuatro de

ellas pertenecen a antes y otras cuatro a después de la extrusión. La extrusión es un proceso que se

realizó en los laboratorios del proyecto de Dª Carmen Martina Arroyo García, y las respuestas

Ch

AEA

Dr

EA

TE

Continuas

Discretas

Variables

Page 37: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

15 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

cambian completamente antes y después de la misma, por lo que hay que estudiarlas de forma

independiente.

Es importante señalar que el concepto de cada una de las salidas es el mismo, totalmente

independiente de la extrusión, que es lo que explicaremos a continuación, no así el comportamiento

de la función que lo representa, que es lo realmente importante y que estudiaremos en el siguiente

apartado.

2.2.2.1 Tamaño vesicular (Size)

El tamaño de las vesículas influye de forma notable en la estabilidad de los sistemas. Los lotes

estudiados están destinados a una administración oftálmica, la cual requiere tamaños de partículas

reducidos.

Nos interesa un tamaño reducido, es decir, tendremos que minimizar.

2.2.2.2 Índice de polidispersión (IP)

El índice de polidispersión es un parámetro que hace referencia a la homogeneidad / heterogeneidad

de la muestra analizada, con respecto a sus dimensiones. Representa una medida de la diferencia del

tamaño que suele tener la mayoría de los liposomas analizados en función de su diámetro medio. En

la práctica, cuanto mayor es el IP, mayor será la diferencia entre el tamaño medio de la población de

liposomas analizada y, por tanto, más heterogéneas serán las vesículas. Así, un valor elevado de IP

(0.8-1) es indicativo de una muestra heterogénea, mientras que un valor bajo de IP (< 0.2) indicará

una elevada homogeneidad de las vesículas en cuanto a sus dimensiones.

Debemos minimizar esta función.

2.2.2.3 Potencial zeta (ZetaPot)

El potencial zeta constituye un importante índice para la determinación de la estabilidad física de una

dispersión de liposomas.

También interesa minimizar.

2.2.2.4 Eficacia de encapsulación (EE)

Por lo general, los fármacos hidrofílicos se caracterizan por la penetración relativamente pobre a

través de las barreras biológicas, por lo que se pretende conseguir una eficacia de encapsulación lo

más elevada posible, que mantenga el mayor porcentaje de fármaco atrapado en el interior de las

vesículas.

Nos interesa maximizar.

Page 38: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Introducción del Problema

16

Figura 2-3. Esquema de las respuestas.

Size

IP

Zeta Pot

EE

Minimizar

Maximizar

Respuestas

Page 39: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

17

3 DESCRIPCIÓN DEL PROBLEMA

N este capítulo vamos a empezar a trabajar con las ecuaciones pertenecientes a nuestro

problema, así como iremos introduciendo poco a poco conceptos relativos a la programación

multiobjetivo para poder resolver el problema final. Definiremos el problema completo y

nombraremos las funciones con las que vamos a trabajar.

E

El hombre nunca sabe de lo que es capaz hasta que

lo intenta.

- Charles Dickens -

Page 40: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción del Problema

18

3.1. Ecuaciones de partida

En este apartado, vamos a definir las funciones que representan a las respuestas del sistema

explicadas anteriormente. Como hemos comentado, aquí sí tenemos que diferenciar las que se

refieren al momento antes de la extrusión de las que lo hacen después, pues aunque el concepto sea el

mismo, no se comportan de la misma forma. Los valores que proporcionen estas funciones con los

datos de las variables codificadas son los que usaremos en el proceso de optimización y toma de

decisiones.

Para determinar cuánto de buena es la aproximación de la ecuación con respecto al comportamiento

de la salida en términos reales, se tienen dos coeficientes. El primero de ellos es el coeficiente de

determinación (𝑅2), que mide cómo de bueno es el ajuste de la ecuación. Este valor oscila entre cero

y uno, pudiendo alcanzar los valores límites y siendo uno el valor que determina la perfección del

ajuste. El segundo es el MSE, segundo momento (sobre el origen) del error, incorporando tanto la

varianza del estimador como el sesgo. Al final del apartado, detallaremos en una tabla los valores de

cada uno de ellos en todas las ecuaciones, para tener la certeza de que el estudio lo realizamos con

datos fiables.

Nótese también, que de ahora en adelante emplearemos unos términos de siglas para referirnos a las

salidas para mayor comodidad. Usaremos indistintamente las siglas que mostraremos ahora y los

nombres tanto en español como en inglés.

3.1.1 Antes de la extrusión

3.1.1.1 Tamaño vesicular (Size o VS)

𝑉�̂�𝑙𝑜𝑔 = 3.02 + 0.077 × 𝐶ℎ + 0.0401 × 𝐴𝐸𝐴 − 0.0362 × 𝐷𝑟 − 0.136 × 𝐸𝐴

+ 0.0831 × 𝑇𝐸 − 0.105 × 𝐶ℎ × 𝐴𝐸𝐴 + 0.00995 × 𝐶ℎ × 𝐷𝑟+ 0.00905 × 𝐴𝐸𝐴 × 𝐷𝑟 + 0.0863 × 𝐷𝑟 × 𝐸𝐴 + 0.0398 × 𝐶ℎ × 𝑇𝐸+ 0.0144 × 𝐴𝐸𝐴 × 𝑇𝐸 − 0.104 × 𝐷𝑟 × 𝑇𝐸 − 0.121 × 𝐸𝐴 × 𝑇𝐸

𝑉�̂� = 10𝑉�̂�𝑙𝑜𝑔 (3–1)

Debemos tener en cuenta, que en un estudio previo se determinó que la respuesta de tamaño

vesicular se adaptaba mejor a su forma logarítmica, por lo que la ecuación de regresión viene

expresada según dicha transformación.

Page 41: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

19 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

3.1.1.2 Índice de polidispersión (IP o PDI)

𝑃𝐷𝐼̂ = 0.103 + 0.411 × 𝐶ℎ − 0.201 × 𝐴𝐸𝐴 + 0.272 × 𝐷𝑟 + 0.39 × 𝐸𝐴 + 0.379× 𝑇𝐸 + 0.265 × 𝐶ℎ × 𝐷𝑟 + 0.172 × 𝐴𝐸𝐴 × 𝐸𝐴 − 0.462 × 𝐷𝑟 × 𝐸𝐴− 0.506 × 𝐶ℎ × 𝑇𝐸 + 0.24 × 𝐷𝑟 × 𝑇𝐸 − 0.564 × 𝐸𝐴 × 𝑇𝐸

(3–2)

3.1.1.3 Potencial Zeta (ZetaPot o ZP)

𝑍�̂� = 8.33 − 0.418 × 𝐶ℎ + 0.0624 × 𝐴𝐸𝐴 − 0.0856 × 𝐷𝑟 + 2.85 × 𝐸𝐴 + 0.499× 𝑇𝐸 − 0.727 × 𝐶ℎ × 𝐷𝑟 − 0.399 × 𝐴𝐸𝐴 × 𝐷𝑟 − 0.356 × 𝐴𝐸𝐴 × 𝐸𝐴− 0.516 × 𝐶ℎ × 𝑇𝐸 − 0.325 × 𝐴𝐸𝐴 × 𝑇𝐸 + 0.363 × 𝐷𝑟 × 𝑇𝐸 + 3.77× 𝐸𝐴 × 𝑇𝐸

(3–3)

3.1.1.4 Eficacia de encapsulación (EE o PDE)

𝑃𝐷�̂� = 37.9 + 12 × 𝐶ℎ + 4.72 × 𝐴𝐸𝐴 + 2.54 × 𝐷𝑟 + 7.75 × 𝐸𝐴 + 1.68 × 𝑇𝐸+ 3.32 × 𝐶ℎ × 𝐴𝐸𝐴 + 0.782 × 𝐶ℎ × 𝐷𝑟 − 2.97 × 𝐴𝐸𝐴 × 𝐷𝑟 + 7.73× 𝐶ℎ × 𝐸𝐴 − 1.15 × 𝐴𝐸𝐴 × 𝐸𝐴 + 8.79 × 𝐷𝑟 × 𝐸𝐴 − 3.45 × 𝐶ℎ × 𝑇𝐸− 6.79 × 𝐴𝐸𝐴 × 𝑇𝐸 + 2.28 × 𝐷𝑟 × 𝑇𝐸 + 1.3 × 𝐸𝐴 × 𝑇𝐸

(3–4)

3.1.2 Después de la extrusión

3.1.2.1 Tamaño vesicular (Size o VS)

𝑉�̂�𝑙𝑜𝑔 = 2.25 − 0.0179 × 𝐶ℎ − 0.00826 × 𝐴𝐸𝐴 + 0.00655 × 𝐷𝑟 − 0.0237 × 𝐸𝐴

− 0.00438 × 𝑇𝐸 + 0.0117 × 𝐶ℎ × 𝐴𝐸𝐴 − 0.00301 × 𝐶ℎ × 𝐷𝑟− 0.0167 × 𝐴𝐸𝐴 × 𝐷𝑟 + 0.0246 × 𝐶ℎ × 𝐸𝐴 + 0.00735 × 𝐴𝐸𝐴 × 𝐸𝐴− 0.0157 × 𝐷𝑟 × 𝐸𝐴 − 0.00889 × 𝐶ℎ × 𝑇𝐸 − 0.0119 × 𝐴𝐸𝐴 × 𝑇𝐸+ 0.0039 × 𝐷𝑟 × 𝑇𝐸 − 0.0294 × 𝐸𝐴 × 𝑇𝐸

𝑉�̂� = 10𝑉�̂�𝑙𝑜𝑔 (3–5)

Page 42: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción del Problema

20

Igual que para el tamaño relativo a antes de la extrusión, en el mismo estudio se determinó

que la respuesta de tamaño vesicular se adaptaba mejor a su forma logarítmica, por lo que

la ecuación de regresión viene expresada según dicha transformación.

3.1.2.2 Índice de polidispersión (IP o PDI)

𝑃𝐷𝐼̂ = 0.189 − 0.00552 × 𝐶ℎ − 0.0039 × 𝐴𝐸𝐴 − 0.00102 × 𝐷𝑟 − 0.0214 × 𝐸𝐴+ 0.00281 × 𝑇𝐸 + 0.0111 × 𝐶ℎ × 𝐷𝑟 − 0.0094 × 𝐴𝐸𝐴 × 𝐷𝑟+ 0.0094 × 𝐶ℎ × 𝐸𝐴 + 0.00598 × 𝐶ℎ × 𝑇𝐸 − 0.0223 × 𝐸𝐴 × 𝑇𝐸

(3–6)

3.1.2.3 Potencial Zeta (ZetaPot o ZP)

𝑍�̂� = 7.38 + 0.332 × 𝐶ℎ + 2.12 × 𝐴𝐸𝐴 − 0.943 × 𝐷𝑟 + 0.33 × 𝐸𝐴 − 5.65 × 𝑇𝐸+ 3.97 × 𝐶ℎ × 𝐴𝐸𝐴 − 1.15 × 𝐶ℎ × 𝐷𝑟 − 3.09 × 𝐴𝐸𝐴 × 𝐷𝑟 − 1.58× 𝐶ℎ × 𝐸𝐴 − 1.66 × 𝐴𝐸𝐴 × 𝐸𝐴 − 1.23 × 𝐶ℎ × 𝑇𝐸 − 2.48 × 𝐴𝐸𝐴× 𝑇𝐸 + 1.7 × 𝐷𝑟 × 𝑇𝐸 + 13.9 × 𝐸𝐴 × 𝑇𝐸

(3–7)

3.1.2.4 Eficacia de encapsulación (EE o PDE)

𝑃𝐷�̂� = 4.21 − 0.279 × 𝐶ℎ + 0.311 × 𝐴𝐸𝐴 + 0.152 × 𝐷𝑟 − 0.595 × 𝐸𝐴 + 0.878× 𝑇𝐸 + 0.726 × 𝐶ℎ × 𝐴𝐸𝐴 + 0.417 × 𝐶ℎ × 𝐷𝑟 − 0.973 × 𝐴𝐸𝐴 × 𝐷𝑟+ 1.21 × 𝐶ℎ × 𝐸𝐴 − 0.543 × 𝐴𝐸𝐴 × 𝐸𝐴 + 0.169 × 𝐷𝑟 × 𝐸𝐴 − 0.898× 𝐶ℎ × 𝑇𝐸 − 0.269 × 𝐴𝐸𝐴 × 𝑇𝐸 + 0.682 × 𝐷𝑟 × 𝑇𝐸 − 1.22 × 𝐸𝐴× 𝑇𝐸

(3–8)

Page 43: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

21 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

Tabla 3–1. Valores del ajuste de las ecuaciones de salida

Ecuación MSE 𝑹𝒂𝒅𝒋𝟐

An

tes

de

la

extr

usi

ón

Tamaño (VS o Size) 0.001445 0.9833

Índice de polidispersión (IP o PDI) 0.01597 0.8705

Potencial Zeta (ZetaPot o ZP) 0.3713 0.9851

Eficacia de encapsulación (EE o PDE) 0.000 0.999

Des

pu

és d

e la

extr

usi

ón

Tamaño (VS o Size) 2.784e-5 0.9921

Índice de polidispersión (IP o PDI) 0.0003541 0.7968

Potencial Zeta (ZetaPot o ZP) 0.3896 0.9844

Eficacia de encapsulación (EE o PDE) 0.000 0.999

Page 44: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción del Problema

22

3.2. Formulación del problema

Las respuestas tienen un subíndice antes o después en la formulación. Esto sirve para indicar si las

mismas se refieren a antes o después de la extrusión. Asimismo, la variable x perteneciente a 𝑓(𝑥) se

refiere al conjunto de todas las variables (entradas o factores del Sistema).

𝐸𝑓 𝑓(𝑥) = [min 𝑆𝑖𝑧𝑒𝑎𝑛𝑡𝑒𝑠 , min 𝐼𝑃𝑎𝑛𝑡𝑒𝑠 , min 𝑍𝑒𝑡𝑎𝑃𝑜𝑡𝑎𝑛𝑡𝑒𝑠 , Max𝐸𝐸𝑎𝑛𝑡𝑒𝑠 ,

min𝑆𝑖𝑧𝑒𝑑𝑒𝑠𝑝𝑢𝑒𝑠 , min 𝐼𝑃𝑑𝑒𝑠𝑝𝑢𝑒𝑠 , min 𝑍𝑒𝑡𝑎𝑃𝑜𝑡𝑑𝑒𝑠𝑝𝑢𝑒𝑠 , Max 𝐸𝐸𝑑𝑒𝑠𝑝𝑢𝑒𝑠]

𝑉�̂�log𝑎𝑛𝑡𝑒𝑠 = 3.02 + 0.077 × 𝐶ℎ + 0.0401 × 𝐴𝐸𝐴 − 0.0362 × 𝐷𝑟 − 0.136 × 𝐸𝐴

+ 0.0831 × 𝑇𝐸 − 0.105 × 𝐶ℎ × 𝐴𝐸𝐴 + 0.00995 × 𝐶ℎ × 𝐷𝑟+ 0.00905 × 𝐴𝐸𝐴 × 𝐷𝑟 + 0.0863 × 𝐷𝑟 × 𝐸𝐴 + 0.0398 × 𝐶ℎ × 𝑇𝐸+ 0.0144 × 𝐴𝐸𝐴 × 𝑇𝐸 − 0.104 × 𝐷𝑟 × 𝑇𝐸 − 0.121 × 𝐸𝐴 × 𝑇𝐸

𝑆𝑖𝑧𝑒𝑎𝑛𝑡𝑒𝑠 = 10𝑉�̂�log𝑎𝑛𝑡𝑒𝑠

𝐼𝑃𝑎𝑛𝑡𝑒𝑠 = 0.103 + 0.411 × 𝐶ℎ − 0.201 × 𝐴𝐸𝐴 + 0.272 × 𝐷𝑟 + 0.39 × 𝐸𝐴 + 0.379× 𝑇𝐸 + 0.265 × 𝐶ℎ × 𝐷𝑟 + 0.172 × 𝐴𝐸𝐴 × 𝐸𝐴 − 0.462 × 𝐷𝑟 × 𝐸𝐴− 0.506 × 𝐶ℎ × 𝑇𝐸 + 0.24 × 𝐷𝑟 × 𝑇𝐸 − 0.564 × 𝐸𝐴 × 𝑇𝐸

𝑍𝑒𝑡𝑎𝑃𝑜𝑡𝑎𝑛𝑡𝑒𝑠 = 8.33 − 0.418 × 𝐶ℎ + 0.0624 × 𝐴𝐸𝐴 − 0.0856 × 𝐷𝑟 + 2.85 × 𝐸𝐴+ 0.499 × 𝑇𝐸 − 0.727 × 𝐶ℎ × 𝐷𝑟 − 0.399 × 𝐴𝐸𝐴 × 𝐷𝑟 − 0.356× 𝐴𝐸𝐴 × 𝐸𝐴 − 0.516 × 𝐶ℎ × 𝑇𝐸 − 0.325 × 𝐴𝐸𝐴 × 𝑇𝐸 + 0.363× 𝐷𝑟 × 𝑇𝐸 + 3.77 × 𝐸𝐴 × 𝑇𝐸

𝐸𝐸𝑎𝑛𝑡𝑒𝑠 = 37.9 + 12 × 𝐶ℎ + 4.72 × 𝐴𝐸𝐴 + 2.54 × 𝐷𝑟 + 7.75 × 𝐸𝐴 + 1.68 × 𝑇𝐸+ 3.32 × 𝐶ℎ × 𝐴𝐸𝐴 + 0.782 × 𝐶ℎ × 𝐷𝑟 − 2.97 × 𝐴𝐸𝐴 × 𝐷𝑟 + 7.73× 𝐶ℎ × 𝐸𝐴 − 1.15 × 𝐴𝐸𝐴 × 𝐸𝐴 + 8.79 × 𝐷𝑟 × 𝐸𝐴 − 3.45 × 𝐶ℎ× 𝑇𝐸 − 6.79 × 𝐴𝐸𝐴 × 𝑇𝐸 + 2.28 × 𝐷𝑟 × 𝑇𝐸 + 1.3 × 𝐸𝐴 × 𝑇𝐸

Page 45: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

23 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

𝑉�̂�log𝑑𝑒𝑠𝑝𝑢é𝑠 = 2.25 − 0.0179 × 𝐶ℎ − 0.00826 × 𝐴𝐸𝐴 + 0.00655 × 𝐷𝑟 − 0.0237

× 𝐸𝐴 − 0.00438 × 𝑇𝐸 + 0.0117 × 𝐶ℎ × 𝐴𝐸𝐴 − 0.00301 × 𝐶ℎ × 𝐷𝑟− 0.0167 × 𝐴𝐸𝐴 × 𝐷𝑟 + 0.0246 × 𝐶ℎ × 𝐸𝐴 + 0.00735 × 𝐴𝐸𝐴 × 𝐸𝐴− 0.0157 × 𝐷𝑟 × 𝐸𝐴 − 0.00889 × 𝐶ℎ × 𝑇𝐸 − 0.0119 × 𝐴𝐸𝐴 × 𝑇𝐸+ 0.0039 × 𝐷𝑟 × 𝑇𝐸 − 0.0294 × 𝐸𝐴 × 𝑇𝐸

𝑆𝑖𝑧𝑒𝑑𝑒𝑠𝑝𝑢𝑒𝑠 = 10𝑉�̂�log𝑑𝑒𝑠𝑝𝑢𝑒𝑠

𝐼𝑃𝑑𝑒𝑠𝑝𝑢𝑒𝑠 = 0.189 − 0.00552 × 𝐶ℎ − 0.0039 × 𝐴𝐸𝐴 − 0.00102 × 𝐷𝑟 − 0.0214 × 𝐸𝐴

+ 0.00281 × 𝑇𝐸 + 0.0111 × 𝐶ℎ × 𝐷𝑟 − 0.0094 × 𝐴𝐸𝐴 × 𝐷𝑟 + 0.0094× 𝐶ℎ × 𝐸𝐴 + 0.00598 × 𝐶ℎ × 𝑇𝐸 − 0.0223 × 𝐸𝐴 × 𝑇𝐸

𝑍𝑒𝑡𝑎𝑃𝑜𝑡𝑑𝑒𝑠𝑝𝑢𝑒𝑠= 7.38 + 0.332 × 𝐶ℎ + 2.12 × 𝐴𝐸𝐴 − 0.943 × 𝐷𝑟 + 0.33 × 𝐸𝐴 − 5.65× 𝑇𝐸 + 3.97 × 𝐶ℎ × 𝐴𝐸𝐴 − 1.15 × 𝐶ℎ × 𝐷𝑟 − 3.09 × 𝐴𝐸𝐴 × 𝐷𝑟 − 1.58× 𝐶ℎ × 𝐸𝐴 − 1.66 × 𝐴𝐸𝐴 × 𝐸𝐴 − 1.23 × 𝐶ℎ × 𝑇𝐸 − 2.48 × 𝐴𝐸𝐴 × 𝑇𝐸+ 1.7 × 𝐷𝑟 × 𝑇𝐸 + 13.9 × 𝐸𝐴 × 𝑇𝐸

𝐸𝐸𝑑𝑒𝑠𝑝𝑢𝑒𝑠 = 4.21 − 0.279 × 𝐶ℎ + 0.311 × 𝐴𝐸𝐴 + 0.152 × 𝐷𝑟 − 0.595 × 𝐸𝐴

+ 0.878 × 𝑇𝐸 + 0.726 × 𝐶ℎ × 𝐴𝐸𝐴 + 0.417 × 𝐶ℎ × 𝐷𝑟 − 0.973× 𝐴𝐸𝐴 × 𝐷𝑟 + 1.21 × 𝐶ℎ × 𝐸𝐴 − 0.543 × 𝐴𝐸𝐴 × 𝐸𝐴 + 0.169 × 𝐷𝑟× 𝐸𝐴 − 0.898 × 𝐶ℎ × 𝑇𝐸 − 0.269 × 𝐴𝐸𝐴 × 𝑇𝐸 + 0.682 × 𝐷𝑟 × 𝑇𝐸− 1.22 × 𝐸𝐴 × 𝑇𝐸

𝑥 = (𝐶ℎ, 𝐴𝐸𝐴, 𝐷𝑟, 𝐸𝐴, 𝑇𝐸)

𝐶ℎ ∈ [0,1]

𝐴𝐸𝐴 ∈ [0,1]

𝐷𝑟 = {0,1}

𝐸𝐴 = {0,1}

𝑇𝐸 = {0,1}

Page 46: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción del Problema

24

Como vamos a utilizar varios nombres para referirnos a las salidas del sistema, presentamos una

tabla con todos los que vamos a emplear. Los usaremos indistintamente para unos métodos y otros.

Tabla 3–2 Nombre de las salidas

Salida Nombre 1 Nombre 2 Nombre 3

An

tes

de

la

extr

usi

ón

Tamaño Size_antes VS_antes f1

Índice de polidispersión IP_antes PDI_antes f2

Potencial Zeta ZetaPot_antes ZP_antes f3

Eficacia de encapsulación EE_antes PDE_antes f4

Des

pu

és d

e la

extr

usi

ón

Tamaño Size_después VS_después f5

Índice de polidispersión IP_después PDI_después f6

Potencial Zeta ZetaPot_después ZP_después f7

Eficacia de encapsulación EE_después PDE_después f8

Page 47: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

25 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

3.3. LINGO

LINGO es una herramienta simple para formular problemas lineales y no lineales, resolverlos y

analizar los datos que proporciona como solución. Vamos a explicar por encima el uso de la

aplicación en sí y describir un poco el lenguaje que usa para su mayor comprensión, ya que es el

programa que hemos usado para ir resolviendo el problema por los distintos métodos que hemos

elegido en el presente proyecto.

La mayor ventaja de LINGO es el lenguaje matemático que utiliza, muy similar al lenguaje

tradicional ampliamente conocido por todos. Otro aspecto que lo hace recomendable es la posibilidad

de expresar las restricciones de una forma compacta, lo cual conlleva a modelos que son muy fáciles

de mantener. Además, LINGO permite aislar los datos de la formulación de los objetivos y las

restricciones, algo útil a la hora de cambiar factores o preferencias de las salidas, aspectos que

debemos tener en cuenta en nuestro problema.

Por último, LINGO es una aplicación capaz de resolver modelos de programación no lineal, y como

nosotros vamos a trabajar con ecuaciones no lineales, y esto no lo hacen todos los programas, fue el

motivo definitivo pare seleccionarlo entre el resto.

3.3.1 Características principales

Hay dos características principales que debemos tener en cuenta una vez que ejecutamos la

aplicación por primera vez relacionadas con el problema que vamos a estudiar. Hay muchas más,

pero no queremos extendernos porque no serán de gran utilidad para nosotros.

Global Solver (Solución Global). Esta opción hace que LINGO busque óptimos globales en

lugar de locales. Para problemas de amplia extensión, puede hacer que tarde en encontrar el

resultado, pero para problemas pequeños mejora considerablemente la solución.

Variables Assumed Non-Negative (Variables no negativas). Esta opción viene marcada por

defecto, y hace que las variables no puedan tomar valores negativos. Podemos desactivar la

opción desde el menú LINGO → Opciones → Pestaña General Solver, o bien declarar en el

código que las variables puedan tomar valores inferiores a cero. Esta segunda opción la

explicaremos a continuación en los rangos de variables, ya que tendremos que usarlo.

Page 48: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción del Problema

26

3.3.2 Sintaxis de LINGO

La sintaxis es sencilla. Para nombrar las variables se utilizan hasta un máximo de 32 caracteres,

empezando con alguna letra, número o barra baja. Hay que señalar que LINGO no distingue entre

mayúsculas y minúsculas, aunque nosotros sí haremos la diferencia en el código para equiparar los

nombres anteriormente explicados tanto de salidas como de variables.

Con respecto a las sentencias para el correcto funcionamiento del programa:

Todas las sentencias deben terminar un punto y coma.

Para poner nombre a las restricciones, hay que escribirlo entre corchetes. Tiene dos ventajas

principales, aunque en nuestro problema las restricciones son escasas, pues dependen

fundamentalmente de una restricción en el dominio de las variables, no siendo del mismo

formato que las usuales en optimización. La primera es que en el informe de soluciones

aparecen los nombres, con lo que incremente la facilidad en la comprensión de la solución.

La segunda es que en el informe de errores, si es que aparece, normalmente vendrá referido a

alguna restricción y la llamara por el nombre que le hayamos puesto.

Los comentarios, para que LINGO no los tenga en cuenta a la hora de compilar, se escriben

precedidos del signo: ! (aparecerán escritos de color verde).

La función objetivo se declara como MAX o MIN seguidas del símbolo igual (=).

3.3.3 Dominio de variables

Como hemos comentado, LINGO trae por defecto la opción que impide a las variables tomar valores

negativos. Sin embargo, podemos dejar marcado esta opción y trabajar con restricciones a las

variables, predominando estas a las opciones por defecto que traiga la herramienta.

Vamos a presentar las más importantes. Muchas de ellas son compatibles, es decir, podríamos

escribir lo mismo de distinta forma, pero tampoco vamos a profundizar mucho en ese aspecto para

no complicar mucho la explicación del programa. Vamos a escribir de forma genérica una x para

llamar a una variable ficticia.

@GIN (x). Hace que una variable tome valores enteros (positivos o negativos, salvo que las

variables sean no negativas por defecto).

@BIN (x). La variable se convierte en binaria (sólo puede tomar valor cero o uno).

@FREE (x). Permite que la variable pueda tomar cualquier valor, bien sea positivo o

negativo, incluso cuando está activa la casilla de Variables Assumed Non-Negative.

Establece la cota inferior en un número muy negativo y la superior en uno muy grande.

@BND (valor límite inferior, x, valor límite superior). Limita la variable a ese rango

Page 49: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

27 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

seleccionado. Por ejemplo, si escribimos @BND (5, x, 10); hace que la variable x varíe entre

5 y 10. Es el mismo efecto que si escribimos las restricciones x>5 y x<10. Sin embargo, si

queremos que esta variable oscile entre los valores -5 y 10, y tenemos marcada la casilla

Variables assumed non-negative, no se puede hacer incorporando las restricciones x>-5 y

x<10, pero sí es válido escribiendo @BND (-5, x, 10).

3.3.4 Operadores Lógicos

LINGO tiene a su disposición una lista de operadores lógicos, usados para construir una afirmación

que deba ser clasificada como verdadera o falsa de forma inmediata. De todas formas, vamos a

enumerarlos en una lista, aunque en nuestro proyecto no aparecerán.

Tabla 3–3. Lista de operadores lógicos de la herramienta LINGO

Operador Significado

#EQ# Igual

#NE# No igual

#GE# Mayor o igual

#GT# Mayor

#LT# Menor

#LE# Menor o igual

#AND# Y

#OR# O (inclusivo)

#NOT# No

Page 50: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción del Problema

28

3.3.5 Interpretación de la solución

Vamos a presentar un ejemplo, para aclarar todos los conceptos y las formas de sintaxis que

acabamos de explicar, y además, aclarar sobre el mismo la interpretación de la solución que

proporciona LINGO.

Ejemplo: Supongamos que disponemos de una fábrica que realiza trofeos deportivos. Realizamos

trofeos de fútbol, baloncesto, atletismo y tenis. Cada trofeo necesita varios materiales para su

fabricación: madera para la base, acero para el resto y oro para los embellecedores. Además, se

conocen las horas de mano de obra que requiere cada trofeo. Los datos:

Tabla 3–4. Lista de operadores lógicos de la herramienta LINGO

Madera (kg) Acero (kg) Oro (kg) Mano de obra (horas)

Fútbol 0.4 0.6 0.2 2.2

Baloncesto 0.5 0.3 0.1 1.7

Atletismo 0.6 0.3 0.1 1.2

Tenis 0.4 0.45 0.15 1.3

Por otra parte, la empresa dispone de 55 kg de madera, 39 kg de acero, 23 kg de oro y 175 horas de

mano de obra, y los ingresos que obtiene son de 7.20€ por cada trofeo de fútbol, 4.50€ por cada

trofeo de baloncesto, 4.80€ por cada uno de atletismo y 6€ por cada uno de tenis.

Se necesita determinar la producción que maximiza los ingresos.

Primero, vamos a construir el modelo de forma matemática. Llamamos a las variables:

F número de trofeos de fútbol fabricados.

B número de trofeos de baloncesto fabricados.

A número de trofeos de atletismo fabricados.

T número de trofeos de tenis fabricados

Las restricciones que tenemos en el problema son:

Madera: 0.4F + 0.5B + 0.6A + 0.4T ≤ 55

Acero: 0.6F + 0.3B + 0.3A + 0.45T ≤ 39

Oro: 0.2F + 0.1B + 0.1A + 0.15T ≤ 23

Page 51: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

29 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

Mano de obra: 2.2F + 1.7B + 1.2A + 1.3T ≤ 175

No debemos olvidar que las variables no pueden tomar valores negativos: F, B, A, T ≥0

La función objetivo, que representa los ingresos, tiene la forma:

I = 7.20F + 4.50B + 4.80A + 6T

Escribiendo el modelo completo en LINGO (obviamos las restricciones de las variables mayores o

iguales que cero pues tenemos marcada la casilla de variables assumed non-negative)

[Ingresos] Max = 7.20*F+4.50*B+4.80*A+6*T;

[Madera] 0.4*F+0.5*B+0.6*A+0.4*T<55;

[Acero] 0.6*F+0.3*B+0.3*A+0.45*T<39;

[Oro] 0.2*F+0.1*B+0.1*A+0.15*T<23;

[Mano_de_obra] 2.2*F+1.7*B+1.2*A+1.3*T<175;

Resolviendo, LINGO nos proporciona:

Global optimal solution found.

Objective value: 568.8000

Total solver iterations: 2

Variable Value Reduced Cost

F 0.000000 0.4800000

B 0.000000 0.6000000E-01

A 61.00000 0.000000

T 46.00000 0.000000

Row Slack or Surplus Dual Price

INGRESOS 568.8000 1.000000

MADERA 0.000000 2.400000

ACERO 0.000000 11.20000

ORO 10.00000 0.000000

MANO_DE_OBRA 42.00000 0.000000

LINGO nos muestra dos tablas:

En la primera, la columna “value” contiene el valor óptimo de cada variable, mientras que

“reduced cost” indica lo que empeoraría la función objetivo (disminuiría si es de maximizar o

aumentaría si es de minimizar) si en vez de exigir que las variables fueran ≥ 0 hubiéramos indicado

que fueran ≥ 1. En este caso por ejemplo, vemos que no interesa hacer trofeos de fútbol, pero si

tuviéramos que hacer uno obligatoriamente, nuestra función objetivo disminuiría 0.48€. Ídem para

baloncesto. Las variables atletismo y tenis tienen 0 de coste reducido ya que a ellas no les influye

que A ≥ 1 y/o T ≥ 1.

En la segunda tabla, los ingresos (función objetivo) muestra el valor óptimo. Para las restricciones,

“slack or surprise” muestra la variable de holgura de la restricción correspondiente, es decir, la

diferencia entre el valor que toma la restricción y el valor máximo o mínimo que puede tomar.

Page 52: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción del Problema

30

La columna “dual price” indica lo que mejoraría la función objetivo (aumentaría si es de maximizar

o disminuiría si es de minimizar) por cada unidad que pudiéramos aumentar el término

independiente de cada restricción correspondiente.

Page 53: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

31

4 DESCRIPCIÓN DE LA SOLUCIÓN

n general, una solución es el hecho de resolver una duda o dificultad. Aplicando este concepto

al campo matemático, podemos afirmar que una solución es el resultado que satisface las

condiciones planteadas en un problema o en una ecuación. Centrando la definición en el campo

de la optimización, una solución es el valor seleccionado con respecto a unos criterios de entre un

grupo de elementos disponibles.

E

Yo soy yo y mi circunstancia, y si no la salvo a ella

no me salvo yo.

-José Ortega y Gasset -

Page 54: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

32

4.1. Introducción

En este proyecto, vamos a partir de la hipótesis general que el individuo decisor, tiene ante sí un

problema en el que hay un conjunto de objetivos, y aunque sean incompatibles entre ellos, no es

recomendable ignorar ninguno. Esto se debe a que en menor o mayor medida, todos tienen un peso

importante en el balance final del problema. Sin embardo, conforme vamos avanzando en la

solución, nos vamos enfrentando a situaciones en las que debemos tomar una decisión, teniendo en

cuenta las consecuencias de la misma.

Además, por lo general, la solución final no podrá ser la óptima para cada una de las funciones

objetivo por separado, pues no es posible alcanzar este reto. De ahí principalmente surge el carácter

subjetivo de este tipo de problemas, en los que hay que acertar con la elección de las prioridades en

los objetivos. En consecuencia, se garantiza que estos problemas son mucho más realistas que los

problemas de decisión clásicos.

Para solucionar un problema de decisión multicriterio, existen varios enfoques.

Conjunto continuo de alternativas:

o Optimización

Programación multiobjetivo

Programación por compromiso

o Satisfacción

Programación por metas

Conjunto discreto de alternativas:

o Teoría de la utilidad multi-atributo

o Proceso analítico jerárquico

o Métodos de sobre-clasificación

Nosotros centraremos nuestros esfuerzos en aquellos métodos que más se ajustan a nuestro problema

y así, pretendemos abordar una solución de calidad notable, explicando los métodos de forma teórica

y aplicando los mismos de forma práctica al caso que nos concierne. Los métodos que vamos a

emplear son la Programación por Metas Ponderadas, la Programación por Compromiso y la

Programación por Metas. La elección de estos métodos se debe a la adecuación de los mismos para

los decisores. Tras entrevistarnos con ellos, se justificó que eran los que más se ajustan a sus

necesidades.

Page 55: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

33 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

4.2. Optimización de las salidas de forma individual

Este apartado está dedicado a la presentación de los códigos de Lingo sobre cada una de las

funciones de salida, estudiándolas de forma individual, y las respectivas soluciones que proporciona

la herramienta para cada una de ellas. Para resolverlo, hemos usado el solver no lineal LINGO con

optimización global, lo cual supone un resultado bastante bueno a nuestros problemas.

4.2.1 Antes de la extrusión

4.2.1.1 Tamaño

Figura 4-1. Código de Lingo optimizando la función tamaño antes de la

extrusión.

Tabla 4–1. Solución de la herramienta Lingo a la función tamaño antes de la extrusión

Variable Value Reduced Cost

VSLOG 2.792200 0.000000

CH 0.000000 180.8688

AEA 0.000000 90.74120

DR 1.000000 -76.91383

EA 1.000000 -243.5843

TE 1.000000 -202.4874

Row Slack or Surplus Dual Price

1 619.7264 -1.000000

2 0.000000 -1426.973

Global optimal solution found.

Objective value: 619.7264

Extended solver steps: 1

Total solver iterations: 20

Page 56: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

34

4.2.1.2 Índice de polidispersión

Figura 4-2. Código de Lingo optimizando la función IP antes de la extrusión.

Tabla 4–2. Solución de la herramienta Lingo a la función IP antes de la extrusión

Variable Value Reduced Cost

CH 0.000000 0.4110000

AEA 1.000000 -0.2010000

DR 0.000000 0.2720000

EA 0.000000 0.3900000

TE 0.000000 0.3790000

Row Slack or Surplus Dual Price

1 -0.9800000E-01 -1.000000

Global optimal solution found.

Objective value: -0.9800000E-01

Extended solver steps: 1

Total solver iterations: 32

Page 57: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

35 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

4.2.1.3 Potencial Zeta

Figura 4-3. Código de Lingo optimizando la función ZetaPot antes de la extrusión.

Tabla 4–3. Solución de la herramienta Lingo a la función ZetaPot antes de la extrusión

Variable Value Reduced Cost

CH 1.000000 -1.145000

AEA 1.000000 -0.3366000

DR 1.000000 -1.211600

EA 0.000000 2.494000

TE 0.000000 0.2100000E-01

Row Slack or Surplus Dual Price

1 6.762800 -1.000000

Global optimal solution found.

Objective value: 6.762800

Extended solver steps: 1

Total solver iterations: 18

Page 58: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

36

4.2.1.4 Eficacia de encapsulación

Figura 4-4. Código de Lingo optimizando la función EE antes de la extrusión.

Tabla 4–4. Solución de la herramienta Lingo a la función EE antes de la extrusión

Variable Value Reduced Cost

CH 1.000000 -23.83200

AEA 1.000000 -3.920000

DR 1.000000 -9.142000

EA 1.000000 -23.12000

TE 0.000000 4.980000

Row Slack or Surplus Dual Price

1 81.41200 1.000000

Global optimal solution found.

Objective value: 81.41200

Extended solver steps: 1

Total solver iterations: 23

Page 59: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

37 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

4.2.2 Después de la extrusión

4.2.2.1 Tamaño

Figura 4-5. Código de Lingo optimizando la función tamaño después de la extrusión.

Tabla 4–5. Solución de la herramienta Lingo a la función tamaño después de la extrusión

Variable Value Reduced Cost

VSLOG 2.157760 0.000000

CH 0.000000 2.152232

AEA 1.000000 -9.771132

DR 1.000000 -7.267921

EA 1.000000 -20.34687

TE 1.000000 -13.83388

Row Slack or Surplus Dual Price

1 143.8004 -1.000000

2 0.000000 -331.1126

Global optimal solution found.

Objective value: 143.8004

Extended solver steps: 1

Total solver iterations: 15

Page 60: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

38

4.2.2.2 Índice de polidispersión

Figura 4-6. Código de Lingo optimizando la función IP después de la extrusión.

Tabla 4–6. Solución de la herramienta Lingo a la función IP después de la extrusión

Variable Value Reduced Cost

CH 0.000000 0.2096000E-01

AEA 1.000000 -0.1330000E-01

DR 1.000000 -0.1042000E-01

EA 1.000000 -0.4370000E-01

TE 1.000000 -0.1949000E-01

Row Slack or Surplus Dual Price

1 0.1337900 -1.000000

Global optimal solution found.

Objective value: 0.1337900

Extended solver steps: 1

Total solver iterations: 17

Page 61: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

39 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

4.2.2.3 Potencial Zeta

Figura 4-7. Código de Lingo optimizando la función ZetaPot después de la extrusión.

Tabla 4–7. Solución de la herramienta Lingo a la función ZetaPot después de la extrusión

Variable Value Reduced Cost

CH 0.000000 1.922000

AEA 1.000000 -3.450000

DR 1.000000 -2.333000

EA 0.000000 12.57000

TE 1.000000 -6.430000

Row Slack or Surplus Dual Price

1 -0.9630000 -1.000000

Global optimal solution found.

Objective value: -0.9630000

Extended solver steps: 1

Total solver iterations: 22

Page 62: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

40

4.2.2.4 Eficacia de encapsulación

Figura 4-8. Código de Lingo optimizando la función EE después de la extrusión.

Tabla 4–8. Solución de la herramienta Lingo a la función EE después de la extrusión

Variable Value Reduced Cost

CH 0.000000 0.7600000

AEA 0.000000 0.9310000

DR 1.000000 -0.8340000

EA 0.000000 1.646000

TE 1.000000 -1.560000

Row Slack or Surplus Dual Price

1 5.922000 1.000000

Global optimal solution found.

Objective value: 5.922000

Extended solver steps: 2

Total solver iterations: 76

Page 63: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

41 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

A modo de resumen, compilamos todos los resultados de las ecuaciones individuales. También

añadimos el valor de cada una de las funciones objetivo para esos puntos.

Tabla 4–9. Resumen de los resultados de las ecuaciones

ANTES DE LA EXTRUSIÓN DESPUÉS DE LA EXTRUSIÓN

Size antes (f1)

Ch = 0

AEA = 0

Dr = 1

EA = 1

TE = 1

Size_antes* = 619.7264

Size después

(f5)

Ch = 0

AEA = 1

Dr = 1

EA = 1

TE = 1

Size_después* = 143.8004

IP antes (f2)

Ch = 0

AEA = 1

Dr = 0

EA = 0

TE = 0

IP_antes* = -0.098

IP después (f6)

Ch = 0

AEA = 1

Dr = 1

EA = 1

TE = 1

IP_después* = 0.13379

ZetaPot antes

(f3)

Ch = 1

AEA = 1

Dr = 1

EA = 0

TE = 0

ZetaPot_antes* = 6.7628

ZetaPot

después (f7)

Ch = 0

AEA = 1

Dr = 1

EA = 0

TE = 1

ZetaPot_después* = -0.963

EE antes (f4)

Ch = 1

AEA = 1

Dr = 1

EA = 1

TE = 0

EE_antes* = 81.412

EE después

(f8)

Ch = 0

AEA = 0

Dr = 1

EA = 0

TE = 1

EE_después* = 5.922

Page 64: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

42

4.3. Programación Multiobjetivo

4.3.1 Introducción

La programación multiobjetivo, como ya hemos explicado, se enfrenta al problema de optimizar

simultáneamente varios objetivos sujetos a un conjunto de restricciones. Desde un punto de vista

operativo, no podemos definir un óptimo para todos y cada uno de los objetivos, así que la

programación multiobjetivo establece el conjunto de soluciones eficientes, también llamadas de

Pareto óptimas.

4.3.2 Conceptos introducidos por Pareto

En el año 1896, Vilfredo Pareto introdujo un criterio de optimimalidad que con el tiempo recibió su

nombre y es considerado crucial en teoría de decisión, sobre todo económica. En su planteamiento

original, Pareto consideraba que un conjunto se encuentra en su estado óptimo si ninguna elemento

de ese conjunto puede mejorar su situación sin que empeore la de otro elemento perteneciente al

mismo grupo.

Este criterio se puede transferir de forma directa de la economía al análisis multicriterio, de forma

que el conjunto sea un grupo de objetivos, y los elementos pertenecientes al grupo sean los criterios

que formen el problema.

Con ello, el concepto de óptimo de Pareto dentro del campo multicriterio puede definirse afirmando

que un conjunto de soluciones es eficiente (de Pareto óptimas) cuando la componen soluciones

admisibles (factibles), tales que no existe otra solución admisible que proporcione una mejora en uno

de los objetivos sin producir un empeoramiento en al menos otro de ellos.

Ejemplo: Imaginemos que tenemos un problema de planificación financiera, donde intervienen tres

criterios: maximizar la expansión (E), maximizar el dividendo (D) y maximizar la solvencia (S).

Tenemos, además, tres posibles soluciones: A (250, 40, 1.5), B (150, 40, 1.5), C (150, 60, 1.25).

Si las analizamos, vemos que la solución A domina a la B (A es mejor o igual que B en todos los

criterios). A su vez, A no domina a C (la solución A no es mejor o igual que la C en todos los

criterios. Si hacemos este mismo análisis básico con todas las combinaciones, llegamos a la

siguiente conclusión:

Las soluciones A y C son soluciones eficientes, mientras que la B no lo es.

Page 65: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

43 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

Volviendo a nuestro problema, del conjunto de respuestas del sistema con datos reales, podemos

extraer un conjunto de soluciones eficiente tomando los puntos que determinan los óptimos de cada

uno de los objetivos por separado, ya que ninguno de ellos consigue mejorar (es imposible, pues son

los óptimos de las respuestas aisladas) sin empeorar ninguno de los otros objetivos.

Para poder asegurarlo, determinamos los valores del resto de salidas tomando como origen estos

puntos óptimos de las funciones aisladas, y comprobamos que en todos ellos se produce un

empeoramiento de los valores del resto. Para ello, adjuntamos la siguiente tabla, donde se colocan los

valores óptimos de las salidas separadas en la diagonal principal, tanto el valor de la función objetivo

como el valor de las variables de entrada, en el siguiente orden: Ch, AEA, Dr, EA, TE.

Tabla 4–10. Conjunto de soluciones eficientes

f1 f2 f3 f4 f5 f6 f7 f8

An

tes

de

la e

xtr

usi

ón

Size (f1)

min

619.73

0,0,1,1,1

0.358 15.73 62.24 153.91 0.147 16.717 4.276

IP (f2)

min

1148.42 -0.098

0,1,0,0,0

8.39 42.62 174.48 0.1851 9.5 4.521

ZetaPot

(f3) min

1034.9 0.85 6.763

1,1,1,0,0

58.29 166.87 0.18 8.619 4.564

EE (f4)

MAX

922.996 0.95 9.2568 81.412

1,1,1,1,0

164.03 0.1683 5.709 4.805

Des

pu

és d

e la

extr

usi

ón

Size (f5)

min

717.38 0.329 14.71 56.05 143.8

0,1,1,1,1

0.134 11.607 2.802

IP (f6)

min

717.38 0.329 14.71 56.05 143.8 0.134

0,1,1,1,1

11.607 2.802

ZetaPot

(f7) min

1062.8 0.793 8.44 39.36 165.66 0.177 -0.963

0,1,1,0,1

4.991

EE (f8)

MAX

918.12 0.994 9.106 44.4 180.33 0.19 2.487 5.922

0,0,1,0,1

Todos los enfoques multicriterio buscan obtener soluciones eficientes tal y como acabamos de ver.

Además, en cualquier enfoque de programación multiobjetivo, un primer paso consiste en obtener el

conjunto de soluciones factibles y eficientes. Esto es, el conjunto de soluciones posibles se divide

Page 66: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

44

entre aquellas soluciones factibles no eficientes y las que son a la vez factibles y eficientes. Una vez

hecho esto, establecemos las preferencias del individuo decisor cuya finalidad no es otra que obtener

un compromiso entre lo factible y lo eficiente.

4.3.3 Normalización y ponderación preferencial de los criterios

Existe una amplia variedad de métodos multicriterio en los que normalizar los diferentes criterios es

fundamental para el desarrollo del problema. Al normalizar, satisfacemos tres necesidades

principalmente:

En la mayor parte de los problemas, los diferentes criterios no se miden en las mismas

unidades. Así, comparar dos criterios con unidades totalmente distintas carece por completo

de sentido.

Los valores que pueden alcanzar los distintos criterios pueden no tener en absoluto que ver

con el resto, por lo tanto, necesitamos equipararlos en cuanto a magnitud para poder ver

cuánto de bueno o de malo es el valor que analizamos. Además, en el desarrollo del

problema, la solución tenderá a aquellos criterios con un mayor valor.

En nuestro caso, se dan ambas circunstancias, por lo que es imprescindible esta normalización. Acto

seguido, pasaremos a explicar los pasos para poder realizarlo de una forma adecuada.

4.3.3.1 Normalización de los criterios

Un posible método para normalizar los objetivos, además de ser el más simple, consiste en dividir los

valores que alcanza el criterio por su mejor valor. El mejor valor es el más alto si el objetivo trata de

maximizar, y el más pequeño si trata de minimizar.

Una segunda posibilidad consiste en dividir los valores que alcanza el criterio por el recorrido,

entendiendo recorrido la diferencia entre el mejor valor y el peor de ese objetivo.

Sin embargo, en algunos métodos, lo ideal es que los valores normalizados estén acotados en el

intervalo [0, 1]. Para conseguirlo hacemos una distinción entre los objetivos que tenemos que

maximizar y los que debemos minimizar.

Page 67: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

45 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

𝑀𝐴𝑋𝐼𝑀𝐼𝑍𝐴𝑅: 𝑉𝑎𝑙𝑜𝑟 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑑𝑜 =𝑚𝑒𝑗𝑜𝑟 𝑣𝑎𝑙𝑜𝑟 − 𝑣𝑎𝑙𝑜𝑟 𝑒𝑠𝑡𝑢𝑑𝑖𝑎𝑑𝑜

𝑚𝑒𝑗𝑜𝑟 𝑣𝑎𝑙𝑜𝑟 − 𝑝𝑒𝑜𝑟 𝑣𝑎𝑙𝑜𝑟

(4–1)

𝑀𝐼𝑁𝐼𝑀𝐼𝑍𝐴𝑅: 𝑉𝑎𝑙𝑜𝑟 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑑𝑜 =𝑣𝑎𝑙𝑜𝑟 𝑒𝑠𝑡𝑢𝑑𝑖𝑎𝑑𝑜 − 𝑚𝑒𝑗𝑜𝑟 𝑣𝑎𝑙𝑜𝑟

𝑝𝑒𝑜𝑟 𝑣𝑎𝑙𝑜𝑟 − 𝑚𝑒𝑗𝑜𝑟 𝑣𝑎𝑙𝑜𝑟

(4–2)

Conviene destacar que con este sistema, el valor normalizado es 0 cuando el objetivo alcanza el

mejor valor, y 1 cuando alcanza el peor. Mientras más cercano esté a 0, mejor será ese valor, y a su

vez, peor cuánto más cerca lo esté de 1. Aplicamos estos conceptos a nuestro conjunto de soluciones

eficientes.

𝑆𝑖𝑧𝑒_𝑎𝑛𝑡𝑒𝑠 =

(

619.73 − 619.73

1148.42 − 619.73= 0;

1148.42 − 619.73

1148.42 − 619.73= 1;

1034.9 − 619.73

1148.42 − 619.73= 0.79;

922.996 − 619.73

1148.42 − 619.73= 0.57;

717.38 − 619.73

1148.42 − 619.73= 0.18;

717.38 − 619.73

1148.42 − 619.73= 0.18;

1062.8 − 619.73

1148.42 − 619.73= 0.84;

918.12 − 619.73

1148.42 − 619.73= 0.56 )

(4–3)

𝐼𝑃_𝑎𝑛𝑡𝑒𝑠 =

(

0.358 − (−0.098)

0.994 − (−0.098)= 0.42;

−0.098 − (−0.098)

0.994 − (−0.098)= 0;

0.85 − (−0.098)

0.994 − (−0.098)= 0.87;

0.95 − (−0.098)

0.994 − (−0.098)= 0.96;

0.329 − (−0.098)

0.994 − (−0.098)= 0.39;

0.329 − (−0.098)

0.994 − (−0.098)= 0.39;

0.793 − (−0.098)

0.994 − (−0.098)= 0.82;

0.994 − (−0.098)

0.994 − (−0.098)= 1

)

(4–4)

Page 68: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

46

𝑍𝑒𝑡𝑎𝑃𝑜𝑡_𝑎𝑛𝑡𝑒𝑠 =

(

15.73 − 6.763

15.73 − 6.763= 1;

8.39 − 6.763

15.73 − 6.763= 0.18;

6.763 − 6.763

15.73 − 6.763= 0;

9.26 − 6.763

15.73 − 6.763= 0.28;

14.71 − 6.763

15.73 − 6.763= 0.87;

14.71 − 6.763

15.73 − 6.763= 0.87;

8.44 − 6.763

15.73 − 6.763= 0.19;

9.106 − 6.763

15.73 − 6.763= 0.26 )

(4–5)

𝐸𝐸_𝑎𝑛𝑡𝑒𝑠 =

(

81.412 − 62.24

81.412 − 39.36= 0.46;

81.412 − 42.62

81.412 − 39.36= 0.92;

81.412 − 58.29

81.412 − 39.36= 0.55;

81.412 − 81.412

81.412 − 39.36= 0;

81.412 − 56.05

81.412 − 39.36= 0.6;

81.412 − 56.05

81.412 − 39.36= 0.6;

81.412 − 39.36

81.412 − 39.36= 1;

81.412 − 44.4

81.412 − 39.36= 0.88 )

(4–6)

𝑆𝑖𝑧𝑒_𝑑𝑒𝑠𝑝𝑢𝑒𝑠 =

(

153.91 − 143.8

180.33 − 143.8= 0.28;

174.48 − 143.8

180.33 − 143.8= 0.84;

166.87 − 143.8

180.33 − 143.8= 0.63;

164.03 − 143.8

180.33 − 143.8= 0.55;

143.8 − 143.8

180.33 − 143.8= 0;

143.8 − 143.8

180.33 − 143.8= 0;

165.66 − 143.8

180.33 − 143.8= 0.6;

180.33 − 143.8

180.33 − 143.8= 1 )

(4–7)

𝐼𝑃_𝑑𝑒𝑠𝑝𝑢𝑒𝑠 =

(

0.147 − 0.134

0.19 − 0.134= 0.23;

0.1851 − 0.134

0.19 − 0.134= 0.91;

0.18 − 0.134

0.19 − 0.134= 0.82;

0.1683 − 0.134

0.19 − 0.134= 0.61;

0.134 − 0.134

0.19 − 0.134= 0;

0.134 − 0.134

0.19 − 0.134= 0;

0.177 − 0.134

0.19 − 0.134= 0.77;

0.19 − 0.134

0.19 − 0.134= 1 )

(4–8)

Page 69: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

47 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

𝑍𝑒𝑡𝑎𝑃𝑜𝑡𝑑𝑒𝑠𝑝𝑢𝑒𝑠 =

(

16.717 − (−0.963)

16.717 − (−0.963)= 1;

9.5 − (−0.963)

16.717 − (−0.963)= 0.59;

8.619 − (−0.963)

16.717 − (−0.963)= 0.54;

5.709 − (−0.963)

16.717 − (−0.963)= 0.38;

11.607 − (−0.963)

16.717 − (−0.963)= 0.71;

11.607 − (−0.963)

16.717 − (−0.963)= 0.71;

−0.963 − (−0.963)

16.717 − (−0.963)= 0;

2.487 − (−0.963)

16.717 − (−0.963)= 0.2

)

(4–9)

𝐸𝐸_𝑑𝑒𝑠𝑝𝑢𝑒𝑠 =

(

5.922 − 4.276

5.922 − 2.802= 0.53;

5.922 − 4.521

5.922 − 2.802= 0.45;

5.922 − 4.564

5.922 − 2.802= 0.44;

5.922 − 4.805

5.922 − 2.802= 0.36;

5.922 − 2.802

5.922 − 2.802= 1;

5.922 − 2.802

5.922 − 2.802= 1;

5.922 − 4.991

5.922 − 2.802= 0.3;

5.922 − 5.922

5.922 − 2.802= 0 )

(4–10)

4.3.3.2 Ponderación preferencial de los criterios

La primera acción que debemos realizar es clasificar los criterios por orden de importancia. En

nuestro caso, tenemos 8 criterios. Para este estudio, preguntamos en la facultad de farmacia a los

responsables de los experimentos sobre los que versa el proyecto y nos indicaron el orden de

importancia de las distintas salidas, así como la importancia relativa de las mismas. Para extraer unas

conclusiones y unos valores acertados sobre la ponderación de criterios, vamos a estudiar dos

métodos distintos. El primero de ellos es un método general, en el que hay que establecer un orden

de importancia, y en el segundo, propuesto por Saaty, ya intervienen las preferencias relativas entre

los criterios.

Para el general, si tenemos n criterios, hay que asignarle el número 1 al que consideremos más

importante, el 2 al siguiente criterio en importancia, y así hasta completar los n objetivos que

tengamos. Los pesos se obtienen con la siguiente fórmula [1]:

𝑊𝑗 =

1𝑟𝑗

∑1𝑟𝑗

𝑛𝑖=1

(4–11)

Page 70: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

48

Siendo: 𝑟𝑗 el lugar o posición de importancia que ocupa el criterio j-ésimo.

𝑊𝑗 el peso final de ese criterio j-ésimo.

n el número de objetivos que intervienen.

Ordenamos por importancia los distintos objetivos:

Figura 4-9. Preferencias en la salida del sistema.

Hay que señalar que los números que aparecen en la figura son la importancia de cada uno de los

criterios en el sistema global, no teniendo nada que ver con el número de cada una de las funciones

objetivo que actúan como salidas. Aplicando la fórmula (3-11) a nuestro problema, y teniendo en

cuenta el esquema de importancia que acabamos de presentar, tenemos los siguientes valores:

𝑊1 =

14

11 +

11 +

12 +

12 +

12 +

13 +

14 +

14

= 0.058 (𝑆𝑖𝑧𝑒_𝑎𝑛𝑡𝑒𝑠)

𝑊2 =

14

11 +

11 +

12 +

12 +

12 +

13 +

14 +

14

= 0.058 (𝐼𝑃_𝑎𝑛𝑡𝑒𝑠)

𝑊3 =

12

11+11+12+12+12+13+14+14

= 0.115 (𝑍𝑒𝑡𝑎𝑃𝑜𝑡_𝑎𝑛𝑡𝑒𝑠)

𝑊4 =

13

11 +

11 +

12 +

12 +

12 +

13 +

14 +

14

= 0.077 (𝐸𝐸_𝑎𝑛𝑡𝑒𝑠)

𝑊5 =

12

11 +

11 +

12 +

12 +

12 +

13 +

14 +

14

= 0.115 (𝑆𝑖𝑧𝑒_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

1. EE después

1. ZetaPot

después

2. IP después

2. Size desp.

2. ZetaP antes

3. EE antes 4. Size antes

4. IP antes

Page 71: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

49 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

𝑊6 =

12

11 +

11 +

12 +

12 +

12 +

13 +

14 +

14

= 0.115 (𝐼𝑃_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

𝑊7 =

11

11 +

11 +

12 +

12 +

12 +

13 +

14 +

14

= 0.231 (𝑍𝑒𝑡𝑎𝑃𝑜𝑡_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

𝑊7 =

11

11 +

11 +

12 +

12 +

12 +

13 +

14 +

14

= 0.231 (𝐸𝐸_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

Es de vital importancia reseñar que la suma de todos los pesos es igual a la unidad. Esto nos será de

gran utilidad para la interpretación de los pesos en el momento que necesitemos tomar decisiones.

Tabla 4–11. Pesos (importancia) de las salidas del sistema (método básico).

𝑊1 = 0.058 𝑊5 = 0.115

𝑊2 = 0.058 𝑊6 = 0.115

𝑊3 = 0.115 𝑊7 = 0.231

𝑊4 = 0.077 𝑊8 = 0.231

Si bien es cierto que este procedimiento, a la par de simple, es bastante válido, tiene un aspecto

negativo. Gracias a él sabemos que el criterio i-ésimo es preferido al criterio j-ésimo, pero no

tenemos en absoluto en cuenta la intensidad con la que ese criterio i-ésimo es preferido al j-ésimo.

Para superar esta dificultad, Saaty constituye otro método, que además sirve como base de los

métodos de elección discreta, métodos que no veremos en el presente proyecto. Para este

procedimiento, Saaty sugiere comparar los objetivos de dos en dos con los siguientes valores

numéricos [2]:

1: los criterios tienen la misma importancia.

3: moderada importancia de un criterio sobre otro.

5: fuerte importancia.

7: demostrada importancia.

9: extrema importancia.

Con esta configuración propuesta por Saaty, la matriz resultante tiene propiedades recíprocas, es

decir, el elemento de la matriz 𝑎𝑖𝑗 =1

𝑎𝑗𝑖.

Page 72: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

50

Aplicamos a los datos de nuestro problema y nos queda:

Tabla 4–12. Matriz de comparación propuesta por Saaty.

Size

antes

IP

antes

ZetaPot

antes

EE

antes

Size

después

IP

después

ZetaPot

después

EE

después

Size

antes 1 1/5 1/7 1/7 1/9 1/9 1/9 1/9

IP

antes 5 1 1/5 1/7 1/9 1/9 1/7 1/9

ZetaPot

antes 7 5 1 1 1 1 1/9 1/3

EE

antes 7 7 1 1 1 1 1/7 1/9

Size

después 9 9 1 1 1 1 1 1/7

IP

después 9 9 1 1 1 1 1 1/3

ZetaPot

después 9 7 9 7 1 1 1 1

EE

después 9 9 3 9 7 3 1 1

A partir de esta matriz, necesitamos encontrar una combinación de pesos que resulte coherente con

estas preferencias que acabamos de describir. Para ello, podemos calcular la media geométrica de los

elementos de cada fila de la matriz de comparación, obteniendo:

𝑊1 = (1 ×1

5×1

7×1

7×1

9×1

9×1

9×1

9)1/8 = 0.168 (𝑆𝑖𝑧𝑒_𝑎𝑛𝑡𝑒𝑠)

𝑊2 = (5 × 1 ×1

5×1

7×1

9×1

9×1

7×1

9)1/8 = 0.270 (𝐼𝑃_𝑎𝑛𝑡𝑒𝑠)

𝑊3 = (7 × 5 × 1 × 1 × 1 × 1 ×1

9×1

3)1/8 = 1.033 (𝑍𝑒𝑡𝑎𝑃𝑜𝑡_𝑎𝑛𝑡𝑒𝑠)

𝑊4 = (7 × 7 × 1 × 1 × 1 × 1 ×1

7×1

9)1/8 = 0.969 (𝐸𝐸_𝑎𝑛𝑡𝑒𝑠)

Page 73: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

51 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

𝑊5 = (9 × 9 × 1 × 1 × 1 × 1 × 1 ×1

7)1/8 = 1.358 (𝑆𝑖𝑧𝑒_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

𝑊6 = (9 × 9 × 1 × 1 × 1 × 1 × 1 ×1

3)1/8 = 1.510 (𝐼𝑃_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

𝑊7 = (9 × 7 × 9 × 7 × 1 × 1 × 1 × 1)1/8 = 2.817(𝑍𝑒𝑡𝑎𝑃𝑜𝑡_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

𝑊8 = (9 × 9 × 3 × 9 × 7 × 3 × 1 × 1)1/8 = 3.826 (𝐸𝐸_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

Normalizando, para que la suma de los datos finales sea uno, basta con dividir cada uno entre la

suma de todos ellos (11.951), resultado:

𝑊1 = 0.014 (𝑆𝑖𝑧𝑒_𝑎𝑛𝑡𝑒𝑠)

𝑊2 = 0.023 (𝐼𝑃_𝑎𝑛𝑡𝑒𝑠)

𝑊3 = 0.086 (𝑍𝑒𝑡𝑎𝑃𝑜𝑡_𝑎𝑛𝑡𝑒𝑠)

𝑊4 = 0.081 (𝐸𝐸_𝑎𝑛𝑡𝑒𝑠)

𝑊5 = 0.114 (𝑆𝑖𝑧𝑒_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

𝑊6 = 0.126 (𝐼𝑃_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

𝑊7 = 0.236 (𝑍𝑒𝑡𝑎𝑃𝑜𝑡_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

𝑊8 = 0.32 (𝐸𝐸_𝑑𝑒𝑠𝑝𝑢𝑒𝑠)

Para resumir toda la información y cálculos realizados en este apartado de ponderación de criterios,

tanto del procedimiento básico, como del sugerido por Saaty, presentamos una tabla final.

Tabla 4–13. Pesos (importancia) del sistema (ambos métodos).

Método Básico Sugerido por Saaty

Size_antes 𝑊1 = 0.058 𝑊1 = 0.014

IP_antes 𝑊2 = 0.058 𝑊2 = 0.023

ZetaPot_antes 𝑊3 = 0.115 𝑊3 = 0.086

EE_antes 𝑊4 = 0.077 𝑊4 = 0.081

Size_despues 𝑊5 = 0.115 𝑊5 = 0.114

IP_despues 𝑊6 = 0.115 𝑊6 = 0.126

ZetaPot_despues 𝑊7 = 0.231 𝑊7 = 0.236

EE_despues 𝑊8 = 0.231 𝑊8 = 0.32

Page 74: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Descripción de la Solución

52

4.3.4 Tasa de intercambio de objetivos

Antes de pasar a otros enfoques para la resolución del problema completo, vamos a explicar de

forma teórica el concepto de tasa de intercambio de objetivos, aspecto fundamental en la

programación multiobjetivo. También se le conoce como trade-off, nombre que toma en inglés.

La tasa de intercambio mide el coste de oportunidad de un recurso. También se puede definir como

el sacrificio necesario en un cierto objetivo para compensar un incremento unitario en la realización

de otro.

Si tenemos dos soluciones eficientes A y B, la tasa de intercambio 𝑇𝑖𝑗 entre los objetivos i-ésimo y j-

ésimo viene expresada por:

𝑇𝑖𝑗 =𝑓𝑖(𝐴) − 𝑓𝑖(𝐵)

𝑓𝑗(𝐴) − 𝑓𝑗(𝐵)

(4–12)

Si la aplicamos a nuestro problema, y tomamos por ejemplo las funciones Size_antes (𝑓1) y

ZetaPot_antes (𝑓3) y los puntos A (0, 1, 0, 0, 0) y B (1, 1, 1, 0, 0), tenemos:

𝑓1(𝐴) = 1148.42; 𝑓1(𝐵) = 1034.9;

𝑓3(𝐴) = 8.39; 𝑓3(𝐵) = 6.763;

𝑇𝑖𝑗 =𝑓𝑖(𝐴) − 𝑓𝑖(𝐵)

𝑓𝑗(𝐴) − 𝑓𝑗(𝐵)

𝑐𝑜𝑛 𝑛𝑢𝑒𝑠𝑡𝑟𝑜𝑠 𝑑𝑎𝑡𝑜𝑠⇒ 𝑇13 =

1148.42 − 1034.9

8.39 − 6.763= 69.77

Page 75: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

53

5 MÉTODO DE RESOLUCIÓN DE

PROGRAMACIÓN POR COMPROMISO

n este quinto capítulo final vamos a proceder a resolver nuestro problema mediante la

Programación por Compromiso, método que explicaremos de forma teórica antes de resolverlo

aplicado a nuestro caso. Este método fue introducido por Zeleny en 1973, sirviendo de ayuda

al individuo decisor a elegir la solución óptima de entre un conjunto de soluciones eficientes.

La idea básica de este método es reducir la frontera de Pareto a una región más pequeña y asequible

para facilitar la tarea al decisor, basada en la idea de que cualquier sujeto elegirá aquella solución de

Pareto óptima que se encuentre más cerca del punto ideal.

E

No temáis a la grandeza; algunos nacen grandes,

algunos logran grandeza, a algunos la grandeza

les es impuesta y a otros la grandeza les queda

grande.

-William Shakespeare -

Page 76: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Método de resolución de Programación por Compromiso

54

5.1. Explicación del método general

Para empezar, Zeleny introduce el concepto de punto o alternativa ideal [3]. Las coordenadas de este

punto vienen dadas por los valores óptimos de los diferentes objetivos del problema, sirviendo como

punto de referencia para el individuo o conjunto de individuos decisores. Si fuera alcanzable, no

habría conflicto de objetivos y ya tendríamos la solución óptima que buscamos. Como no es lo

habitual, cuando no es posible alcanzar el punto ideal, el elemento óptimo o solución por

compromiso será aquella solución eficiente que se encuentre más próxima al punto ideal.

Dependiendo de la medida de distancia utilizada podremos establecer un conjunto de soluciones por

compromiso.

Aunque las coordenadas de la alternativa ideal vengan dadas por los valores óptimos de los distintos

objetivos, hay que obligar a la solución a cumplir las restricciones del problema. El punto ideal se

puede representar con el siguiente vector:

𝑓∗ = (𝑓1∗, … , 𝑓𝑖

∗, … , 𝑓𝑛∗)

𝑠𝑖𝑒𝑛𝑑𝑜 𝑓𝑖∗ 𝑒𝑙 ó𝑝𝑡𝑖𝑚𝑜 𝑑𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜 𝑖 − é𝑠𝑖𝑚𝑜

𝑠. 𝑎. 𝑥 ∈ �̌�

�̌� 𝑒𝑠 𝑒𝑙 𝑐𝑜𝑛𝑗𝑢𝑛𝑡𝑜 𝑑𝑒 𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛𝑒𝑠 𝑒𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑒𝑠

𝑛 𝑒𝑙 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜𝑠

Cuando el punto o alternativa ideal es inalcanzable (como ya hemos comentado, esto ocurrirá en la

gran mayoría de situaciones), la elección óptima o mejor solución por compromiso vendrá dada por

la solución eficiente más cercana al punto ideal, conociéndose esta regla como axioma de Zeleny.

Antes de pasar a describir el método, vamos a definir el grado de proximidad 𝑑𝑗, el cual se define

como la diferencia entre el objetivo j-ésimo y su ideal o valor ancla. De forma general, lo podemos

expresar como:

𝑑𝑗 = |𝑓𝑗∗ − 𝑓𝑗(x)| (5–1)

Si no queremos trabajar con valores absolutos (con esta fórmula general para el grado de proximidad,

es indiferente que las funciones objetivo sean de maximizar o minimizar), podemos descomponerla

en:

𝑑𝑗 = 𝑓𝑗

∗ − 𝑓𝑗(x) 𝑠𝑖 𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜 𝑒𝑠 𝑑𝑒 𝑚𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟

𝑑𝑗 = 𝑓𝑗(x) − 𝑓𝑗∗ 𝑠𝑖 𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜 𝑒𝑠 𝑑𝑒 𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟

𝑓𝑗∗ es 𝑒𝑙 ó𝑝𝑡𝑖𝑚𝑜 𝑑𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜 𝑗 − é𝑠𝑖𝑚𝑜

𝑓𝑗(x) es 𝑒𝑙 𝑣𝑎𝑙𝑜𝑟 𝑑𝑒 𝑙𝑎 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜 𝑒𝑛 𝑐𝑎𝑑𝑎 𝑐𝑎𝑠𝑜

Page 77: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

55 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

Como en numerosas ocasiones los objetivos no se miden en las mismas unidades, y además los

valores absolutos pueden ser muy diferentes, es recomendable normalizar los grados de proximidad

para que tenga sentido la comparación de los mismos. Para ello, en vez de usar la fórmula general

anterior, una forma de normalizarlo es usar la siguiente expresión:

𝑑𝑗 =|𝑓𝑗∗ − 𝑓𝑗(x)|

|𝑓𝑗∗ − 𝑓∗𝑗|

𝑓∗𝑗 es 𝑒𝑙 anti − ideal 𝑑𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜 𝑗 − é𝑠𝑖𝑚𝑜 (𝑒𝑙 𝑝𝑒𝑜𝑟 𝑣𝑎𝑙𝑜𝑟 𝑑𝑒 𝑒𝑠𝑒 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜)

(5–2)

Igual que antes, si no queremos trabajar con valores absolutos, podemos descomponerla:

𝑑𝑗 =𝑓𝑗∗ − 𝑓𝑗(x)

𝑓𝑗∗ − 𝑓∗𝑗

𝑠𝑖 𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜 𝑒𝑠 𝑑𝑒 𝑚𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟

𝑑𝑗 =𝑓𝑗(x) − 𝑓𝑗

𝑓∗𝑗 − 𝑓𝑗∗ 𝑠𝑖 𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜 𝑒𝑠 𝑑𝑒 𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟

Los valores del grado de proximidad normalizado están acotados entre 0 y 1. Cuando el objetivo

alcanza su valor ideal, el resultado es 0, así como cuando alcanza el peor es 1.

Una vez que tenemos definido el grado de proximidad 𝑑𝑗 debemos agregar todos los objetivos que

intervienen en nuestro problema. Para ello, representando por 𝑊𝑗 los pesos relativos a cada una de las

salidas del sistema (funciones objetivo), lo convertimos en el siguiente problema de optimización:

𝑀𝑖𝑛 𝐿𝑝 = [∑ 𝑊𝑗 [|𝑓𝑗∗ − 𝑓𝑗(x)|

|𝑓𝑗∗ − 𝑓∗𝑗|

]

𝑝𝑛

𝑗=1]

1/𝑝

𝑠. 𝑎. 𝑥 ∈ �̌�

𝑝 𝑟𝑒𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑎 𝑙𝑎 𝑚é𝑡𝑟𝑖𝑐𝑎 𝑞𝑢𝑒 𝑑𝑒𝑓𝑖𝑛𝑒 𝑙𝑎 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎

𝑝𝑟𝑜𝑏𝑙𝑒𝑚𝑎 𝑐𝑜𝑛 𝑛 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜𝑠

(5–3)

Para cada valor del parámetro p, tenemos una distancia en concreto. La distancia tradicional o

Euclídea se obtiene con el valor p = 2, así como la Manhattan con p = 1, correspondiendo siempre a

un punto extremo eficiente, dado el carácter lineal en los objetivos de la función 𝐿1.

Page 78: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Método de resolución de Programación por Compromiso

56

Para la métrica p = 1, el problema de optimización se simplifica bastante, obteniendo:

𝑀𝑖𝑛 𝐿1 =∑𝑊𝑗 |𝑓𝑗∗ − 𝑓𝑗(x)|

|𝑓𝑗∗ − 𝑓∗𝑗|

𝑛

𝑗=1

𝑠. 𝑎. 𝑥 ∈ �̌�

(5–4)

Para el valor p = ∞, minimizamos la máxima desviación de entre todas las individuales. Además,

para resolverlo, el modelo resultante es no lineal, pero convertimos las restricciones en lineales con

un pequeño truco, resultando:

𝑀𝑖𝑛 𝐿∞ = 𝑑

𝑊1 |𝑓1∗ − 𝑓1(x)|

|𝑓1∗ − 𝑓∗1|

≤ 𝑑

...

𝑊𝑗 |𝑓𝑗∗ − 𝑓𝑗(x)|

|𝑓𝑗∗ − 𝑓∗𝑗|

≤ 𝑑

...

𝑊𝑛 |𝑓𝑛∗ − 𝑓𝑛(x)|

|𝑓𝑛∗ − 𝑓∗𝑛|≤ 𝑑

𝑑 𝑟𝑒𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑎 𝑙𝑎 𝑑𝑒𝑠𝑣𝑖𝑎𝑐𝑖ó𝑛 𝑚á𝑠 𝑔𝑟𝑎𝑛𝑑𝑒.

(5–5)

(5–6)

Para obtener soluciones con métricas distintas, basta con ir variando el valor que ha de tomar p,

aunque necesitamos recurrir a métodos de resolución no lineal. Sin embargo, este problema se reduce

bastante si recurrimos al teorema propuesto por Yu. Este teorema demuestra que para problemas de

dos objetivos, las métricas p = 1 y p = ∞ constituyen los límites del conjunto compromiso

perteneciendo el resto de soluciones al conjunto de puntos delimitado por estas soluciones [4].

Teorema: Si los objetivos considerados en un programa multiobjetivo lineal son dos, las soluciones

compromiso además de monótonas con respecto a p, están acotadas por las soluciones extremas

correspondientes a las métricas p = 1 y p = ∞. (Yu, 1973).

Por lo tanto, si podemos hallar las soluciones compromiso asociadas a las distancias de métricas

p=1 y p=∞, tendremos los límites del conjunto compromiso para la clase entera 1 ≤ p ≤ ∞.

Page 79: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

57 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

5.2. Aplicación y resolución del método

Habiendo explicado la formulación general del problema para resolverlo por compromiso, vamos a

aplicar el procedimiento a nuestro problema, aunque no podremos llegar a la solución propuesta por

Yu ya que nuestro problema tiene más de 2 objetivos. Sin embargo, vamos a presentar la

formulación y pasaremos a ir resolviendo las distintas etapas. Para comenzar, nuestro problema,

escrito de forma general es el siguiente:

𝑀𝑖𝑛 𝐿𝑝 = [∑ 𝑊𝑗 [|𝑓𝑗∗ − 𝑓𝑗(x)|

|𝑓𝑗∗ − 𝑓∗𝑗|

]

𝑝8

𝑗=1]

1/𝑝

Lo primero que vamos a hacer es recordar los pesos de las funciones objetivo, así como señalar los

valores ideales y anti-ideales que nos harán falta para poder resolver el problema de optimización.

Como ya hemos presentado la tabla de matriz de pagos de Pareto, en el apartado 3.4.2. Conceptos

introducidos por Pareto, tabla 3-12. Conjunto de soluciones eficientes, donde vimos los valores

ideales (óptimos de las funciones objetivo de forma independiente) y los anti-ideales (peores valores

para las funciones), simplemente adjuntaremos una tabla con todos los datos. Nótese que se adjunta

en la tabla el valor de los pesos por los dos métodos que hemos visto, tanto el general como el

propuesto por Saaty.

Tabla 5–1. Datos de los objetivos para la programación por compromiso

Valor Ideal Valor anti-ideal Peso General Peso Saaty

f1: Size_antes 619.7264 1148.42 0.058 0.014

f2: IP_antes -0.098 0.994 0.058 0.023

f3: ZetaPot_antes 6.7628 15.73 0.115 0.086

f4: EE_antes 81.412 39.36 0.077 0.081

f5: Size_despues 143.8 180.33 0.115 0.114

f6: IP_despues 0.13379 0.19 0.115 0.126

f7: ZetaPot_despues -0.963 16.717 0.231 0.236

f8: EE_despues 5.922 2.802 0.231 0.32

Page 80: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Método de resolución de Programación por Compromiso

58

5.2.1 Resolución del problema con la métrica p = 1

Para resolver, recurrimos a LINGO igual que hicimos con las funciones objetivo de forma

individual. Vamos a presentar el modelo escrito en el programa y la solución que nos proporciona.

Código de LINGO del modelo de la programación por compromiso para métrica p = 1

min = L1;

L1 = w1*((z1 - z1ideal)/(z1antiideal - z1ideal))

+ w2*((z2 - z2ideal)/(z2antiideal - z2ideal))

+ w3*((z3 - z3ideal)/(z3antiideal - z3ideal))

+ w4*((z4ideal - z4)/(z4ideal - z4antiideal))

+ w5*((z5 - z5ideal)/(z5antiideal - z5ideal))

+ w6*((z6 - z6ideal)/(z6antiideal - z6ideal))

+ w7*((z7 - z7ideal)/(z7antiideal - z7ideal))

+ w8*((z8ideal - z8)/(z8ideal - z8antiideal));

w1 = 0.058;

w2 = 0.058;

w3 = 0.115;

w4 = 0.077;

w5 = 0.115;

w6 = 0.115;

w7 = 0.231;

w8 = 0.231;

z1ideal = 619.73;

z1antiideal = 1148.42;

z2ideal = -0.098;

z2antiideal = 0.994;

z3ideal = 6.76;

z3antiideal = 15.73;

z4ideal = 81.412;

z4antiideal = 39.36;

z5ideal = 143.8;

z5antiideal = 180.33;

z6ideal = 0.13379;

z6antiideal = 0.19;

z7ideal = -0.963;

z7antiideal = 16.717;

z8ideal = 5.922;

z8antiideal = 2.802;

z1 = 10^(VSlogantes);

VSlogantes = 3.02 + 0.077*Ch + 0.0401*AEA - 0.0362*Dr - 0.136*EA

+ 0.0831*TE - 0.105*Ch*AEA + 0.00995*Ch*Dr

+ 0.00905*AEA*Dr + 0.0863*Dr*EA + 0.0398*Ch*TE

+ 0.01444*AEA*TE - 0.104*Dr*TE - 0.121*EA*TE;

z2 = 0.103 + 0.411*Ch - 0.201*AEA + 0.272*Dr + 0.39*EA + 0.379*TE

+ 0.265*Ch*Dr + 0.172*AEA*EA - 0.462*Dr*EA

- 0.506*Ch*TE + 0.24*Dr*TE - 0.564*EA*TE;

z3 = 8.33 - 0.418*Ch + 0.0624*AEA - 0.0856*Dr + 2.85*EA + 0.499*TE

- 0.727*Ch*Dr - 0.399*AEA*Dr - 0.356*AEA*EA

- 0.516*Ch*TE - 0.325*AEA*TE + 0.363*Dr*TE + 3.77*EA*TE;

Page 81: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

59 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

z4 = 37.9 + 12*Ch + 4.72*AEA + 2.54*Dr + 7.75*EA + 1.68*TE

+ 3.32*Ch*AEA + 0.782*Ch*Dr - 2.97*AEA*Dr + 7.73*Ch*EA

- 1.15*AEA*EA + 8.79*Dr*EA - 3.45*Ch*TE - 6.79*AEA*TE

+ 2.28*Dr*TE + 1.3*EA*TE;

z5 = 10^(VSlogdespues);

VSlogdespues = 2.25 - 0.0179*Ch - 0.00826*AEA + 0.00655*Dr - 0.0237*EA

- 0.00438*TE + 0.0117*Ch*AEA - 0.00301*Ch*Dr

- 0.0167*AEA*Dr + 0.0246*Ch*EA + 0.00735*AEA*EA

- 0.0157*Dr*EA - 0.00889*Ch*TE - 0.0119*AEA*TE

+ 0.0039*Dr*TE - 0.0294*EA*TE;

z6 = 0.189 - 0.00552*Ch - 0.0039*AEA - 0.00102*Dr - 0.0214*EA

+ 0.00281*TE + 0.0111*Ch*Dr - 0.0094*AEA*Dr

+0.0094*Ch*EA + 0.00598*Ch*TE - 0.0223*EA*TE;

z7 = 7.38 + 0.332*Ch + 2.12*AEA - 0.943*Dr + 0.33*EA - 5.65*TE

+ 3.97*Ch*AEA - 1.15*Ch*Dr - 3.09*AEA*Dr - 1.58*Ch*EA

- 1.66*AEA*EA - 1.23*Ch*TE - 2.48*AEA*TE

+ 1.7*Dr*TE + 13.9*EA*TE;

z8 = 4.21 - 0.279*Ch + 0.311*AEA + 0.152*Dr - 0.595*EA + 0.878*TE

+ 0.726*Ch*AEA + 0.417*Ch*Dr - 0.973*AEA*Dr

+ 1.21*Ch*EA - 0.543*AEA*EA + 0.169*Dr*EA

- 0.898*Ch*TE - 0.269*AEA*TE + 0.682*Dr*TE

- 1.22*EA*TE;

@Free (z1);

@Free (z2);

@Free (z3);

@Free (z4);

@Free (z5);

@Free (z6);

@Free (z7);

@Free (z8);

@Free (z2ideal);

@Free (z7ideal);

@BND (0,Ch,1);

@BND (0,AEA,1);

@BND (0,Dr,1);

@BND (0,EA,1);

@BND (0,TE,1);

@GIN (Dr);

@GIN (EA);

@GIN (TE);

Tabla 5–2. Solución de la programación por compromiso con métrica p = 1

Global optimal solution found.

Objective value: 0.4216844

Extended solver steps: 2

Total solver iterations: 228

Variable Value Reduced Cost

L1 0.4216844 0.000000

W1 0.5800000E-01 0.000000

Z1 1064.991 0.000000

Z1IDEAL 619.7300 0.000000

Page 82: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Método de resolución de Programación por Compromiso

60

Z1ANTIIDEAL 1148.420 0.000000

W2 0.5800000E-01 0.000000

Z2 0.7996891 0.000000

Z2IDEAL -0.9800000E-01 0.000000

Z2ANTIIDEAL 0.9940000 0.000000

W3 0.1150000 0.000000

Z3 8.379443 0.000000

Z3IDEAL 6.760000 0.000000

Z3ANTIIDEAL 15.73000 0.000000

W4 0.7700000E-01 0.000000

Z4IDEAL 81.41200 0.000000

Z4 39.85783 0.000000

Z4ANTIIDEAL 39.36000 0.000000

W5 0.1150000 0.000000

Z5 165.3856 0.000000

Z5IDEAL 143.8000 0.000000

Z5ANTIIDEAL 180.3300 0.000000

W6 0.1150000 0.000000

Z6 0.1779449 0.000000

Z6IDEAL 0.1337900 0.000000

Z6ANTIIDEAL 0.1900000 0.000000

W7 0.2310000 0.000000

Z7 -0.8873734 0.000000

Z7IDEAL -0.9630000 0.000000

Z7ANTIIDEAL 16.71700 0.000000

W8 0.2310000 0.000000

Z8IDEAL 5.922000 0.000000

Z8 4.989662 0.000000

Z8ANTIIDEAL 2.802000 0.000000

VSLOGANTES 3.027346 0.3228641E-08

CH 0.3934787E-01 0.000000

AEA 1.000000 -0.4124126E-01

DR 1.000000 -0.6285474E-01

EA 0.000000 0.1394336

TE 1.000000 -0.1440844

VSLOGDESPUES 2.218498 0.000000

Row Slack or Surplus Dual Price

1 0.4216844 -1.000000

2 0.000000 -1.000000

3 0.000000 -0.8421962

4 0.000000 -0.8220597

5 0.000000 -0.1805399

6 0.000000 -0.9881616

7 0.000000 -0.5909018

8 0.000000 -0.7855339

9 0.000000 -0.4277523E-02

10 0.000000 -0.2988262

11 0.000000 0.1731189E-04

12 0.000000 0.9239319E-04

13 0.000000 0.9453158E-02

14 0.000000 0.4365275E-01

15 0.000000 0.1050618E-01

16 0.000000 0.2314552E-02

17 0.000000 -0.2167681E-04

18 0.000000 -0.1809400E-02

19 0.000000 0.1287890E-02

20 0.000000 0.1860204E-02

21 0.000000 0.4406901

22 0.000000 1.600173

23 0.000000 0.1300990E-01

24 0.000000 0.5588768E-04

25 0.000000 -0.5190977E-01

Page 83: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

61 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

26 0.000000 -0.2212637E-01

27 0.000000 -0.1097051E-03

28 0.000000 -0.2690224

29 0.000000 -0.5311355E-01

30 0.000000 -0.1282051E-01

31 0.000000 0.1831066E-02

32 0.000000 -0.3148097E-02

33 0.000000 -1.198841

34 0.000000 -2.045899

35 0.000000 -0.1306561E-01

36 0.000000 0.7403846E-01

5.2.2 Resolución del problema con la métrica p = 2

Código de LINGO del modelo de la programación por compromiso para métrica p = 2

min = L;

L = ((w1*((z1 - z1ideal)/(z1antiideal - z1ideal))^p)

+ (w2*((z2 - z2ideal)/(z2antiideal - z2ideal))^p)

+ (w3*((z3 - z3ideal)/(z3antiideal - z3ideal))^p)

+ (w4*((z4ideal - z4)/(z4ideal - z4antiideal))^p)

+ (w5*((z5 - z5ideal)/(z5antiideal - z5ideal))^p)

+ (w6*((z6 - z6ideal)/(z6antiideal - z6ideal))^p)

+ (w7*((z7 - z7ideal)/(z7antiideal - z7ideal))^p)

+ (w8*((z8ideal - z8)/(z8ideal - z8antiideal))^p))^(1/p);

p = 2;

w1 = 0.058;

w2 = 0.058;

w3 = 0.115;

w4 = 0.077;

w5 = 0.115;

w6 = 0.115;

w7 = 0.231;

w8 = 0.231;

z1ideal = 619.73;

z1antiideal = 1148.42;

z2ideal = -0.098;

z2antiideal = 0.994;

z3ideal = 6.76;

z3antiideal = 15.73;

z4ideal = 81.412;

z4antiideal = 39.36;

z5ideal = 143.8;

z5antiideal = 180.33;

z6ideal = 0.13379;

z6antiideal = 0.19;

z7ideal = -0.963;

z7antiideal = 16.717;

z8ideal = 5.922;

z8antiideal = 2.802;

z1 = 10^(VSlogantes);

VSlogantes = 3.02 + 0.077*Ch + 0.0401*AEA - 0.0362*Dr - 0.136*EA

+ 0.0831*TE - 0.105*Ch*AEA + 0.00995*Ch*Dr

Page 84: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Método de resolución de Programación por Compromiso

62

+ 0.00905*AEA*Dr + 0.0863*Dr*EA + 0.0398*Ch*TE

+ 0.01444*AEA*TE - 0.104*Dr*TE - 0.121*EA*TE;

z2 = 0.103 + 0.411*Ch - 0.201*AEA + 0.272*Dr + 0.39*EA + 0.379*TE

+ 0.265*Ch*Dr + 0.172*AEA*EA - 0.462*Dr*EA

- 0.506*Ch*TE + 0.24*Dr*TE - 0.564*EA*TE;

z3 = 8.33 - 0.418*Ch + 0.0624*AEA - 0.0856*Dr + 2.85*EA + 0.499*TE

- 0.727*Ch*Dr - 0.399*AEA*Dr - 0.356*AEA*EA

- 0.516*Ch*TE - 0.325*AEA*TE + 0.363*Dr*TE + 3.77*EA*TE;

z4 = 37.9 + 12*Ch + 4.72*AEA + 2.54*Dr + 7.75*EA + 1.68*TE

+ 3.32*Ch*AEA + 0.782*Ch*Dr - 2.97*AEA*Dr + 7.73*Ch*EA

- 1.15*AEA*EA + 8.79*Dr*EA - 3.45*Ch*TE - 6.79*AEA*TE

+ 2.28*Dr*TE + 1.3*EA*TE;

z5 = 10^(VSlogdespues);

VSlogdespues = 2.25 - 0.0179*Ch - 0.00826*AEA + 0.00655*Dr - 0.0237*EA

- 0.00438*TE + 0.0117*Ch*AEA - 0.00301*Ch*Dr

- 0.0167*AEA*Dr + 0.0246*Ch*EA + 0.00735*AEA*EA

- 0.0157*Dr*EA - 0.00889*Ch*TE - 0.0119*AEA*TE

+ 0.0039*Dr*TE - 0.0294*EA*TE;

z6 = 0.189 - 0.00552*Ch - 0.0039*AEA - 0.00102*Dr - 0.0214*EA

+ 0.00281*TE + 0.0111*Ch*Dr - 0.0094*AEA*Dr

+0.0094*Ch*EA + 0.00598*Ch*TE - 0.0223*EA*TE;

z7 = 7.38 + 0.332*Ch + 2.12*AEA - 0.943*Dr + 0.33*EA - 5.65*TE

+ 3.97*Ch*AEA - 1.15*Ch*Dr - 3.09*AEA*Dr - 1.58*Ch*EA

- 1.66*AEA*EA - 1.23*Ch*TE - 2.48*AEA*TE

+ 1.7*Dr*TE + 13.9*EA*TE;

z8 = 4.21 - 0.279*Ch + 0.311*AEA + 0.152*Dr - 0.595*EA + 0.878*TE

+ 0.726*Ch*AEA + 0.417*Ch*Dr - 0.973*AEA*Dr

+ 1.21*Ch*EA - 0.543*AEA*EA + 0.169*Dr*EA

- 0.898*Ch*TE - 0.269*AEA*TE + 0.682*Dr*TE

- 1.22*EA*TE;

@Free (z1);

@Free (z2);

@Free (z3);

@Free (z4);

@Free (z5);

@Free (z6);

@Free (z7);

@Free (z8);

@Free (z2ideal);

@Free (z7ideal);

@Free (L);

@BND (0,Ch,1);

@BND (0,AEA,1);

@BND (0,Dr,1);

@BND (0,EA,1);

@BND (0,TE,1);

@GIN (Dr);

@GIN (EA);

@GIN (TE);

Page 85: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

63 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

Tabla 5–3. Solución de la programación por compromiso con métrica p = 2

Global optimal solution found.

Objective value: 0.4710378

Extended solver steps: 2

Total solver iterations: 1309

Variable Value Reduced Cost

L 0.4710378 0.000000

W1 0.5800000E-01 0.000000

Z1 925.2517 0.000000

Z1IDEAL 619.7300 0.000000

Z1ANTIIDEAL 1148.420 0.000000

P 2.000000 0.000000

W2 0.5800000E-01 0.000000

Z2 0.9103055 0.000000

Z2IDEAL -0.9800000E-01 0.000000

Z2ANTIIDEAL 0.9940000 0.000000

W3 0.1150000 0.000000

Z3 9.324034 0.000000

Z3IDEAL 6.760000 0.000000

Z3ANTIIDEAL 15.73000 0.000000

W4 0.7700000E-01 0.000000

Z4IDEAL 81.41200 0.000000

Z4 80.01259 0.000000

Z4ANTIIDEAL 39.36000 0.000000

W5 0.1150000 0.000000

Z5 163.6916 0.000000

Z5IDEAL 143.8000 0.000000

Z5ANTIIDEAL 180.3300 0.000000

W6 0.1150000 0.000000

Z6 0.1673804 0.000000

Z6IDEAL 0.1337900 0.000000

Z6ANTIIDEAL 0.1900000 0.000000

W7 0.2310000 0.000000

Z7 5.616693 0.000000

Z7IDEAL -0.9630000 0.000000

Z7ANTIIDEAL 16.71700 0.000000

W8 0.2310000 0.000000

Z8IDEAL 5.922000 0.000000

Z8 4.683215 0.000000

Z8ANTIIDEAL 2.802000 0.000000

VSLOGANTES 2.966260 0.000000

CH 0.9412803 -0.1507585E-06

AEA 1.000000 -0.2272579E-01

DR 1.000000 -0.6031909E-01

EA 1.000000 -0.7183558E-01

TE 0.000000 -0.3060433E-01

VSLOGDESPUES 2.214026 0.000000

Row Slack or Surplus Dual Price

1 0.4710378 -1.000000

2 0.000000 -1.000000

3 0.000000 -0.3532440E-01

4 0.000000 -0.3544511

5 0.000000 -0.9047975

6 0.000000 -0.8672957E-01

7 0.000000 -0.1175518E-02

8 0.000000 -0.3147150

9 0.000000 -0.3790306

10 0.000000 -0.1470092

Page 86: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Método de resolución de Programación por Compromiso

64

11 0.000000 -0.1673316

12 0.000000 0.5681239E-04

13 0.000000 0.7777721E-04

14 0.000000 0.7981553E-02

15 0.000000 0.9610672E-01

16 0.000000 0.5556110E-02

17 0.000000 0.2223795E-02

18 0.000000 -0.1250667E-03

19 0.000000 -0.4305016E-05

20 0.000000 0.1657587E-02

21 0.000000 0.1981650E-02

22 0.000000 1.047783

23 0.000000 1.541638

24 0.000000 0.6481145E-02

25 0.000000 0.3841599E-02

26 0.000000 -0.3762828E-01

27 0.000000 -0.2478177E-01

28 0.000000 -0.1345897E-03

29 0.000000 -0.2867394

30 0.000000 -0.1041164

31 0.000000 -0.7780037E-02

32 0.000000 0.1293622E-03

33 0.000000 -0.3639245E-02

34 0.000000 -1.371681

35 0.000000 -2.595552

36 0.000000 -0.1032281E-01

37 0.000000 0.6240841E-01

El modelo, para distintas métricas hasta llegar a p=∞ es el mismo. Por esta razón no vamos a

presentar todas las alternativas, sino que al final incluiremos aquellas soluciones que hemos creído

conveniente, además de las que acabamos de mostrar, para ver cómo evolucionan las variables del

sistema.

5.2.3 Resolución del problema con la métrica p = ∞

Código de LINGO del modelo de la programación por compromiso para métrica p = ∞

min = d;

w1*((z1 - z1ideal)/(z1antiideal - z1ideal)) <= d;

w2*((z2 - z2ideal)/(z2antiideal - z2ideal)) <= d;

w3*((z3 - z3ideal)/(z3antiideal - z3ideal)) <= d;

w4*((z4ideal - z4)/(z4ideal - z4antiideal)) <= d;

w5*((z5 - z5ideal)/(z5antiideal - z5ideal)) <= d;

w6*((z6 - z6ideal)/(z6antiideal - z6ideal)) <= d;

w7*((z7 - z7ideal)/(z7antiideal - z7ideal)) <= d;

w8*((z8ideal - z8)/(z8ideal - z8antiideal)) <= d;

w1 = 0.058;

w2 = 0.058;

w3 = 0.115;

w4 = 0.077;

w5 = 0.115;

w6 = 0.115;

Page 87: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

65 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

w7 = 0.231;

w8 = 0.231;

z1ideal = 619.73;

z1antiideal = 1148.42;

z2ideal = -0.098;

z2antiideal = 0.994;

z3ideal = 6.76;

z3antiideal = 15.73;

z4ideal = 81.412;

z4antiideal = 39.36;

z5ideal = 143.8;

z5antiideal = 180.33;

z6ideal = 0.13379;

z6antiideal = 0.19;

z7ideal = -0.963;

z7antiideal = 16.717;

z8ideal = 5.922;

z8antiideal = 2.802;

z1 = 10^(VSlogantes);

VSlogantes = 3.02 + 0.077*Ch + 0.0401*AEA - 0.0362*Dr - 0.136*EA

+ 0.0831*TE - 0.105*Ch*AEA + 0.00995*Ch*Dr

+ 0.00905*AEA*Dr + 0.0863*Dr*EA + 0.0398*Ch*TE

+ 0.01444*AEA*TE - 0.104*Dr*TE - 0.121*EA*TE;

z2 = 0.103 + 0.411*Ch - 0.201*AEA + 0.272*Dr + 0.39*EA + 0.379*TE

+ 0.265*Ch*Dr + 0.172*AEA*EA - 0.462*Dr*EA

- 0.506*Ch*TE + 0.24*Dr*TE - 0.564*EA*TE;

z3 = 8.33 - 0.418*Ch + 0.0624*AEA - 0.0856*Dr + 2.85*EA + 0.499*TE

- 0.727*Ch*Dr - 0.399*AEA*Dr - 0.356*AEA*EA

- 0.516*Ch*TE - 0.325*AEA*TE + 0.363*Dr*TE + 3.77*EA*TE;

z4 = 37.9 + 12*Ch + 4.72*AEA + 2.54*Dr + 7.75*EA + 1.68*TE

+ 3.32*Ch*AEA + 0.782*Ch*Dr - 2.97*AEA*Dr + 7.73*Ch*EA

- 1.15*AEA*EA + 8.79*Dr*EA - 3.45*Ch*TE - 6.79*AEA*TE

+ 2.28*Dr*TE + 1.3*EA*TE;

z5 = 10^(VSlogdespues);

VSlogdespues = 2.25 - 0.0179*Ch - 0.00826*AEA + 0.00655*Dr - 0.0237*EA

- 0.00438*TE + 0.0117*Ch*AEA - 0.00301*Ch*Dr

- 0.0167*AEA*Dr + 0.0246*Ch*EA + 0.00735*AEA*EA

- 0.0157*Dr*EA - 0.00889*Ch*TE - 0.0119*AEA*TE

+ 0.0039*Dr*TE - 0.0294*EA*TE;

z6 = 0.189 - 0.00552*Ch - 0.0039*AEA - 0.00102*Dr - 0.0214*EA

+ 0.00281*TE + 0.0111*Ch*Dr - 0.0094*AEA*Dr

+0.0094*Ch*EA + 0.00598*Ch*TE - 0.0223*EA*TE;

z7 = 7.38 + 0.332*Ch + 2.12*AEA - 0.943*Dr + 0.33*EA - 5.65*TE

+ 3.97*Ch*AEA - 1.15*Ch*Dr - 3.09*AEA*Dr - 1.58*Ch*EA

- 1.66*AEA*EA - 1.23*Ch*TE - 2.48*AEA*TE

+ 1.7*Dr*TE + 13.9*EA*TE;

z8 = 4.21 - 0.279*Ch + 0.311*AEA + 0.152*Dr - 0.595*EA + 0.878*TE

+ 0.726*Ch*AEA + 0.417*Ch*Dr - 0.973*AEA*Dr

+ 1.21*Ch*EA - 0.543*AEA*EA + 0.169*Dr*EA

- 0.898*Ch*TE - 0.269*AEA*TE + 0.682*Dr*TE

- 1.22*EA*TE;

@Free (z1);

@Free (z2);

@Free (z3);

Page 88: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Método de resolución de Programación por Compromiso

66

@Free (z4);

@Free (z5);

@Free (z6);

@Free (z7);

@Free (z8);

@Free (z2ideal);

@Free (z7ideal);

@BND (0,Ch,1);

@BND (0,AEA,1);

@BND (0,Dr,1);

@BND (0,EA,1);

@BND (0,TE,1);

@GIN (Dr);

@GIN (EA);

@GIN (TE);

Tabla 5–4. Solución de la programación por compromiso con métrica p = ∞

Global optimal solution found.

Objective value: 0.7962963E-01

Extended solver steps: 2

Total solver iterations: 229

Variable Value Reduced Cost

D 0.7962963E-01 0.000000

W1 0.5800000E-01 0.000000

Z1 971.0676 0.000000

Z1IDEAL 619.7300 0.000000

Z1ANTIIDEAL 1148.420 0.000000

W2 0.5800000E-01 0.000000

Z2 0.8965870 0.000000

Z2IDEAL -0.9800000E-01 0.000000

Z2ANTIIDEAL 0.9940000 0.000000

W3 0.1150000 0.000000

Z3 9.677492 0.000000

Z3IDEAL 6.760000 0.000000

Z3ANTIIDEAL 15.73000 0.000000

W4 0.7700000E-01 0.000000

Z4IDEAL 81.41200 0.000000

Z4 77.47357 0.000000

Z4ANTIIDEAL 39.36000 0.000000

W5 0.1150000 0.000000

Z5 164.6502 0.000000

Z5IDEAL 143.8000 0.000000

Z5ANTIIDEAL 180.3300 0.000000

W6 0.1150000 0.000000

Z6 0.1727116 0.000000

Z6IDEAL 0.1337900 0.000000

Z6ANTIIDEAL 0.1900000 0.000000

W7 0.2310000 0.000000

Z7 5.131597 0.000000

Z7IDEAL -0.9630000 0.000000

Z7ANTIIDEAL 16.71700 0.000000

W8 0.2310000 0.000000

Z8IDEAL 5.922000 0.000000

Z8 4.846483 0.000000

Z8ANTIIDEAL 2.802000 0.000000

VSLOGANTES 2.987249 0.000000

CH 0.9018874 0.000000

Page 89: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

67 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

AEA 0.5547890 0.000000

DR 1.000000 -0.2490099E-01

EA 1.000000 -0.2642208E-01

TE 0.000000 0.4714351E-01

VSLOGDESPUES 2.216562 0.000000

Row Slack or Surplus Dual Price

1 0.7962963E-01 -1.000000

2 0.4108610E-01 0.000000

3 0.2680358E-01 0.000000

4 0.4222589E-01 0.000000

5 0.7241812E-01 0.000000

6 0.1399112E-01 0.000000

7 0.000000 0.3676582

8 0.000000 0.5563784

9 0.000000 0.7596344E-01

10 0.000000 0.000000

11 0.000000 0.000000

12 0.000000 0.000000

13 0.000000 0.000000

14 0.000000 0.000000

15 0.000000 -0.2545781

16 0.000000 -0.1917931

17 0.000000 -0.2618589E-01

18 0.000000 0.000000

19 0.000000 0.000000

20 0.000000 0.000000

21 0.000000 0.000000

22 0.000000 0.000000

23 0.000000 0.000000

24 0.000000 0.000000

25 0.000000 0.000000

26 0.000000 0.000000

27 0.000000 0.000000

28 0.000000 0.2323596

29 0.000000 0.5185888

30 0.000000 0.4763595E-02

31 0.000000 0.2505859E-02

32 0.000000 -0.3685165E-02

33 0.000000 -0.1938915E-02

34 0.000000 0.000000

35 0.000000 0.000000

36 0.000000 0.000000

37 0.000000 0.000000

38 0.000000 0.000000

39 0.000000 0.000000

40 0.000000 0.000000

41 0.000000 -0.7521916

42 0.000000 -0.7269424E-02

43 0.000000 0.5624216E-02

A modo de resumen, vamos a incluir todos los resultados vistos hasta ahora del modelo por

compromiso en una tabla, adjuntando además, resultados extras que han sido probados en la

aplicación LINGO para métricas distintas a las mostradas en el presente documento.

Nótese que los códigos, soluciones y resultados están todos referidos a la ponderación básica de

criterios por el método general. El procedimiento para realizarlos con los propuestos por Saaty es el

mismo, sólo hay que cambiar el valor de los pesos en el código que hemos presentado, por esta razón

hemos decidido no incluirlo en la memoria, y sólo adjuntar los resultados obtenidos.

Page 90: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Método de resolución de Programación por Compromiso

68

Tabla 5–5. Resultados de la programación por compromiso con pesos por el método básico.

Métrica Variables Métrica Variables

𝒑 = 𝟏 𝐿1 = 0.4217

𝐶ℎ = 0 𝐴𝐸𝐴 = 1 𝐷𝑟 = 1 𝐸𝐴 = 0 𝑇𝐸 = 1

𝒑 = 𝟐 𝐿2 = 0.471

𝐶ℎ = 1 𝐴𝐸𝐴 = 1 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟑 𝐿3 = 0.498

𝐶ℎ = 0.79 𝐴𝐸𝐴 = 1 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟓 𝐿5 = 0.527

𝐶ℎ = 0.392 𝐴𝐸𝐴 = 0.273 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟏𝟎 𝐿10 = 0.549

𝐶ℎ = 0.299 𝐴𝐸𝐴 = 0.188 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟐𝟎 𝐿20 = 0.567

𝐶ℎ = 0.327 𝐴𝐸𝐴 = 0.268 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟓𝟎 𝐿50 = 0.581

𝐶ℎ = 0.357 𝐴𝐸𝐴 = 0.341 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = ∞ 𝐿∞ = 0.0796

𝐶ℎ = 0.902 𝐴𝐸𝐴 = 0.55 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

Page 91: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

69 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

Tabla 5–6. Resultados de la programación por compromiso con pesos método Saaty.

Métrica Variables Métrica Variables

𝒑 = 𝟏 𝐿1 = 0.386

𝐶ℎ = 1 𝐴𝐸𝐴 = 0 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟐 𝐿2 = 0.435

𝐶ℎ = 1 𝐴𝐸𝐴 = 1 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟑 𝐿3 = 0.465

𝐶ℎ = 1 𝐴𝐸𝐴 = 1 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟓 𝐿5 = 0.504

𝐶ℎ = 0.81 𝐴𝐸𝐴 = 1 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟏𝟎 𝐿10 = 0.546

𝐶ℎ = 0.5 𝐴𝐸𝐴 = 0.5 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟐𝟎 𝐿20 = 0.566

𝐶ℎ =0.42 𝐴𝐸𝐴 = 0.39 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = 𝟓𝟎 𝐿50 = 0.581

𝐶ℎ = 0.39 𝐴𝐸𝐴 = 0.38 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

𝒑 = ∞ 𝐿∞ = 0.091

𝐶ℎ = 1 𝐴𝐸𝐴 = 0.53 𝐷𝑟 = 1 𝐸𝐴 = 1 𝑇𝐸 = 0

Para concluir este capítulo, vamos a comentar los resultados que hemos obtenido por el método de

Saaty, ya que son los pesos que nos han aportado desde la Facultad de Farmacia con la importancia

relativa que tienen los objetivos en el problema global para ellos.

Como puede observarse en los resultados, no se cumple el teorema de Yu, ya que el problema es no

lineal y contiene más de dos objetivos (El teorema de Yu sólo es válido para respuestas lineales en

problemas de dos respuestas). Sin embargo, puede observarse cierta tendencia monótona y la

distancia parece estar acotada para los casos entre 𝐿1 y 𝐿50, no cumpliéndose para 𝐿∞.

Las variables Dr y EA siempre están a 1 para cualquier valor de la métrica p. Ch cercano a 1 para

valores bajos de p, decreciendo conforme aumenta (con excepción de p=∞). La variable AEA toma

valores medios para valores de p superiores a 10. Para valores bajos, siempre es AEA=1 a excepción

de la métrica p=1 donde AEA=0. Parece que la combinación más repetida es la siguiente:

𝐶ℎ = 1 𝐴𝐸𝐴 = 1 𝐷𝑟 = 1 𝐸𝐴 = 1 TE = 0

Page 92: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 93: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

71

6 MÉTODOS DE RESOLUCIÓN DE

PROGRAMACIÓN POR METAS

n este capítulo vamos a presentar varios métodos relativos a la programación por metas,

describiendo el procedimiento general y resolviendo los modelos, de forma que saquemos

conclusiones acerca del resulta que nos proporcione LINGO.

E

La libertad comienza allí donde acaba la

ignorancia.

-Victor Hugo -

Page 94: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

72

6.1. Introducción

Para situar la programación secuencial, el otro método con el que vamos a estudiar nuestro problema

en profundidad, debemos remontarnos hasta el principio del presente capítulo, donde habíamos

esquematizado diferentes enfoques con los que podemos abordar un problema de decisión

multicriterio.

En el esquema, se propuso una escisión en cuanto a la hora de estudiar el problema, separando

optimización de satisfacción. Los métodos que hemos visto hasta ahora pertenecen al grupo de

optimización, pero todos ellos ayudan poco a nivel práctico, debido a la dificultad que presentan en

el momento de aplicarlos a problemas de tamaño medio-grande. Podemos decir que son métodos con

un enfoque teórico predominante, aunque muy útiles cuando el problema no es demasiado grande.

Sin embargo, la programación por metas, también llamada goal programming, donde se incluye la

programación secuencial, incluye una lógica satisfaciente, en el que se intenta que un conjunto de

metas se aproxime lo más posible a unos niveles de aspiración que fijamos previamente [5].

En resumen, dentro del conjunto de métodos de satisfacción, está la programación por metas, y como

variante suya, la programación secuencial, que será el método que desarrollaremos con mayor

profundidad y más detalle.

Page 95: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

73 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

6.2. Niveles de aspiración y variables de decisión

Antes de empezar a formular el modelo de programación por metas, igual que hacemos con otros

enfoques multicriterio, comenzamos fijando unos atributos que consideramos relevantes para el

problema que estamos estudiando. Definimos el nivel de aspiración 𝑎𝑖 como el nivel deseable que el

centro decisor quiere alcanzar para el objetivo i-ésimo.

𝑓𝑖(𝑥) + 𝑛𝑖 − 𝑝𝑖 = 𝑎𝑖

𝑓𝑖(𝑥) 𝑒𝑠 𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜 𝑖 − é𝑠𝑖𝑚𝑜 𝑛𝑖 𝑒𝑠 𝑒𝑙 𝑛𝑖𝑣𝑒𝑙 𝑝𝑜𝑟 𝑑𝑒𝑏𝑎𝑗𝑜 𝑑𝑒𝑙 𝑛𝑖𝑣𝑒𝑙 𝑑𝑒 𝑎𝑠𝑝𝑖𝑟𝑎𝑐𝑖ó𝑛 𝑝𝑖 𝑒𝑠 𝑒𝑙 𝑛𝑖𝑣𝑒𝑙 𝑝𝑜𝑟 𝑒𝑛𝑐𝑖𝑚𝑎 𝑑𝑒𝑙 𝑛𝑖𝑣𝑒𝑙 𝑑𝑒 𝑎𝑠𝑝𝑖𝑟𝑎𝑐𝑖ó𝑛 𝑎𝑖 𝑒𝑠 𝑒𝑙 𝑛𝑖𝑣𝑒𝑙 𝑑𝑒 𝑎𝑠𝑝𝑖𝑟𝑎𝑐𝑖ó𝑛

(6–1)

𝑛𝑖 y 𝑝𝑖 representan las variables de desviación negativa y positiva respectivamente, también

llamadas variables de desviación no deseada (VDND). La variable de desviación negativa cuantifica

la falta de logro de una meta con respecto a su nivel de aspiración, mientras que la variable de

desviación positiva cuantifica el exceso de logro de una meta con respecto a su nivel de aspiración.

Tanto 𝑛𝑖 como 𝑝𝑖 han de ser mayores que cero, resultando en general:

𝑓𝑖(𝑥) + 𝑛𝑖 − 𝑝𝑖 = 𝑎𝑖

𝑛𝑖, 𝑝𝑖 ≥ 0

En el caso que la función objetivo sea de maximizar, la variable de desviación no deseada es 𝑛𝑖, mientras que si es de minimizar, la VDND es 𝑝𝑖. Si nuestro objetivo alcanza un valor nominal, las

VDND son 𝑛𝑖 y 𝑝𝑖.

Tabla 6–1. Posibilidades en las variables de desviación

CASOS TIPO de F.O. EXPRESIÓN VDND

Caso 1 MAX 𝑓𝑖(𝑥) + 𝑛𝑖 − 𝑝𝑖 = 𝑎𝑖 𝑛𝑖

Caso 2 Min 𝑓𝑖(𝑥) + 𝑛𝑖 − 𝑝𝑖 = 𝑎𝑖 𝑝𝑖

Caso 3 Valor nominal 𝑓𝑖(𝑥) + 𝑛𝑖 − 𝑝𝑖 = 𝑎𝑖 𝑛𝑖 y 𝑝𝑖

Page 96: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

74

Para nuestro problema, tenemos los siguientes datos:

Tabla 6–2. Variables de desviación de nuestro problema

OBJETIVO DEL SISTEMA TIPO DE OBJETIVO VDND

f1: size_antes Min 𝑝1

f2: IP_antes Min 𝑝2

f3: ZetaPot_antes Min 𝑝3

f4: EE_antes MAX 𝑛4

f5: size_despues Min 𝑝5

f6: IP_despues Min 𝑝6

f7: ZetaPot_despues Min 𝑝7

f8: EE_despues MAX 𝑛8

En el modelo general vamos a tratar de minimizar las variables de desviación no deseadas, además

de satisfacer las restricciones del problema original y las nuevas asociadas a cada meta. Esto es el

propósito general de la programación por metas. Dependiendo del tipo de minimización, hay varios

casos en la programación por metas, entre ellos destacan:

Programación por metas ponderadas.

Programación por metas lexicográficas, donde se incluye el método secuencial, también

llamado programación por metas lexicográficas secuencial.

Programación por metas minimax.

Cada método proporciona una variante diferente del modelo general. En este proyecto nos vamos a

centrar en los dos primeros casos, aunque haremos mayor hincapié en el segundo de ellos.

Antes de pasar a ver el desarrollo de los métodos para resolver nuestro problema, tenemos que

establecer cuáles van a ser nuestros niveles de aspiración. Hemos decidido que sean un 30% mayores

que el valor del punto ideal para las funciones que debemos minimizar (𝑓1, 𝑓2, 𝑓3, 𝑓5, 𝑓6 𝑦 𝑓7) y un

30% menores para aquellas que hay que maximizar (𝑓4 𝑦 𝑓8).

Page 97: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

75 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

Tabla 6–3. Valores de las variables de desviación de nuestro problema

FUNCIÓN

OBJETIVO

VARIACIÓN VALOR DEL NIVEL DE ASPIRACIÓN (𝒂𝒊)

f1: size_antes 30% más 𝑎1 = 1.3 × 𝑓1𝑖𝑑𝑒𝑎𝑙 = 1.3 × 619.73 = 805.649

f2: IP_antes 30% más 𝑎2 = 1.3 × 𝑓2𝑖𝑑𝑒𝑎𝑙 = 1.3 × (−0.098) = −0.1274

f3: ZetaPot_antes 30% más 𝑎3 = 1.3 × 𝑓3𝑖𝑑𝑒𝑎𝑙 = 1.3 × 6.763 = 8.7919

f4: EE_antes 30% menos 𝑎4 = 0.7 × 𝑓4𝑖𝑑𝑒𝑎𝑙 = 0.7 × 81.412 = 56.9884

f5: size_despues 30% más 𝑎5 = 1.3 × 𝑓5𝑖𝑑𝑒𝑎𝑙 = 1.3 × 143.8 = 186.94

f6: IP_despues 30% más 𝑎6 = 1.3 × 𝑓6𝑖𝑑𝑒𝑎𝑙 = 1.3 × 0.134 = 0.1742

f7: ZetaPot_despues 30% más 𝑎7 = 1.3 × 𝑓7𝑖𝑑𝑒𝑎𝑙 = 1.3 × (−0.963) = −1.2519

f8: EE_despues 30% menos 𝑎8 = 0.7 × 𝑓8𝑖𝑑𝑒𝑎𝑙 = 0.7 × 5.922 = 4.1454

Page 98: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

76

6.3. Programación por Metas Ponderadas

Para la programación por metas ponderadas, debemos englobar en una función objetivo agregada

todas las variables de desviación no deseadas ponderadas con sus pesos correspondientes. La

estructura de un modelo de este tipo es la siguiente:

min∑𝑉𝐷𝑁𝐷 = min∑(𝛼𝑖𝑛𝑖 +

𝑛

𝑖=1

𝛽𝑖𝑝𝑖)

𝑠. 𝑎. 𝑓𝑖(𝑥) + 𝑛𝑖 − 𝑝𝑖 = 𝑎𝑖 𝑖 = 1…𝑛

𝑥 ∈ �̌� 𝑛𝑖 , 𝑝𝑖 ≥ 0

𝑛 𝑒𝑠 𝑒𝑙 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜𝑠 𝑑𝑒𝑙 𝑝𝑟𝑜𝑏𝑙𝑒𝑚𝑎 �̌� 𝑒𝑠 𝑒𝑙 𝑐𝑜𝑛𝑗𝑢𝑛𝑡𝑜 𝑑𝑒 𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛𝑒𝑠 𝑓𝑎𝑐𝑡𝑖𝑏𝑙𝑒𝑠

𝛼𝑖 𝑒𝑠 𝑒𝑙 𝑝𝑒𝑠𝑜 𝑑𝑒 𝑝𝑜𝑛𝑑𝑒𝑟𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑙𝑎 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝑑𝑒 𝑑𝑒𝑠𝑣𝑖𝑎𝑐𝑖ó𝑛 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑎 𝛽𝑖 𝑒𝑠 𝑒𝑙 𝑝𝑒𝑠𝑜 𝑑𝑒 𝑝𝑜𝑛𝑑𝑒𝑟𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑙𝑎 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝑑𝑒 𝑑𝑒𝑠𝑣𝑖𝑎𝑐𝑖ó𝑛 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑎

(6–2)

En realidad, 𝛼𝑖 𝑦 𝛽𝑖 son los mismos pesos que antes presentamos, representando la importancia que

adquiere la función objetivo a la que representan dentro del sistema global. Los pesos 𝛼𝑖 serán nulos

cuando el logro de la meta sea menor que nivel de aspiración establecido, esto es, cuando el objetivo

sea de minimizar. De igual forma, los pesos 𝛽𝑖 serán nulos cuando el logro de la meta sea mayor que

el nivel de aspiración (función objetivo de maximizar).

Aplicando estos conceptos a nuestro problema, tenemos:

Código de LINGO del modelo de programación por metas ponderadas

min = beta1*p1 + beta2*p2 + beta3*p3 + alfa4*n4

+ beta5*p5 + beta6*p6 + beta7*p7 + alfa8*n8;

z1 + n1 - p1 = 1.3*z1ideal;

z2 + n2 - p2 = 1.3*z2ideal;

z3 + n3 - p3 = 1.3*z3ideal;

z4 + n4 - p4 = 0.7*z4ideal;

z5 + n5 - p5 = 1.3*z5ideal;

z6 + n6 - p6 = 1.3*z6ideal;

z7 + n7 - p7 = 1.3*z7ideal;

z8 + n8 - p8 = 0.7*z8ideal;

w1 = 0.058;

w2 = 0.058;

w3 = 0.115;

w4 = 0.077;

Page 99: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

77 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

w5 = 0.115;

w6 = 0.115;

w7 = 0.231;

w8 = 0.231;

beta1 = w1;

beta2 = w2;

beta3 = w3;

alfa4 = w4;

beta5 = w5;

beta6 = w6;

beta7 = w7;

alfa8 = w8;

z1ideal = 619.73;

z1antiideal = 1148.42;

z2ideal = -0.098;

z2antiideal = 0.994;

z3ideal = 6.76;

z3antiideal = 15.73;

z4ideal = 81.412;

z4antiideal = 39.36;

z5ideal = 143.8;

z5antiideal = 180.33;

z6ideal = 0.134;

z6antiideal = 0.19;

z7ideal = -0.963;

z7antiideal = 16.717;

z8ideal = 5.922;

z8antiideal = 2.802;

z1 = 10^(VSlogantes);

VSlogantes = 3.02 + 0.077*Ch + 0.0401*AEA - 0.0362*Dr - 0.136*EA

+ 0.0831*TE - 0.105*Ch*AEA + 0.00995*Ch*Dr

+ 0.00905*AEA*Dr + 0.0863*Dr*EA + 0.0398*Ch*TE

+ 0.01444*AEA*TE - 0.104*Dr*TE - 0.121*EA*TE;

z2 = 0.103 + 0.411*Ch - 0.201*AEA + 0.272*Dr + 0.39*EA + 0.379*TE

+ 0.265*Ch*Dr + 0.172*AEA*EA - 0.462*Dr*EA

- 0.506*Ch*TE + 0.24*Dr*TE - 0.564*EA*TE;

z3 = 8.33 - 0.418*Ch + 0.0624*AEA - 0.0856*Dr + 2.85*EA + 0.499*TE

- 0.727*Ch*Dr - 0.399*AEA*Dr - 0.356*AEA*EA

- 0.516*Ch*TE - 0.325*AEA*TE + 0.363*Dr*TE + 3.77*EA*TE;

z4 = 37.9 + 12*Ch + 4.72*AEA + 2.54*Dr + 7.75*EA + 1.68*TE

+ 3.32*Ch*AEA + 0.782*Ch*Dr - 2.97*AEA*Dr + 7.73*Ch*EA

- 1.15*AEA*EA + 8.79*Dr*EA - 3.45*Ch*TE - 6.79*AEA*TE

+ 2.28*Dr*TE + 1.3*EA*TE;

z5 = 10^(VSlogdespues);

VSlogdespues = 2.25 - 0.0179*Ch - 0.00826*AEA + 0.00655*Dr - 0.0237*EA

- 0.00438*TE + 0.0117*Ch*AEA - 0.00301*Ch*Dr

- 0.0167*AEA*Dr + 0.0246*Ch*EA + 0.00735*AEA*EA

- 0.0157*Dr*EA - 0.00889*Ch*TE - 0.0119*AEA*TE

+ 0.0039*Dr*TE - 0.0294*EA*TE;

z6 = 0.189 - 0.00552*Ch - 0.0039*AEA - 0.00102*Dr - 0.0214*EA

+ 0.00281*TE + 0.0111*Ch*Dr - 0.0094*AEA*Dr

+0.0094*Ch*EA + 0.00598*Ch*TE - 0.0223*EA*TE;

z7 = 7.38 + 0.332*Ch + 2.12*AEA - 0.943*Dr + 0.33*EA - 5.65*TE

+ 3.97*Ch*AEA - 1.15*Ch*Dr - 3.09*AEA*Dr - 1.58*Ch*EA

- 1.66*AEA*EA - 1.23*Ch*TE - 2.48*AEA*TE

Page 100: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

78

+ 1.7*Dr*TE + 13.9*EA*TE;

z8 = 4.21 - 0.279*Ch + 0.311*AEA + 0.152*Dr - 0.595*EA + 0.878*TE

+ 0.726*Ch*AEA + 0.417*Ch*Dr - 0.973*AEA*Dr

+ 1.21*Ch*EA - 0.543*AEA*EA + 0.169*Dr*EA

- 0.898*Ch*TE - 0.269*AEA*TE + 0.682*Dr*TE

- 1.22*EA*TE;

@Free (z1);

@Free (z2);

@Free (z3);

@Free (z4);

@Free (z5);

@Free (z6);

@Free (z7);

@Free (z8);

@Free (z2ideal);

@Free (z7ideal);

@BND (0,Ch,1);

@BND (0,AEA,1);

@BND (0,Dr,1);

@BND (0,EA,1);

@BND (0,TE,1);

@GIN (Dr);

@GIN (EA);

@GIN (TE);

Tabla 6–4. Solución de la programación por metas ponderadas

Global optimal solution found.

Objective value: 2.788158

Extended solver steps: 6

Total solver iterations: 778

Variable Value Reduced Cost

BETA1 0.5800000E-01 0.000000

P1 0.000000 0.4367083E-01

BETA2 0.5800000E-01 0.000000

P2 0.7386089 0.000000

BETA3 0.1150000 0.000000

P3 2.271778 0.000000

ALFA4 0.7700000E-01 0.000000

N4 5.663796 0.000000

BETA5 0.1150000 0.000000

P5 0.000000 0.1150000

BETA6 0.1150000 0.000000

P6 0.000000 0.1150000

BETA7 0.2310000 0.000000

P7 8.602959 0.000000

ALFA8 0.2310000 0.000000

N8 0.2626323 0.000000

Z1 805.6490 0.000000

N1 0.000000 0.1432917E-01

Z1IDEAL 619.7300 0.000000

Z2 0.6112089 0.000000

N2 0.000000 0.5800000E-01

Z2IDEAL -0.9800000E-01 0.000000

Page 101: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

79 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

Z3 11.05978 0.000000

N3 0.000000 0.1150000

Z3IDEAL 6.760000 0.000000

Z4 51.32460 0.000000

P4 0.000000 0.7700000E-01

Z4IDEAL 81.41200 0.000000

Z5 169.1325 0.000000

N5 17.80752 0.000000

Z5IDEAL 143.8000 0.000000

Z6 0.1687159 0.000000

N6 0.5484062E-02 0.000000

Z6IDEAL 0.1340000 0.000000

Z7 7.351059 0.000000

N7 0.000000 0.2310000

Z7IDEAL -0.9630000 0.000000

Z8 3.882768 0.000000

P8 0.000000 0.2310000

Z8IDEAL 5.922000 0.000000

W1 0.5800000E-01 0.000000

W2 0.5800000E-01 0.000000

W3 0.1150000 0.000000

W4 0.7700000E-01 0.000000

W5 0.1150000 0.000000

W6 0.1150000 0.000000

W7 0.2310000 0.000000

W8 0.2310000 0.000000

Z1ANTIIDEAL 1148.420 0.000000

Z2ANTIIDEAL 0.9940000 0.000000

Z3ANTIIDEAL 15.73000 0.000000

Z4ANTIIDEAL 39.36000 0.000000

Z5ANTIIDEAL 180.3300 0.000000

Z6ANTIIDEAL 0.1900000 0.000000

Z7ANTIIDEAL 16.71700 0.000000

Z8ANTIIDEAL 2.802000 0.000000

VSLOGANTES 2.906146 0.000000

CH 0.2876130 0.000000

AEA 0.000000 0.2546932

DR 0.000000 0.8150251E-01

EA 1.000000 -4.004370

TE 0.000000 1.561170

VSLOGDESPUES 2.228227 0.000000

Sin embargo, este modelo tiene algunos problemas, por falta de uniformidad en las unidades de las

variables, y esto provoca soluciones sesgadas a objetivos con mayor nivel de aspiración. Para

solucionarlo, se propone dividir las variables por el nivel de aspiración correspondiente a cada

objetivo, resultando el siguiente modelo corregido:

min∑(𝛼𝑖𝑛𝑖𝑎𝑖+

𝑛

𝑖=1

𝛽𝑖𝑝𝑖𝑎𝑖)

𝑠. 𝑎. 𝑓𝑖(𝑥) + 𝑛𝑖 − 𝑝𝑖 = 𝑎𝑖 𝑖 = 1…𝑛

𝑥 ∈ �̌� 𝑛𝑖 , 𝑝𝑖 ≥ 0

(6–3)

Page 102: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

80

Como se puede comprobar, los códigos de LINGO y las soluciones expuestas tanto para el método

de programación por metas ponderadas como para el homónimo corregido, los pesos que ponderan

las variables de desviación son el resultado del método general. El procedimiento es exactamente el

mismo para los de Saaty, sólo teniendo que cambiar dichos valores. Por esta razón, no se incluye en

la memoria y sólo se adjunta los resultados.

Tabla 6–5. Resultados de la programación por metas ponderadas

METAS

PONDERADAS

PESOS MÉTODO

GENERAL

METAS

PONDERADAS

PESOS MÉTODO

SAATY

𝑪𝒉 = 𝟎. 𝟐𝟗

𝑨𝑬𝑨 = 𝟎

𝑫𝒓 = 𝟎

𝑬𝑨 = 𝟏

𝑻𝑬 = 𝟎

𝑤1 = 0.058; 𝑤2 = 0.058 𝑤3 = 0.115; 𝑤4 = 0.077 𝑤5 = 0.115; 𝑤6 = 0.115 𝑤7 = 0.231; 𝑤8 = 0.231

𝑪𝒉 = 𝟎. 𝟓

𝑨𝑬𝑨 = 𝟎. 𝟑𝟏

𝑫𝒓 = 𝟎

𝑬𝑨 = 𝟏

𝑻𝑬 = 𝟎

𝑤1 = 0.014; 𝑤2 = 0.023 𝑤3 = 0.086; 𝑤4 = 0.081 𝑤5 = 0.114; 𝑤6 = 0.126 𝑤7 = 0.236; 𝑤8 = 0.32

Podemos observar que los valores son bastante parejos para los dos métodos de ponderación. Esto se

debe a que en este método lo que más influye son los niveles de aspiración, y en este caso, nosotros

hemos tomado los mismos valores para ambos casos. Pensamos que es la razón principal para la

homogeneidad de ambas soluciones.

Sin embargo, si comparamos estos resultados con los obtenidos por el Método de Programación por

Compromiso, vemos que hay bastante diferencia entre ellos. Esto se debe a la dificultad en la

búsqueda de unos niveles de aspiración adecuados, dependiendo mucho el resultado en el valor que

se tome de los mismos. En nuestro caso, pensamos que hemos sido un poco pesimistas a la hora de

ponderarlos con un 30% de desviación, pudiendo haber apretado un poco más los resultados, y

quizás hubieran salido valores diferentes.

Page 103: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

81 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

6.4. Programación lexicográfica

La programación lexicográfica es el segundo método de la programación por metas que vamos a

estudiar. En este caso, se establecen distintas prioridades por objetivos, asignando importancias

relativas a las diferentes metas. Es decir, la meta 𝑄𝑖 será preferida a otras metas 𝑄𝑗 con menor

prioridad de forma que 𝑄𝑖 ≫ 𝑄𝑗 ∀𝑗 ≠ 𝑖, 𝑖 = 1…𝑛

Dentro de la programación lexicográfica, tenemos dos variantes claramente diferenciadas. La

primera es la programación lexicográfica gráfica, válida sólo cuando tenemos dos variables. Para este

método, el procedimiento es el siguiente:

Representamos las metas por rectas, de forma que la representación se realiza cuando

𝑛𝑖 = 𝑝𝑖 = 0.

Una vez dibujadas las rectas, añadimos flechas a cada meta indicando el efecto de las

variables de desviación, para ver el efecto y la dirección que tiene cada una de ellas en las

rectas que definen nuestro problema.

Señalamos o marcamos de alguna forma (por ejemplo rodeando con un círculo) la variable

de desviación no deseada, de forma que sabemos que nos interesa proceder por el lado

contrario para la resolución del problema

Sin embargo, no vamos a exponer ningún ejemplo de este método debido a la poca utilidad práctica

que tiene, además que sólo sirve cuando tenemos dos variables. No ocurre lo mismo con la segunda

variante del método lexicográfico, que si veremos en profundidad aplicado a nuestro problema,

llamada método lexicográfico secuencial.

El método lexicográfico secuencial surge como generalización del método gráfico, no estando

restringido el número de variables. El procedimiento que debemos seguir para la correcta aplicación

del método es:

Establecer las prioridades para los objetivos. En nuestro caso, seguiremos en la misma línea

que establecimos en los factores de ponderación para las salidas.

Una vez que tenemos ordenadas las funciones objetivo, resolvemos por orden de prioridad.

Fijamos los valores de las variables de desviación no deseadas que vamos obteniendo con los

objetivos resueltos y avanzamos en el proceso a los siguientes.

Continuamos con la siguiente función objetivo de salida del sistema que nos indique el

orden.

Este método, al contrario que otros que hemos presentado, tiene más carácter práctico que teórico,

razón por la cual quizás se entienda con mayor claridad en el momento que vayamos resolviendo el

problema y estableciendo las soluciones que nos proporcione para nuestro sistema. Por esta razón,

aplicamos directamente a nuestro problema, adjuntando los códigos de LINGO y las soluciones que

obtenemos:

Page 104: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

82

Para comenzar, hemos explicado que debemos establecer un orden de prioridades. Como este

método no dispone de ponderaciones sobre las distintas funciones objetivo, las prioridades las

estableceremos teniendo en cuenta las preferencias, al igual que hicimos en el momento de estudiar

los pesos en los dos métodos distintos. En nuestro caso, establecemos 3 prioridades distintas:

La primera de ella, englobará las salidas 𝑓7 𝑦 𝑓8 (ZetaPot_después y EE_después

respectivamente).

La segunda, comprende 𝑓3, 𝑓5 𝑦 𝑓6 (ZetaPot_antes, Size_después e IP_después).

La última, y por ello la menos importante, abarca 𝑓1, 𝑓2 𝑦 𝑓4 (Size_antes, IP_antes y

EE_antes).

Teniendo en cuenta estos conceptos y las prioridades que acabamos de presentar, el proceso a seguir

en nuestro modelo es el que mostramos a continuación. Primero, vamos a presentar las fórmulas paso

a paso del procedimiento, estableciendo los valores que han de quedar fijos, y más tarde,

introducimos los códigos de LINGO con las soluciones finales. Para el método lexicográfico

secuencial no hay distinción entre los pesos generales y los proporcionados por Saaty. Esto se debe a

que con este proceso sólo se tiene en cuenta el orden de importancia que le vamos dando a las

distintas funciones, y esto es idéntico para los dos métodos. Señalar además, que en este

procedimiento, la solución que proporciona la última prioridad, al tener incorporada las soluciones y

restricciones de todas las anteriores, será la solución final del problema.

Prioridad 𝑄1:

min𝑣1 = 𝑝7 + 𝑛8

𝑠. 𝑎. 𝑓7 + 𝑛7 − 𝑝7 = 𝑎7 𝑓8 + 𝑛8 − 𝑝8 = 𝑎8 𝑥 ∈ �̌�

Obtenemos unos valores para 𝑝7 𝑦 𝑛8, y los fijamos en la siguiente prioridad 𝑄2:

min𝑣2 = 𝑝3 + 𝑝5 + 𝑝6

𝑠. 𝑎. 𝑓3 + 𝑛3 − 𝑝3 = 𝑎3 𝑓5 + 𝑛5 − 𝑝5 = 𝑎5 𝑓6 + 𝑛6 − 𝑝6 = 𝑎6 𝑓7 + 𝑛7 − 𝑝7(𝑑𝑎𝑡𝑜) = 𝑎7 𝑓8 + 𝑛8(𝑑𝑎𝑡𝑜) − 𝑝8 = 𝑎8 𝑥 ∈ �̌�

Page 105: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

83 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

Prioridad 𝑄3:

min 𝑣3 = 𝑝1 + 𝑝2 + 𝑛4

𝑠. 𝑎. 𝑓1 + 𝑛1 − 𝑝1 = 𝑎1 𝑓2 + 𝑛2 − 𝑝2 = 𝑎2 𝑓3 + 𝑛3 − 𝑝3(𝑑𝑎𝑡𝑜) = 𝑎3 𝑓4 + 𝑛4 − 𝑝4 = 𝑎4 𝑓5 + 𝑛5 − 𝑝5(𝑑𝑎𝑡𝑜) = 𝑎5 𝑓6 + 𝑛6 − 𝑝6(𝑑𝑎𝑡𝑜) = 𝑎6 𝑓7 + 𝑛7 − 𝑝7(𝑑𝑎𝑡𝑜) = 𝑎7 𝑓8 + 𝑛8(𝑑𝑎𝑡𝑜) − 𝑝8 = 𝑎8 𝑥 ∈ �̌�

Para los valores que vamos obteniendo (los que hemos señalado en la siguiente prioridad como

dato), podemos introducir el valor que corresponda en la restricción correspondiente o bien

establecer el valor como un dato en vez de como una variable en el código del programa que

vayamos a usar.

6.4.1 Prioridad 𝑸𝟏

Código de LINGO del modelo lexicográfico secuencial para la prioridad 𝑄1

min = v1;

v1 = n8 + p7;

z7 + n7 - p7 = 1.3*z7ideal;

z8 + n8 - p8 = 0.7*z8ideal;

w1 = 0.058;

w2 = 0.058;

w3 = 0.115;

w4 = 0.077;

w5 = 0.115;

w6 = 0.115;

w7 = 0.231;

w8 = 0.231;

z1ideal = 619.73;

z1antiideal = 1659.2;

z2ideal = -0.098;

z2antiideal = 1.164;

z3ideal = 6.76;

z3antiideal = 15.73;

z4ideal = 81.412;

z4antiideal = 37.51;

z5ideal = 143.8;

z5antiideal = 180.53;

Page 106: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

84

z6ideal = 0.13379;

z6antiideal = 0.202;

z7ideal = -0.963;

z7antiideal = 16.717;

z8ideal = 5.922;

z8antiideal = 2.731;

z7 = 7.38 + 0.332*Ch + 2.12*AEA - 0.943*Dr + 0.33*EA - 5.65*TE

+ 3.97*Ch*AEA - 1.15*Ch*Dr - 3.09*AEA*Dr - 1.58*Ch*EA

- 1.66*AEA*EA - 1.23*Ch*TE - 2.48*AEA*TE

+ 1.7*Dr*TE + 13.9*EA*TE;

z8 = 4.21 - 0.279*Ch + 0.311*AEA + 0.152*Dr - 0.595*EA + 0.878*TE

+ 0.726*Ch*AEA + 0.417*Ch*Dr - 0.973*AEA*Dr

+ 1.21*Ch*EA - 0.543*AEA*EA + 0.169*Dr*EA

- 0.898*Ch*TE - 0.269*AEA*TE + 0.682*Dr*TE

- 1.22*EA*TE;

@Free (z1);

@Free (z2);

@Free (z3);

@Free (z4);

@Free (z5);

@Free (z6);

@Free (z7);

@Free (z8);

@Free (z2ideal);

@Free (z7ideal);

@BND (0,Ch,1);

@BND (0,AEA,1);

@BND (0,Dr,1);

@BND (0,EA,1);

@BND (0,TE,1);

@GIN (Dr);

@GIN (EA);

@GIN (TE);

Tabla 6–6. Solución del modelo lexicográfico secuencial para la prioridad 𝑄1

Global optimal solution found.

Objective value: 0.2889000

Extended solver steps: 1

Total solver iterations: 17

Variable Value Reduced Cost

V1 0.2889000 0.000000

N8 0.000000 1.000000

P7 0.2889000 0.000000

Z7 -0.9630000 0.000000

N7 0.000000 1.000000

Z7IDEAL -0.9630000 0.000000

Z8 4.991000 0.000000

P8 0.8456000 0.000000

Z8IDEAL 5.922000 0.000000

W1 0.5800000E-01 0.000000

W2 0.5800000E-01 0.000000

W3 0.1150000 0.000000

Page 107: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

85 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

W4 0.7700000E-01 0.000000

W5 0.1150000 0.000000

W6 0.1150000 0.000000

W7 0.2310000 0.000000

W8 0.2310000 0.000000

Z1IDEAL 619.7300 0.000000

Z1ANTIIDEAL 1659.200 0.000000

Z2IDEAL -0.9800000E-01 0.000000

Z2ANTIIDEAL 1.164000 0.000000

Z3IDEAL 6.760000 0.000000

Z3ANTIIDEAL 15.73000 0.000000

Z4IDEAL 81.41200 0.000000

Z4ANTIIDEAL 37.51000 0.000000

Z5IDEAL 143.8000 0.000000

Z5ANTIIDEAL 180.5300 0.000000

Z6IDEAL 0.1337900 0.000000

Z6ANTIIDEAL 0.2020000 0.000000

Z7ANTIIDEAL 16.71700 0.000000

Z8ANTIIDEAL 2.731000 0.000000

CH 0.000000 1.922000

AEA 1.000000 -3.450000

DR 1.000000 -2.333000

EA 0.000000 12.57000

TE 1.000000 -6.430000

Z1 0.000000 0.000000

Z2 0.000000 0.000000

Z3 0.000000 0.000000

Z4 0.000000 0.000000

Z5 0.000000 0.000000

Z6 0.000000 0.000000

6.4.2 Prioridad 𝑸𝟐

Código de LINGO del modelo lexicográfico secuencial para la prioridad 𝑄2

min = v2;

v2 = p6 + p5 + p3;

z7 + n7 - p7 = 1.3*z7ideal;

z8 + n8 - p8 = 0.7*z8ideal;

n8 = 0;

p7 = 0.29;

z3 + n3 - p3 = 1.3*z3ideal;

z5 + n5 - p5 = 1.3*z5ideal;

z6 + n6 - p6 = 1.3*z6ideal;

beta1 = w1;

beta2 = w2;

beta3 = w3;

alfa4 = w4;

beta5 = w5;

beta6 = w6;

beta7 = w7;

alfa8 = w8;

Page 108: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

86

z1ideal = 619.73;

z1antiideal = 1659.2;

z2ideal = -0.098;

z2antiideal = 1.164;

z3ideal = 6.76;

z3antiideal = 15.73;

z4ideal = 81.412;

z4antiideal = 37.51;

z5ideal = 143.8;

z5antiideal = 180.53;

z6ideal = 0.13379;

z6antiideal = 0.202;

z7ideal = -0.963;

z7antiideal = 16.717;

z8ideal = 5.922;

z8antiideal = 2.731;

z3 = 8.33 - 0.418*Ch + 0.0624*AEA - 0.0856*Dr + 2.85*EA + 0.499*TE

- 0.727*Ch*Dr - 0.399*AEA*Dr - 0.356*AEA*EA

- 0.516*Ch*TE - 0.325*AEA*TE + 0.363*Dr*TE + 3.77*EA*TE;

z5 = 10^(VSlogdespues);

VSlogdespues = 2.25 - 0.0179*Ch - 0.00826*AEA + 0.00655*Dr - 0.0237*EA

- 0.00438*TE + 0.0117*Ch*AEA - 0.00301*Ch*Dr

- 0.0167*AEA*Dr + 0.0246*Ch*EA + 0.00735*AEA*EA

- 0.0157*Dr*EA - 0.00889*Ch*TE - 0.0119*AEA*TE

+ 0.0039*Dr*TE - 0.0294*EA*TE;

z6 = 0.189 - 0.00552*Ch - 0.0039*AEA - 0.00102*Dr - 0.0214*EA

+ 0.00281*TE + 0.0111*Ch*Dr - 0.0094*AEA*Dr

+0.0094*Ch*EA + 0.00598*Ch*TE - 0.0223*EA*TE;

z7 = 7.38 + 0.332*Ch + 2.12*AEA - 0.943*Dr + 0.33*EA - 5.65*TE

+ 3.97*Ch*AEA - 1.15*Ch*Dr - 3.09*AEA*Dr - 1.58*Ch*EA

- 1.66*AEA*EA - 1.23*Ch*TE - 2.48*AEA*TE

+ 1.7*Dr*TE + 13.9*EA*TE;

z8 = 4.21 - 0.279*Ch + 0.311*AEA + 0.152*Dr - 0.595*EA + 0.878*TE

+ 0.726*Ch*AEA + 0.417*Ch*Dr - 0.973*AEA*Dr

+ 1.21*Ch*EA - 0.543*AEA*EA + 0.169*Dr*EA

- 0.898*Ch*TE - 0.269*AEA*TE + 0.682*Dr*TE

- 1.22*EA*TE;

@Free (z1);

@Free (z2);

@Free (z3);

@Free (z4);

@Free (z5);

@Free (z6);

@Free (z7);

@Free (z8);

@Free (z2ideal);

@Free (z7ideal);

@BND (0,Ch,1);

@BND (0,AEA,1);

@BND (0,Dr,1);

@BND (0,EA,1);

@BND (0,TE,1);

@GIN (Dr);

@GIN (EA);

Page 109: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

87 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

@GIN (TE);

Tabla 6–7. Solución del modelo lexicográfico secuencial para la prioridad 𝑄2

Global optimal solution found.

Objective value: 0.3563000E-02

Extended solver steps: 1

Total solver iterations: 11

Variable Value Reduced Cost

V2 0.3563000E-02 0.000000

P6 0.3563000E-02 0.000000

P5 0.000000 1.000000

P3 0.000000 1.000000

Z7 -0.9630000 0.000000

N7 0.1100000E-02 0.000000

P7 0.2900000 0.000000

Z7IDEAL -0.9630000 0.000000

Z8 4.991000 0.000000

N8 0.000000 0.000000

P8 0.8456000 0.000000

Z8IDEAL 5.922000 0.000000

Z3 8.444800 0.000000

N3 0.3432000 0.000000

Z3IDEAL 6.760000 0.000000

Z5 165.6571 0.000000

N5 21.28292 0.000000

Z5IDEAL 143.8000 0.000000

Z6 0.1774900 0.000000

N6 0.000000 1.000000

Z6IDEAL 0.1337900 0.000000

BETA1 0.000000 0.000000

W1 0.000000 0.000000

BETA2 0.000000 0.000000

W2 0.000000 0.000000

BETA3 0.000000 0.000000

W3 0.000000 0.000000

ALFA4 0.000000 0.000000

W4 0.000000 0.000000

BETA5 0.000000 0.000000

W5 0.000000 0.000000

BETA6 0.000000 0.000000

W6 0.000000 0.000000

BETA7 0.000000 0.000000

W7 0.000000 0.000000

ALFA8 0.000000 0.000000

W8 0.000000 0.000000

Z1IDEAL 619.7300 0.000000

Z1ANTIIDEAL 1659.200 0.000000

Z2IDEAL -0.9800000E-01 0.000000

Z2ANTIIDEAL 1.164000 0.000000

Z3ANTIIDEAL 15.73000 0.000000

Z4IDEAL 81.41200 0.000000

Z4ANTIIDEAL 37.51000 0.000000

Z5ANTIIDEAL 180.5300 0.000000

Z6ANTIIDEAL 0.2020000 0.000000

Z7ANTIIDEAL 16.71700 0.000000

Z8ANTIIDEAL 2.731000 0.000000

CH 0.000000 0.1156000E-01

AEA 1.000000 -0.1330000E-01

Page 110: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

88

DR 1.000000 -0.1042000E-01

EA 0.000000 -0.4369998E-01

TE 1.000000 0.2809978E-02

VSLOGDESPUES 2.219210 0.000000

Z1 0.000000 0.000000

Z2 0.000000 0.000000

Z4 0.000000 0.000000

6.4.3 Prioridad 𝑸𝟑

Código de LINGO del modelo lexicográfico secuencial para la prioridad 𝑄3

min = v3;

v3 = n4 + p1 + p2;

n8 = 0;

p7 = 0.29;

p3 = 0;

p5 = 0;

p6 = 0.0036;

z1 + n1 - p1 = 1.3*z1ideal;

z2 + n2 - p2 = 1.3*z2ideal;

z3 + n3 - p3 = 1.3*z3ideal;

z4 + n4 - p4 = 0.7*z4ideal;

z5 + n5 - p5 = 1.3*z5ideal;

z6 + n6 - p6 = 1.3*z6ideal;

z7 + n7 - p7 = 1.3*z7ideal;

z8 + n8 - p8 = 0.7*z8ideal;

z1ideal = 619.73;

z1antiideal = 1659.2;

z2ideal = -0.098;

z2antiideal = 1.164;

z3ideal = 6.76;

z3antiideal = 15.73;

z4ideal = 81.412;

z4antiideal = 37.51;

z5ideal = 143.8;

z5antiideal = 180.53;

z6ideal = 0.13379;

z6antiideal = 0.202;

z7ideal = -0.963;

z7antiideal = 16.717;

z8ideal = 5.922;

z8antiideal = 2.731;

z1 = 10^(VSlogantes);

VSlogantes = 3.02 + 0.077*Ch + 0.0401*AEA - 0.0362*Dr - 0.136*EA

+ 0.0831*TE - 0.105*Ch*AEA + 0.00995*Ch*Dr

+ 0.00905*AEA*Dr + 0.0863*Dr*EA + 0.0398*Ch*TE

+ 0.01444*AEA*TE - 0.104*Dr*TE - 0.121*EA*TE;

Page 111: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

89 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

z2 = 0.103 + 0.411*Ch - 0.201*AEA + 0.272*Dr + 0.39*EA + 0.379*TE

+ 0.265*Ch*Dr + 0.172*AEA*EA - 0.462*Dr*EA

- 0.506*Ch*TE + 0.24*Dr*TE - 0.564*EA*TE;

z3 = 8.33 - 0.418*Ch + 0.0624*AEA - 0.0856*Dr + 2.85*EA + 0.499*TE

- 0.727*Ch*Dr - 0.399*AEA*Dr - 0.356*AEA*EA

- 0.516*Ch*TE - 0.325*AEA*TE + 0.363*Dr*TE + 3.77*EA*TE;

z4 = 37.9 + 12*Ch + 4.72*AEA + 2.54*Dr + 7.75*EA + 1.68*TE

+ 3.32*Ch*AEA + 0.782*Ch*Dr - 2.97*AEA*Dr + 7.73*Ch*EA

- 1.15*AEA*EA + 8.79*Dr*EA - 3.45*Ch*TE - 6.79*AEA*TE

+ 2.28*Dr*TE + 1.3*EA*TE;

z5 = 10^(VSlogdespues);

VSlogdespues = 2.25 - 0.0179*Ch - 0.00826*AEA + 0.00655*Dr - 0.0237*EA

- 0.00438*TE + 0.0117*Ch*AEA - 0.00301*Ch*Dr

- 0.0167*AEA*Dr + 0.0246*Ch*EA + 0.00735*AEA*EA

- 0.0157*Dr*EA - 0.00889*Ch*TE - 0.0119*AEA*TE

+ 0.0039*Dr*TE - 0.0294*EA*TE;

z6 = 0.189 - 0.00552*Ch - 0.0039*AEA - 0.00102*Dr - 0.0214*EA

+ 0.00281*TE + 0.0111*Ch*Dr - 0.0094*AEA*Dr

+0.0094*Ch*EA + 0.00598*Ch*TE - 0.0223*EA*TE;

z7 = 7.38 + 0.332*Ch + 2.12*AEA - 0.943*Dr + 0.33*EA - 5.65*TE

+ 3.97*Ch*AEA - 1.15*Ch*Dr - 3.09*AEA*Dr - 1.58*Ch*EA

- 1.66*AEA*EA - 1.23*Ch*TE - 2.48*AEA*TE

+ 1.7*Dr*TE + 13.9*EA*TE;

z8 = 4.21 - 0.279*Ch + 0.311*AEA + 0.152*Dr - 0.595*EA + 0.878*TE

+ 0.726*Ch*AEA + 0.417*Ch*Dr - 0.973*AEA*Dr

+ 1.21*Ch*EA - 0.543*AEA*EA + 0.169*Dr*EA

- 0.898*Ch*TE - 0.269*AEA*TE + 0.682*Dr*TE

- 1.22*EA*TE;

@Free (z1);

@Free (z2);

@Free (z3);

@Free (z4);

@Free (z5);

@Free (z6);

@Free (z7);

@Free (z8);

@Free (z2ideal);

@Free (z7ideal);

@BND (0,Ch,1);

@BND (0,AEA,1);

@BND (0,Dr,1);

@BND (0,EA,1);

@BND (0,TE,1);

@GIN (Dr);

@GIN (EA);

@GIN (TE);

Tabla 6–8. Solución del modelo lexicográfico secuencial para la prioridad 𝑄3

Global optimal solution found.

Objective value: 275.7427

Extended solver steps: 1

Total solver iterations: 21

Page 112: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

90

Variable Value Reduced Cost

V3 275.7427 0.000000

N4 17.62679 0.000000

P1 257.1955 0.000000

P2 0.9204641 0.000000

N8 0.000000 0.000000

P7 0.2900000 0.000000

P3 0.000000 0.000000

P5 0.000000 0.000000

P6 0.3600000E-02 0.000000

Z1 1062.844 0.000000

N1 0.000000 1.000000

Z1IDEAL 619.7300 0.000000

Z2 0.7930641 0.000000

N2 0.000000 1.000000

Z2IDEAL -0.9800000E-01 0.000000

Z3 8.445011 0.000000

N3 0.3429891 0.000000

Z3IDEAL 6.760000 0.000000

Z4 39.36161 0.000000

P4 0.000000 1.000000

Z4IDEAL 81.41200 0.000000

Z5 165.6616 0.000000

N5 21.27844 0.000000

Z5IDEAL 143.8000 0.000000

Z6 0.1774942 0.000000

N6 0.3275942E-04 0.000000

Z6IDEAL 0.1337900 0.000000

Z7 -0.9619000 0.000000

N7 0.000000 46.51077

Z7IDEAL -0.9630000 0.000000

Z8 4.991297 0.000000

P8 0.8458968 0.000000

Z8IDEAL 5.922000 0.000000

Z1ANTIIDEAL 1659.200 0.000000

Z2ANTIIDEAL 1.164000 0.000000

Z3ANTIIDEAL 15.73000 0.000000

Z4ANTIIDEAL 37.51000 0.000000

Z5ANTIIDEAL 180.5300 0.000000

Z6ANTIIDEAL 0.2020000 0.000000

Z7ANTIIDEAL 16.71700 0.000000

Z8ANTIIDEAL 2.731000 0.000000

VSLOGANTES 3.026470 0.000000

CH 0.000000 130.1644

AEA 0.9996812 0.000000

DR 1.000000 -430.7719

EA 0.000000 149.7582

TE 1.000000 -311.4014

VSLOGDESPUES 2.219222 0.000000

Page 113: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

91 Optimización Multiobjetivo aplicada a la formulación de un fármaco de administración oftálmica

La solución proporcionada por la tercera prioridad como hemos explicado anteriormente, es la

solución final para el método de programación por metas lexicográficas secuencial. Adjuntamos el

valor de la solución en la siguiente tabla para mayor claridad:

Tabla 6–9. Solución final del modelo lexicográfico secuencial

VARIABLES Valores de todas las variables de desviación que intervienen en

nuestro problema. 𝑪𝒉 = 𝟎

𝑨𝑬𝑨 = 𝟏 𝑛1 = 0; 𝑝1 = 257.2 𝑛2 = 0; 𝑝2 = 0.92

𝑫𝒓 = 𝟏 𝑛3 = 0.34; 𝑝3 = 0 𝑛4 = 17.63; 𝑝4 = 0

𝑬𝑨 = 𝟎 𝑛5 = 21.3; 𝑝5 = 0 𝑛6 = 0; 𝑝6 = 0

𝑻𝑬 = 𝟏 𝑛7 = 0; 𝑝7 = 0.29 𝑛8 = 0; 𝑝8 = 0.85

Al tratarse de un método de resolución en el que intervienen niveles de aspiración, uno cabría pensar

que se obtienen resultados similares al método de Programación por Metas Ponderadas. Sin

embargo, esta solución no se parece a ninguna de las obtenidas por métodos anteriores.

En general, tras haber estudiado los distintos métodos y ver las soluciones de cada uno, podemos

afirmar que el método por compromiso es el que ha demostrado tener una solución más robusta de

todos. Además, se mantiene prácticamente constante para todas las métricas, aportando consistencia

al modelo.

Los métodos de programación por metas, tanto el de Metas Ponderadas como el Lexicográfico

Secuencial, son muy interesantes cuando se tienen muy claro los valores para los niveles de

aspiración y los pesos que debemos asignar. Esta condición, que a la vez que lo hace interesante y

destacado entre métodos parecidos, es la que lo convierte en un método no tan fiable cuando no se

tiene certeza del valor de han de tomar los niveles de aspiración, a la par que muy sensible a las

modificaciones de estos.

Tras el intercambio de impresiones con gente de farmacia, han demostrado un severo interés en este

tipo de métodos, y piensan que se aplicación es un complemento ideal al análisis individual de todas

las respuestas que propusieron en la memoria Fin de Máster que comentamos. Además, piensan

seguir profundizando en la búsqueda de métodos adecuados para los intereses que buscan en la

optimización de fármacos.

Page 114: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Métodos de resolución de Programación por Metas

92

La última apreciación que nos han comentado es el especial interés que ha surgido en métodos

relacionados con la optimización secuencial, siempre que se tenga un conocimiento claro sobre los

niveles de aspiración. Aquí podemos pensar que tenemos un problema, pero no es así puesto que los

valores no los tenemos que imaginar nosotros, sino que la gran mayoría de veces vendrán impuestos

por estándares farmacéuticos o bien por la propia industria. Respecto al resto de métodos que se han

propuesto, el método de las Metas Ponderadas tiene el inconveniente en el establecimiento de los

pesos, ya que a priori no saben con certeza la importancia de cada una de las respuestas, debido a que

el resultado derivará del estudio y ensayos posteriores.

Page 115: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

93

7 CONCLUSIONES

n este capítulo final vamos a recapitular de forma general lo que hemos obtenido en el presente

proyecto para comprobar si hemos logrado alcanzar las metas propuestas en el objetivo general.

E

Se puede admitir la fuerza bruta, pero la razón

bruta es insoportable.

-Oscar Wilde -

Page 116: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

Conclusiones

94

El objetivo general de este proyecto fue evaluar y estudiar una serie de métodos para la resolución de

un problema no lineal multiobjetivo, intentando buscar alguna solución que sirva como posible

resultado en los distintos métodos empleados.

Entre los puntos que se han visto para cumplir con el objetivo general, además de ir satisfaciendo los

objetivos específicos, podemos concluir que:

Se apreciaron las generalidades que debe tener un problema de optimización multiobjetivo.

Se conocieron aspectos de optimización no lineal no vistos hasta ese momento.

Se han descrito todos los aspectos y datos relevantes del problema de partida, adaptándolo de

una forma satisfactoria a la formulación general de un problema multiobjetivo.

La herramienta LINGO ha servido en la resolución de los modelos, resultando acertada la

elección de este solver para el proyecto.

Las respuestas individuales, tras haberse comprobado con otros métodos, han reflejado un

comportamiento bastante aceptable para lo que buscábamos, de forma que la codificación de

las mismas ha sido buena.

La aplicación de los Métodos de Programación por Compromiso y Por Metas ha dado

resultados coherentes, a pesar que algunos de ellos estén sujetos a cambios bruscos en las

ponderaciones y niveles de aspiración.

La estructura que se ha seguido en el presente documento consideramos que era la más adecuada,

primero para presentar de forma general un problema multiobjetivo, los factores y conceptos que

intervienen en el mismo, así como una adaptación de nuestro problema a ellos.

Para resolverlo, la división se ha centrado primero en la aportación de unas nociones generales de

cómo resolver problemas relacionados de forma genérica, así como la adaptación paso a paso a los

métodos de resolución.

La selección por parte de quien suscribe este documento del Método de Programación por

Compromiso, así como de los Métodos de Programación por Metas es debido a la facilidad que

tienen a la hora de adaptarse a distintos y diversos problemas, y debido al carácter especial del

nuestro, consideramos que iban a sernos de gran utilidad, como pensamos que ha ocurrido.

Como resultado al punto de evaluación no hemos encontrado ninguna solución que sea el resultado

de todos los métodos y que podamos tomar como solución final para nuestro problema. Sin embargo,

el estudio ha sido de gran utilidad para los responsables de Farmacia (en concreto el Departamento

de Tecnología Farmacéutica de la Universidad de Sevilla), considerando el estudio muy interesante.

Además, han comentado que quieren estudiar en profundidad estas técnicas, aplicando los métodos

con resultados más fiables en los pesos, pero sobre todo, en los niveles de aspiración.

Por último, señalar que para futuros trabajos relacionados se propone realizar un estudio similar

ajustando de otra manera los pesos de las variables de entrada, así como el valor de los niveles de

aspiración que intervienen cuando tenemos que satisfacer las metas.

Page 117: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

95

REFERENCIAS

[1] Stillwell, D.A. Seaver, y W. Edwards, A Comparison of Weight Approximation Techniques in

Multiattribute Utility Decision Making Organization Behaviour and Human Performance, 28: 62-77,

1981.

[2] El punto de partida de los procesos analíticos jerarquizados es el artículo de Saaty, A Scaling

Method for Priorities in Hierarchical Structures, Journal of Mathematical Psychology, 15: 234-281,

1977.

[3] El punto de partida de la programación por compromiso son los siguientes dos trabajos: Yu, A

Class of Solutions for Group Decision Problems, Management Science 19: 688-693, 1973 y Zeleny,

Multiple Criteria Decision Making, Columbia: 262-301, 1973.

[4] Freimer, M., y P.L. Yu, Some New Results on Compromise Solutions for Group Decision

Problems, Management Science 22: 688-693, 1976.

[5] Simon, A Behavioral Model of Rational Choice, Quaterly Journal of Economics 69: 99-118,

1955 y Models of Man, John Wiley and Sons, 1957.

Page 118: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución
Page 119: Trabajo Fin de Gradobibing.us.es/proyectos/abreproy/90097/fichero... · Programación por Metas Ponderadas y la Programación Lexicográfica Secuencial. Pretendemos buscar una solución

97

BIBLIOGRAFÍA

Wayne L. Winston: Operations Research - Applications and Algorithms, Third Edition, 1994.

G.L. Nemhauser, A.H.G. Rinnooy Kan, M.J. Todd: Handbook in Operations Research and

Management Science, Volume 1, 1991.

Turgut M. Ozan: Applied Mathematical Programming for Production and Engineering Management,

1986.

Romero, Carlos: Análisis de las Decisiones Multicriterio, Primera Edición, 1996.

M. Méndez; B. Galvám; D. Greiner; G. Winter: Algoritmos Evolutivos y Punto de Funcionamiento

Aplicados a un Problema Real de Optimización Multiobjetivo en Diseño de Sistemas de Seguridad.

Pérez Gladish, Blanca; Arenas, Mar; Bilbao, Amelia; Rodríguez, M. Victoria; Jiménez, Mariano:

Aplicación de la Programación Compromiso al Análisis del Estado de las Listas de Espera

Quirúrgicas bajo diversas Hipótesis de Permanencia Máxima, 1999.

Carlos Romero; Tahir Rehman: La Programación Multiobjetivo y la Planificación Agraria: Algunas

Consideraciones Teóricas, 1986.

Valero López, Francisco José: La Programación Lineal Multicriterio, 1977.

Ivorra, Carlos: Optimización con LINGO.

Canizo, Erica; Lucero, Paola: Software Para Programación Lineal LINGO/LINDO.

González Rodríguez, Pedro Luis, Herramientas Para la Toma de Decisiones, 3º G.I.T.I. Escuela

Superior de Ingeniería de la Universidad de Sevilla, apuntes de clase.