13
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN SUPERIOR INSTITUTO UNIVERSITARIO POLITÉCNICO “SANTIAGO MARIÑO” SEDE BARCELONA SECCIÓN: QN INVESTIGACIÓN DE OPERACIONES PROGRAMACIÓN PROFESOR: ALUMNA: CARLOS COPELAN YENIFER GUEVARA C.I.: 22.707.105 NOVIEMBRE 2015

PROGRAMACION INVESTIGACION DE OPERACIONES

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