Upload
independent
View
0
Download
0
Embed Size (px)
Citation preview
REPÚBLICA BOLIVARIANA DE VENEZUELAMINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN SUPERIOR
INSTITUTO UNIVERSITARIO POLITÉCNICO “SANTIAGO MARIÑO”SEDE BARCELONA
SECCIÓN: QNINVESTIGACIÓN DE OPERACIONES
PROGRAMACIÓN
PROFESOR: ALUMNA:CARLOS COPELAN YENIFER GUEVARA
C.I.: 22.707.105
NOVIEMBRE 2015
ÍNDICE
INTRODUCCIÓN.............................................................................................3
PROGRAMACIÓN ENTERA...........................................................................4
PROGRAMACIÓN PARAMÉTRICA................................................................7
PROGRAMACIÓN DINÁMICA........................................................................8
PROGRAMACIÓN NO LINEAL.....................................................................11
CONCLUSIONES..........................................................................................13
2
INTRODUCCIÓN
Los cambios revolucionarios originaron gran aumento en la división de
trabajo y la separación de las responsabilidades administrativas en las
organizaciones. Sin embargo esta revolución creo nuevos problemas que
ocurren hasta la fecha en muchas empresas. Uno de estos problemas es la
tendencia de muchos de los componentes a convertirse en imperios
relativamente autónomos, con sus propias metas y sistemas de valores. Este
tipo de problemas, y la necesidad de encontrar la mejor forma de resolverlos,
proporcionaron el surgimiento de la Investigación de Operaciones.
La Investigación de Operaciones aspira determinar la mejor solución (optima)
para un problema de decisión con la restricción de recursos limitados.
3
PROGRAMACIÓN ENTERA
Un modelo de programación entera es aquel que contiene restricciones y una
función objetivo idénticas a la formulada en programación lineal, la única
diferencia en que una o más variables de decisión deben tomar valor entero
en la solución final.
El modelo de programación entera es sencillamente la programación lineal
solo que con la característica de que la programación entera tiene una
restricción de que todas las variables sean valores enteros a este tipo de
modelos se les llama programación entera pura.
Esto nos quiere decir que la metodología para resolver los problemas de
programación entera es prácticamente el mismo que para hacer la
programación lineal.
La programación entera mixta (PEM) se ocupa solo cuando algunas de las
variables deben ser enteros y la suposición de divisibilidad se cumple para el
resto.
Esto se da cuando algunos datos deben ser enteros como la cantidad de
personal dentro de una empresa ya que no se pueden asignar 2.5
empleados se deben redondear a 3 pero dentro del mismo modelo se asigna
el salario ya que puede ser $2000.50 a estos modelos se les reconoce por
(PEM).
Las programaciones enteras binarias son aquellas donde incluyen decisiones
de si o no que están interrelacionadas. En las decisiones de este tipo solo
4
hay 2 posibles respuestas a este tipo de decisiones se les puede representar
mediante variables de decisión restringidas a 2 valores, por ejemplo 0 y 1,
así la j-ésima decisión sí o no se puede representar por Xj, tal que:
Xj˂1 si la decisión j es si o 0 si la decisión j es no.
A este tipo de problemas de programación entera binaria también se les
conoce como problemas 0-1 de programación entera.
Existen múltiples aplicaciones de modelos de Programación Entera como
apoyo a la toma de decisiones. Algunas aplicaciones típicas son problemas
de localización de instalaciones, inclusión de costos fijos, problemas de
asignación, problemas de ruteo vehicular, etc.
Pudiera pensarse que los métodos de obtención de soluciones a problemas
de programación lineal entera pudieran ser menos difíciles que los de
programación lineal generales, pero resulta lo contrario. Los algoritmos que
permiten resolver los problemas restringidos a enteros son más complejos y
requieren mucho más tiempo computacional.
Para la resolución de los problemas de programación lineal entera existen
diferentes métodos. Los métodos exactos son los que encuentran, si existe,
el óptimo absoluto. Muchos de estos métodos parten de la resolución del
modelo dejando a un lado las restricciones enteras y buscando el mejor valor
para las variables reales. A partir del supuesto de que la solución entera no
debe estar muy lejos, se aplican diferentes técnicas que permiten llegar al
óptimo entero.
Una breve introducción a los métodos de la programación lineal: Simplex y
Punto interior, permitirá tener una idea de cómo operan los mismos.
5
El método del simplex se utiliza para hallar las soluciones óptimas de un
problema de programación lineal con tres o más variables. Este se basa en
el hecho de que la solución óptima se encuentra siempre en uno de los
vértices del poliedro formado por el conjunto de restricciones. Su forma de
buscar la solución es recorrer sobre estos vértices hasta encontrar el óptimo.
Aun cuando no corre en tiempo polinomial en el caso peor, su mayor valor
radica en su capacidad de revolver nuevos problemas y resulta muy útil
cuando no se tiene un algoritmo eficiente de solución.
6
PROGRAMACIÓN PARAMÉTRICA
Programación lineal paramétrica, el análisis de sensibilidad requiere el
cambio de un parámetro a la vez en el modelo original para examinar su
efecto sobre la solución óptima. Por el contrario, la programación lineal
paramétrica (o programación paramétrica en forma más corta) se refiere al
estudio sistemático de los cambios en la solución óptima cuando cambia el
valor de muchos parámetros al mismo tiempo, dentro de un intervalo. Este
estudio proporciona una extensión muy útil al análisis de sensibilidad; por
ejemplo, se puede verificar el efecto de cambios simultáneos en parámetros
"correlacionados", causados por factores exógenos tales como el estado de
la economía. sin embargo, una aplicación más importante es la investigación
de los trueques entre los valores de los parámetros. por ejemplo, si los
valores de cj representan la ganancia unitaria de las actividades respectivas,
es posible aumentar el valor de alguna cj a costa de disminuir el de otras
mediante un intercambio apropiado de personal y equipo entre las
actividades. De manera parecida, si los valores de bi representan las
cantidades disponibles de los respectivos recursos, es imposible aumentar
alguna bi si se está de acuerdo en disminuir algunas otras.
En algunos casos, el propósito del estudio es determinar el trueque más
apropiado entre dos factores básicos como costos y beneficios. la forma
usual de hacerlo es expresar uno de estos factores en funciónobjetivo (como
minimizar el costo total) e incorporar el otro a las restricciones (por ejemplo,
beneficio >= nivel mínimo aceptable).
La técnica algorítmica para programación lineal paramétrica es una extensión
natural del análisis de sensibilidad, por lo que también está basada en el
método simplex.
7
PROGRAMACIÓN DINÁMICA
La programación dinámica es un método para reducir el tiempo de ejecución
de un algoritmo mediante la utilización de subproblemas superpuestos y
subestructuras óptimas, como se describe a continuación.
Una subestructura óptima significa que se pueden usar soluciones óptimas
de subproblemas para encontrar la solución óptima del problema en su
conjunto. Por ejemplo, el camino más corto entre dos vértices de un grafo se
puede encontrar calculando primero el camino más corto al objetivo desde
todos los vértices adyacentes al de partida, y después usando estas
soluciones para elegir el mejor camino de todos ellos. En general, se pueden
resolver problemas con subestructuras óptimas siguiendo estos tres pasos:
Dividir el problema en subproblemas más pequeños.
Resolver estos problemas de manera óptima usando este proceso de
tres pasos recursivamente.
Usar estas soluciones óptimas para construir una solución óptima al
problema original.
Los subproblemas se resuelven a su vez dividiéndolos en subproblemas más
pequeños hasta que se alcance el caso fácil, donde la solución al problema
es trivial.
Decir que un problema tiene subproblemas superpuestos es decir que se usa
un mismo subproblema para resolver diferentes problemas mayores. Por
ejemplo, en la sucesión de Fibonacci (F3 = F1 + F2 y F4 = F2 + F3) calcular
cada término supone calcular F2. Como para calcular F5 hacen falta tanto F3
8
como F4, una mala implementación para calcular F5 acabará calculando F2
dos o más veces. Esto sucede siempre que haya subproblemas
superpuestos: una mala implementación puede acabar desperdiciando
tiempo recalculando las soluciones óptimas a problemas que ya han sido
resueltos anteriormente.
Esto se puede evitar guardando las soluciones que ya hemos calculado.
Entonces, si necesitamos resolver el mismo problema más tarde, podemos
obtener la solución de la lista de soluciones calculadas y reutilizarla. Este
acercamiento al problema se llama memoización (no confundir con
memorización; en inglés es llamado memoization, véase en). Si estamos
seguros de que no volveremos a necesitar una solución en concreto, la
podemos descartar para ahorrar espacio. En algunos casos, podemos
calcular las soluciones a problemas que de antemano sabemos que vamos a
necesitar.
En resumen, la programación hace uso de:
1) Subproblemas superpuestos
2) Subestructuras óptimas
3) Memoización
La programación toma normalmente uno de los dos siguientes enfoques:
Top-down: El problema se divide en subproblemas, y estos se
resuelven recordando las soluciones por si fueran necesarias
nuevamente. Es una combinación de memoización y recursión.
Bottom-up: Todos los problemas que puedan ser necesarios se
resuelven de antemano y después se usan para resolver las
9
soluciones a problemas mayores. Este enfoque es ligeramente mejor
en consumo de espacio y llamadas a funciones, pero a veces resulta
poco intuitivo encontrar todos los subproblemas necesarios para
resolver un problema dado.
Originalmente, el término de programación dinámica se refería a la
resolución de ciertos problemas y operaciones fuera del ámbito de la
Ingeniería Informática, al igual que hacía la programación lineal. Aquel
contexto no tiene relación con la programación en absoluto; el nombre es
una coincidencia. El término también lo usó en los años 40 Richard Bellman,
un matemático norteamericano, para describir el proceso de resolución de
problemas donde hace falta calcular la mejor solución consecutivamente.
10
PROGRAMACIÓN NO LINEAL
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.
Si la función objetivo f es lineal y el espacio restringido es un politopo, el
problema es de Programación lineal y puede resolverse utilizando alguno de
los bien conocidos algoritmos de programación lineal.
Si la función objetivo es cóncava (problema de maximización), o convexa
(problema de minimización) y el conjunto de restricciones es convexo,
entonces se puede utilizar el método general de Optimización convexa
Existe una variedad de métodos para resolver problemas no convexos. Uno
de ellos consiste en utilizar formulaciones especiales de problemas de
programación lineal. Otro método implica el uso de técnicas de Ramificación
y poda, cuando el problema se divide en subdivisiones a resolver mediante
aproximaciones que forman un límite inferior del coste total en cada
subdivisión. Mediante subdivisiones sucesivas, se obtendrá una solución
cuyo coste es igual o inferior que el mejor límite inferior obtenido por alguna
de las soluciones aproximadas. Esta solución es óptima, aunque
posiblemente no sea única. El algoritmo puede ser parado antes, con la
garantía de que la mejor solución será mejor que la solución encontrada en
un porcentaje acotado. Ello se utiliza en concreto en problemas importantes y
especialmente difíciles y cuando el problema cuenta con costes inciertos o
valores donde la incertidumbre puede ser estimada en un grado de fiabilidad
apropiado.
11
Las condiciones de Karush-Kuhn-Tucker proporcionan las condiciones
necesarias para que una solución sea óptima.
Los problemas de programación no lineal se presentan de muchas formas
distintas. Al contrario del método símplex para programación lineal, no se
dispone de un algoritmo que resuelva todos estos tipos especiales de
problemas. En su lugar, se han desarrollado algoritmos para algunas clases
(tipos especiales) de problemas de programación no lineal. Se introducirán
las clases más importantes y después se describirá cómo se pueden resolver
algunos de estos problemas.
12
CONCLUSIONES
La Investigación de Operaciones es el procedimiento científico que está
auxiliado por modelos y técnicas matemáticas, servible para diseñar y operar
a los problemas complejos de la dirección y administración de grandes
sistemas que forman una organización compleja en las cuales las decisiones
son muy importantes y difíciles de elegir, ya que la eficacia de una decisión
sobreguardará la supervivencia y desarrollo de ésta, al contrario estaría en
camino hacia el fracaso.
13