Está en la página 1de 4

MARCO TEORICO

Dado que el enfoque central del estudio de este proyecto estar puesto bajo el tema
de la programacin lineal, como campo de aplicacin de las estructuras de datos, es
necesario plantear algunos conceptos claves que sirvan de apoyo para una mayor
comprensin durante el desarrollo de este tema. Para empezar, antes de hablar sobre la
programacin lineal entenderemos el concepto de Optimizacin como lo plantea Marta B.
Ferrero y Omar J. A. Chiotti en su libro Optimizacin al proceso de seleccionar, a partir de
un conjunto de alternativas posibles, aquella que satisfaga el o los objetivos propuestos1 y
precisamente ese es el fin de la programacin lineal la cual entenderemos como lo expone
el autor OConnor (1997):
tcnica de programacin matemtica, u optimizacin, que busca encontrar aquella
solucin o alternativa de entre otras muchas posibles soluciones de un problema, la
mejor solucin posible en la asignacin de recursos limitados (energa, mquinas,
materiales, dinero, personal, espacio, tiempo, etc.) para lograr el mximo beneficio o
costo mnimo.2
Matemticamente la programacin 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 funcin objetivo tambin
lineal.
La programacin lineal trata de la bsqueda de la solucin del siguiente problema lineal:

O'Connor, J. L. Problema de programacin lineal [ecuaciones participantes] Recuperado de:


Tcnicas de clculo para sistemas de ecuaciones, programacin lineal y programacin entera (1997)

Donde:
Funcin objetivo: es la funcin c1x1+ c2x2++cnxn que representa el objetivo global
expresado de forma matemtica en trminos de los datos y las variables de decisin

1FERRERO, Marta B. y CHIOTTI, Omar. "Optimizacin". Edicin N. J. Scenna. Buenos Aires, 2001. p. 435-496.
2O'Connor, J. L. (1997). Tcnicas de clculo para sistemas de ecuaciones, programacin lineal y programacin entera. p.
365-366
Restricciones o condiciones: Las funciones ai1x1++ainxn, 1 i m, son las limitaciones
sobre los valores de las variables en el modelo matemtico.
Variables de decisin: Las variables del problema x1,...,xn. Son las variables que se buscan
determinar en el modelo.
Existen diversos mtodos para resolver este tipo de problemas de programacin lineal entre
los ms conocidos estn el mtodo grfico y el mtodo simplex. En este proyecto no se har
mayor nfasis en el mtodo grfico debido a la limitante de solo poder trabajar con no ms
de dos variables de decisin, en cambio el mtodo simplex es considerado uno de los
mtodos ms eficaces. El mtodo simplex permite la resolucin de problemas de
programacin lineal de grandes dimensiones muy eficazmente3, es por esa razn que para
el desarrollo de este proyecto se emplear el uso de este mtodo para la solucin de
problemas de programacin lineal.
Segn diferentes autores consideran la programacin lineal como una tcnica de gran
importancia y utilidad ya que surge como la forma ms natural de abordar muchos
problemas de la ciencia, la tcnica o la economa 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 millones de dlares a
muchas compaas o negocios, incluso empresas medianas, en los distintos pases
industrializados del mundo4
La programacin lineal debido a su gran utilidad durante los ltimos aos se ha asociado de
manera significativa con el rea informtica, segn el autor Lieberman en Introduccin a la
investigacin de operaciones menciona que Una proporcin muy grande de los programas
cientficos en computadoras est dedicada al uso de la programacin lineal, 5 esto motiva
al presente estudio a crear un software con el fin de solucionar un problema de
programacin lineal especfico, donde se pretende emplear las estructuras de datos del tipo
listas para el manejo y organizacin de los datos.
La estructura de datos segn el autor Joyanes en Fundamentos de programacin es una
coleccin de datos que pueden ser caracterizados por su organizacin y las operaciones que
se definen en ella6 .

3
O'Connor, J. L. (1997). Tcnicas de clculo para sistemas de ecuaciones, programacin lineal y programacin entera. p.
365
4 Hillier, F. S., Lieberman, G. J., & Osuna, M. A. G. (1997). Introduccin a la Investigacin de Operaciones (Vol. 1). McGraw-

Hill. p. 21
5
Hillier, F. S., Lieberman, G. J., & Osuna, M. A. G. (1997). Introduccin a la Investigacin de Operaciones (Vol. 1). McGraw-
Hill. p. 22
6
Joyanes Aguilar, L., & Aguilar, L. J. (2003). Fundamentos de programacin: algoritmos y estructura de datos y
objetos. P. 248
Los tipos de datos ms frecuente en los diferentes lenguajes de programacin se presentan
a continuacin:

Joyanes Aguilar, L. Tipos de datos [Estructuras de datos] recuperado de: Fundamentos de programacin (2003)

No se pretende estudiar todos los tipos de datos si no solamente enfocarnos en un tipo


especial que son las estructuras de datos dinmicas 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 dinmicas nos permite la flexibilidad en el tamao de memoria ocupado
por la estructura, al contrario de las estructuras de datos estticas donde el tamao de
memoria debe definirse antes de ejecutar el programa, esta es la ventaja ms notoria de este
tipo de estructura.
La caracterstica que representa las estructuras de datos del tipo listas es que por ser una
estructura de datos dinmica, su nmero de elementos puede variar durante la ejecucin 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 tamao nmero 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 ms listas en una sola.
6. Dividir una lista en varias sublistas.
7. Copiar la lista.
8. Borrar la lista.