Marco Teorico
Short Description
Marco teorico Programación lineal...
Description
MARCO TEORICO Dado que el enfoque central del estudio de este proyecto estará puesto bajo el tema de la programación programación lineal, como campo de aplicación aplicación de las estructuras de datos, es necesario plantear algunos conceptos claves que sirvan de apoyo para una mayor comprensión durante el desarrollo de este tema. Para empezar, empezar, antes de hablar sobre la programación lineal entenderemos el concepto de Optimización como lo plantea Marta B. Ferrero y Omar J. A. Chiotti en su libro Optimización al “ proceso de seleccionar, a partir de un conjunto de alternativas posibles, aquella que satisfaga el o los objetivos propuestos” 1 y precisamente ese es el fin de la programación lineal la cual entenderemos como lo expone el autor O’Connor (1997): “técnica de programación matemática, u optimización, que busca encontrar aquella solución o alternativa de entre otras muchas posibles soluciones de un problema, la mejor solución posible en la asignación de recursos limitados (energía, máquinas, materiales, dinero, personal, espacio, tiempo, etc.) para lograr el máximo beneficio máximo beneficio o costo mínimo”. 2 Matemáticamente la programación lineal es expresada como el proceso de optimizar, es decir, maximizar o minimizar funciones lineales en varias variables reales con restricciones lineales (sistemas de inecuaciones lineales), optimizando una función objetivo también lineal. La programación lineal trata de la búsqueda de la solución del siguiente problema lineal:
O'Connor, J. L. Problema de programación lineal lineal [ecuaciones participantes] participantes] Recuperado de: Técnicas de cálculo para sistemas de ecuaciones, programación lineal y programación entera (1997)
Donde: Función objetivo: es la función c1x1+ c2x2+···+cnxn que representa el objetivo global expresado de forma matemática en términos de los datos y las variables de decisión
1 FERRERO,
Marta B. y CHIOTTI, Omar. "Optimización". Edición N. J. Scenna. Buenos Aires, 2001. p. 435-496. O'Connor, J. L. (1997). Técnicas de c álculo para sistemas de ecuaciones, programación lineal y programación entera. p. 365-366 2
Restricciones o condiciones: Las funciones ai1x1+···+ainxn, 1 ≤ i ≤ m, son las limitaciones sobre los valores de las variables en el modelo matemático. Variables de decisión: Las variables del problema x1,...,xn. Son las variables que se buscan determinar en el modelo. Existen diversos métodos para resolver este tipo d e problemas de programación lineal entre los más conocidos están el método gráfico y el método simplex. En este proyecto no se hará mayor énfasis en el método gráfico debido a la limitante de solo poder trabajar con no más de dos variables de decisión, en cambio el método simplex es considerado uno de los métodos más eficaces. “El método simplex permite la resolución de problemas de programación lineal de grandes dimensiones muy eficazmente” 3, es por esa razón que para el desarrollo de este proyecto se empleará el uso de este método para la solución de problemas de programación lineal. Según diferentes autores consideran la programación lineal como una técnica de gran importancia y utilidad ya que surge como la forma más natural de abordar muchos problemas de la ciencia, la técnica o la economía donde se trata de asignar o compartir determinados recursos disponibles en cantidades limitadas de una forma óptima “En la actualidad es una herramienta de uso normal que ha ahorrado miles o millo nes de dólares a muchas compañías o negocios, incluso empresas medianas, en los distintos países industrializados del mundo”4 La programación lineal debido a su gran utilidad durante los últimos años se ha asociado de manera significativa con el área informática, según el autor Lieberman en Introducción a la investigación de operaciones menciona que “Una proporción muy grande de los programas científicos en computadoras está dedicada al uso de la programación l ineal”,
5
esto motiva
al presente estudio a crear un software con el fin de solucionar un problema de programación lineal específico, donde se pretende emplear las estructuras de datos del tipo listas para el manejo y organización de los datos. La estructura de datos según el autor Joyanes en Fundamentos de programación “es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella”6 .
3
O'Connor, J. L. (1997). Técnicas de cálculo para sistemas de ecuaciones, programación lineal y programación entera. p. 365 4 Hillier, F. S., Lieberman, G. J., & Osuna, M. A. G. (1997). IntroducciónalaInvestigacióndeOperaciones (Vol. 1). McGrawHill. p. 21 5
Hillier, F. S., Lieberman, G. J., & Osuna, M. A. G. (1997). IntroducciónalaInvestigacióndeOperaciones (Vol. 1). McGrawHill. p. 22 6
Joyanes Aguilar, L., & Aguilar, L. J. (2003). Fundamentosdeprogramación:algoritmosyestructuradedatosy objetos. P. 248
Los tipos de datos más frecuente en los diferentes lenguajes de programación se presentan a continuación:
Joyanes Aguilar, L. Tipos de datos [Estructuras de datos] recuperado de: Fundamentos de programación (2003)
No se pretende estudiar todos los tipos de datos si no solamente enfocarnos en un tipo especial que son las estructuras de datos dinámicas y entre ellas
particularmente la
estructura de datos de listas que es el tipo de estructura con la que se pretende trabajar. Las estructuras de datos dinámicas nos permite la flexibilidad en el tamaño de memoria ocupado por la estructura, al contrario de las estructuras de datos estáticas donde el tamaño de memoria debe definirse antes de ejecutar el programa, esta es la ventaja más notoria de este tipo de estructura. La característica que representa las estructuras de datos del tipo listas es que por ser una
estructura de datos dinámica, su número de elementos puede variar durante la ejecución y que cada elemento posee un único elemento predecesor y un único elemento sucesor a este. Entre las operaciones que ofrece este tipo de estructura se pueden mencionar las siguientes: 1. Insertar, eliminar o localizar un elemento. 2. Determinar el tamaño —número de elementos— de la lista. 3. Recorrer la lista para localizar un determinado elemento. 4. Clasificar los elementos de la lista en orden ascendente o descendente. 5. Unir dos o más listas en una sola. 6. Dividir una lista en varias sublistas. 7. Copiar la lista. 8. Borrar la lista.
View more...
Comments