4-9-2017
Investigación de operaciones
DS-DIOP-1702-B1-001
Docente: Araceli Esquivel López
Unidad 3. Modelos de programación no lineal
Actividad 1. Importancia de los Métodos de
programación no lineal en el desarrollo de software
1
Actividad 1. Importancia de los Métodos de programación no lineal en el
desarrollo de software
Introducción
“La programación no lineal tiene como objetivo la optimización de funciones no lineales o lineales sujeto a restricciones no lineales (o funciones no lineales sujeto a restricciones lineales). Las típicas áreas de aplicación son: valoración de proyectos, problemas de diseño estructural, ajuste de curvas, asignación de recursos, diseño de procesos, etc.” (De la Fuente y Priori, 1996, p.14). En esta actividad relacionarás este tipo de métodos con el desarrollo de software.
Propósito
Esta actividad tiene la finalidad de que comprendas, analices y describas características de los algoritmos de solución para la programación no lineal e identifiques su importancia en el desarrollo de software.
Instrucciones
1. Analiza y explica el concepto de programación no lineal.
En matemáticas, programación no lineal (PNL) es el proceso de resolución de un sistema de igualdades y desigualdades sujetas a un conjunto de restricciones sobre un conjunto de variables reales desconocidas, con un función objetivo a maximizar (o minimizar), cuando alguna de las restricciones o la función objetivo no son lineales. ("Programación no lineal", 2017)
2. Identifica
Los tipos de métodos de programación no lineal.
Según los contenidos de la asignatura son los siguientes: (UnADM:2017:2) Para problemas de programación no lineal son:
Optimización clásica de programación no lineal Puntos de inflexión, máximos y mínimos
Para problemas no restringidos en programación no lineal Multiplicadores de LaGrange (LAMDA)
Los métodos a usar dependen del tipo de problema a resolver, y éstos pueden ser:
Optimización no restringida
Optimización linealmente restringida
Programación cuadrática Programación convexa Programación separable Programación no convexa Programación geométrica Programación fraccional Problema de complementariedad
1
Optimización clásica de programación no lineal.Si la restricción no existe, o es una restricción de igualdad, con menor o igual número de variables que la función objetivo entonces, el cálculo diferencial, da la respuesta, ya que solo se trata de buscar los valores extremos de una función. (Unidad III: Programación no lineal:2017)
Puntos de inflexión: Máximos y mínimos.
Los puntos de inflexión se refieren a un punto donde los valores de x en una función continua
pasan de un tipo de concavidad a otro. (UnADM:2017:8)
Un punto de inflexión es un punto donde cambia la curvatura de la función. Puntos minimax. El punto minimax de la función lagrangiana es otro concepto relacionado con la solución de un problema de optimización. Si bien su definición no le hace útil a la hora de la resolución directa del problema, sí constituye un paso intermedio muy importante en la obtención del problema dual, que estudiaremos más adelante. En esta sección definimos dicho punto y estudiamos su relación con otro concepto, el punto de silla de la lagrangiana. (Unidad III: Programación no lineal:2017)
3. Lee el siguiente planteamiento e identifica el método de programación no lineal a utilizar para obtener los requerimientos solicitados: Una empresa de software produce aplicaciones web y sistemas informáticos, obteniendo ingresos de 200x2 + 250y2 unidades monetarias, siendo “x” el número aplicaciones web producidas e “y” el de sistemas informáticos. Para producir una aplicación web se necesitan una unidad de software y dos horas de trabajo, y para producir un sistema informático se necesitan tres unidades de software y dos horas de trabajo. Se dispone de 28 unidades de software y de 38 horas de trabajo. Se requiere al jefe del proyecto que calcule el número de aplicaciones web y de sistemas informáticos que se deben producir para maximizar los ingresos y que se calcule la cantidad que estaría dispuesta a pagar la empresa por una unidad adicional de software y por una hora más de trabajo.
Función objetivo: 𝑧 = 200𝑥2+ 250𝑦2 Aplicaciones web (x) Sistemas informáticos (y) Unidades monetarias 200𝑥2 250𝑦2 Restricción no más de 28 unidades de software 1 3 Restricción de no más de 38 unidades de tiempo 2 2 Restricción de valor 𝑥 ≥ 0 𝑦 ≥ 0
4. Menciona y explica el método de programación no lineal que utilizarás para obtener los resultados solicitados
Para resolver este tipo de problemas, podemos utilizar la programación cuadrática 5. Describe el algoritmo de solución a utilizar para resolver el modelo
Los problemas de programación cuadrática tienen restricciones lineales, pero ahora la función objetivo f (x) debe ser cuadrática. Entonces, la única diferencia entre éstos y un problema de programación lineal es que algunos términos de la función objetivo incluyen el cuadrado de una variable o el producto de dos variables (Hillier:2010:507), como en este caso.
2
Lo más importante en cualquier metodología y cualquier tipo de problemática es plantear correctamente la función objetivo así como las variables y las restricciones para entonces sí, determinar cómo plantear la solución y la metodología a seguir.
En este caso sería plantear la función objetivo, variables y restricciones, matriz del problema a resolver, condiciones KKT (en este caso), plasmar en una tabla (en Excel) correspondiente al método simplex donde introduciremos las variables artificiales y actualizando la fila objeto.
6. Utiliza un programa (los que seleccionaste en la unidad 2 o un programa de hoja de cálculo) donde puedas introducir datos del modelo y te ayude a calcularlo.
Siguiendo el video recomendado por la docente en línea, usé el Solver para resolver el problema planteado.
7. Resuelve el ejercicio con ayuda del programa seleccionado y describe la solución.
8. Describe el procedimiento realizado para llegar a la solución e imprime las pantallas donde se muestre el proceso en forma clara y detallada.
3
El proceso del Solver fue indicarle la celda donde queremos el resultado de la función objetivo que es el ingreso 𝑧 = 200𝑥2+ 250𝑦2 después se colocan las celdas que van a cambiar y que son los valores de x y y, para terminar colocando las restricciones. Después de darle clic a Resolver, el resultado que nos da el Solver es de 72,200 unidades monetarias.
Para calcular cuánto debería de pagar la empresa por una unidad adicional de software y por una unidad adicional de tiempo, lo que hago es incrementar en uno cada restricción, vuelvo a correr el Solver y el diferencial es lo que podría pagarse como adicional.
4
Como podemos ver en la restricción, ya estábamos sobrados en unidad de software, por lo que incrementar en uno, no hizo diferencia alguna por lo que no se puede pagar más por adicionar una unidad de software ya que no hay ingreso extra.
Ahora con una unidad de tiempo extra:
Aquí sí hay diferencia entre 72,200 y 76,050 unidades monetarias y ésta es 3,850 que es lo que se debe pagar por una unidad de tiempo adicional.
5
9. Integra tus conclusiones explicando cuál es la importancia de utilizar los métodos de programación no lineal en el ámbito del desarrollo de software.
10.
Guarda la actividad en formato de Word o equivalente con el nombre DIOP_U3_A1_XXYZ Sustituye las XX por las dos primeras letras del primer nombre, la Y por la inicial del apellido paterno y la Z por la inicial del apellido materno.Nota: no se aceptarán trabajos en PDF o
equivalente.
11. Consulta los criterios de evaluación de la actividad para considerar los aspectos a evaluar. 12. Envía el archivo a tu Docente en línea mediante la herramienta Foro con subida de archivos
para recibir retroalimentación. Espera y atiende la retroalimentación correspondiente.
13. Ingresa a la participación de mínimo uno de tus compañeros y realiza una aportación indicando la forma en que enriqueció tu propia concepción sobre la importancia de los métodos de programación no lineal en el desarrollo de software y la forma de aplicarlos.
Conclusión
Sigue siendo muy complejo y algo pesado el investigar, leer, ver tutoriales sin muchos ejemplos a qué echar mano, sin embargo, la temática es sumamente interesante y se confirma la valía de estos conocimientos. Es muy enriquecedor tratar de elaborar estos problemas esperando haber entendido un poco de la metodología y siguiendo nuestros instintos para determinar que la respuesta es la correcta o al menos lo más aproximado a ser correcta.
6
Referencias
UnADM, 2017, Investigación de operaciones Unidad 3 “Modelos de programación no lineal”, pp. 23 Hillier, F., & Lieberman, G. (2010). Introducción a la investigación de operaciones. México D.F.: McGraw-Hill. Pp. 978.
Taha, H., & González Pozo, V. (2004). Investigación de operaciones. México: Pearson Educación. Pp. 830.
Programación no lineal. (2017). Es.wikipedia.org. Recuperado 5 Septiembre 2017, a partir de https://es.wikipedia.org/wiki/Programaci%C3%B3n_no_lineal
Unidad III: Programación no lineal (2017). Recuperado 5 Septiembre 2017, a partir de http://itpn.mx/recursosisc/3semestre/investigaciondeoperaciones/Unidad%20III.pdf