La programación no estructurada es un paradigma de programación donde todo el código se contiene en un solo bloque continuo. Esto es contrario a la programación estructurada, donde las tareas programatic se pueden partir adentro a secciones más pequeñas conocidas como las funciones o subprogramas, que pueden ser llamados siempre que se requieran. Los lenguajes de programación no estructurada tienen que confiar en declaraciones del flujo de la ejecución tales como goto, utilizado en muchos lenguajes para saltar a una sección especificada del código.
El código de fuente no estructurado es difícil de leer y de eliminar errores. Sin embargo, la programación no estructurada todavía se necesita en algunas lenguajes scripting tales como archivos batch del MS-DOS, y para programar algoritmos intensivos de la CPU en el lenguaje ensamblador o C, donde la velocidad de procesamiento es más importante
The source of this article is http://en.wikipedia.org/wiki/Unstructured_programming, the free encyclopedia. The text of this article is licensed under the http://www.gnu.org/copyleft/fdl.htmlGFDL.
¿Qué es la programación lineal ?
En infinidad de aplicaciones de la industria, la economía, la estrategia militar, etc.. se presentan situaciones en las que se exige maximizar o minimizar algunas fucniones que se encuentran sujetas a determinadas limitaciones, que llamaremos restricciones.
Para hacernos una idea más clara de estos supuestos, veamos dos ejemplos:
Ejemplo 1: Problema de máximos.
En una granja se preparan dos clases de piensos, P y Q, mezclando dos productos A y B. Un saco de P contiene 8 kg de A y 2 de B, y un saco de Q contiene 10 kg de A y 5 de B. Cada saco de P se vende a 300 ptas. y cada saco de Q a 800 ptas. Si en la granja hay almacenados 80 kg de A y 25 de B, ¿cuántos sacos de cada tipo de pienso deben preparar para obtener los máximos ingresos?
Ejemplo 2: Problema de mínimos.
Una campaña para promocionar una marca de productos lácteos se basa en el reparto gratuito de yogures con sabor a limón o a fresa. Se decide repartir al menos 30000 yogures.
Cada yogur de limón necesita para su elaboración 0.5 gramos de un producto de fermentación y cada yogur de fresa necesita 0.2 gramos de este mismo producto. Se dispone de 9 kilogramos de este producto para fermentación.
El coste de producción de un yogur de limón es de 30 pesetas y 20 pesetas uno de fresa.
En los dos ejemplos descritos está claro que tanto la cantidad que deseamos maximizar como la cantidad que deseamos minimizar podemos expresarlas en forma de ecuaciones lineales. Por otra parte, las restricciones que imponen las condiciones de ambos problemas se pueden expresar en forma de inecuaciones lineales.
Nº kg de A kg de B
P x 8x 2x
Q y 10y 5y
80 25
Por otra parte, las variables x e y, lógicamente, han de ser no negativas, por tanto : x 0, y 0
Conjunto de restricciones:
8x + 10y 80
2x + 5y 25
x 0, y 0
2) Si representamos por x el número de yogures de limón e y al número de yogures de fresa, se tiene que la fución de coste es Z = 30x + 20y. Por otra parte, las condiciones del problema imponen las siguientes restricciones:
De número : x + y 80
De fermentación: 0.5x + 0.2y 9000
Las variables x e y han de ser, lógicamente, no negativas; es decir: x 0, y 0
Conjunto de restricciones:
x + y 80
0.5x + 0.2y 9000
x 0, y 0
Un problema de programación lineal en dos variables, tiene la siguiente formulación estándar:
Maximizar z=f(x,y)=ax+by+c
sujeto a: A1x+B1Y≤C1
Azx+BzY≤Cz
.
.
.
AnX+BnY≤Cn
puediendo cambiarse maximizar por minimizar, y el sentido de las desigualdades.
En un problema de programación lineal intervienen:
La función f(x,y) = ax + by + c llamada función objetivo y que es necesario optimizar. En esa expresión x e y son las variables de decisión, mientras que a, b y c son constantes.
Las restricciones que deben ser inecuaciones lineales. Su número depende del problema en cuestión. El carácter de desigualdad viene impuesto por las limitaciones, disponibilidades o necesidades, que son: inferiores a … ( menores: < o ); como mínimo de … (mayores: > o ) . Tanto si se trata de maximizar como de minimizar, las desigualdades pueden darse en cualquiera de los dos sentidos.
Al conjunto de valores de x e y que verifican todas y cada una de las restricciones se lo denomina conjunto (o región ) factible. Todo punto de ese conjunto puede ser solución del problema; todo punto no perteneciente a ese conjunto no puede ser solución. En el apartado siguiente veremos como se determina la región factible.
La solución óptima del problema será un par de valores (x0, y0) del conjunto factible que haga que f(x,y) tome el valor máximo o mínimo.
En ocasiones utilizaremos las siglas PPL para indicar problema de programación lineal.
INTRODUCCIÓN
Muchas personas clasifican el desarrollo de la programación lineal entre los avances científicos más importantes de mediados del siglo XX, su impacto desde 1950 ha sido extraordinario. En la actualidad es una herramienta de uso normal que ha ahorrado miles o millones de pesos a muchas compañías o negocios, incluyendo empresas medianas en los distintos países industrializados del mundo; su aplicación a otros sectores de la sociedad se está ampliando con rapidez. Una proporción muy grande de los cálculos científicos en computadoras está dedicada al uso de la programación lineal.
¿Cuál es la naturaleza de esta notable herramienta y qué tipos de problemas puede manejar. Expresado brevemente, el tipo más común de aplicación abarca el problema general de asignar recursos limitados entre actividades competitivas de la mejor manera posible (es decir, en forma óptima). Con más precisión, este problema incluye elegir el nivel de ciertas actividades que compiten por recursos escasos necesarios para realizarlas. Después, los niveles de actividad elegidos dictan la cantidad de cada recurso que consumirá cada una de ellas. La variedad de situaciones a las que se puede aplicar esta descripción es sin duda muy grande, y va desde la asignación de instalaciones de producción a los productos, hasta la asignación de los recursos nacionales a las necesidades de un país; desde la selección de una cartera de inversiones, hasta la selección de los patrones de envío; desde la planeación agrícola, hasta el diseño de una terapia de radiación, etc. No obstante, el ingrediente común de todas estas situaciones es la necesidad de asignar recursos a las actividades eligiendo los niveles de las mismas.
La programación lineal utiliza un modelo matemático para describir el problema. El adjetivo lineal significa que todas las funciones matemáticas del modelo deber ser funciones lineales. En este caso, las palabra programación no se refiere a programación en computadoras; en esencia es un sinónimo de planeación. Así, la programación lineal trata la planeación de las actividades para obtener un resultado óptimo, esto es, el resultado que mejor alcance la meta especificada (según el modelo matemático) entre todas las alternativas de solución.
Aunque la asignación de recursos a las actividades es la aplicación más frecuente, la programación lineal tiene muchas otras posibilidades. de hecho, cualquier problema cuyo modelo matemático se ajuste al formato general del modelo de programación lineal es un problema de programación lineal. Aún más, se dispone de un procedimiento de solución extraordinariamente eficiente llamado método simplex, para resolver estos problemas, incluso los de gran tamaño. Estas son algunas causas del tremendo auge de la programación lineal en las últimas décadas.
MODELO DE PROGRAMACIÓN LINEAL
Los términos clave son recursos y actividades, en donde m denota el número de distintos tipos de recursos que se pueden usar y n denota el número de actividades bajo consideración. Algunos ejemplos de recursos son dinero y tipos especiales de maquinaria, equipo, vehículos y personal. Los ejemplos de actividades incluyen inversión en proyectos específicos, publicidad en un medio determinado y el envío de bienes de cierta fuente a cierto destino. En cualquier aplicación de programación lineal, puede ser que todas las actividades sean de un tipo general (como cualquiera de los ejemplos), y entonces cada una correspondería en forma individual a las alternativas específicas dentro de esta categoría general.
El tipo más usual de aplicación de programación lineal involucra la asignación de recursos a ciertas actividades. La cantidad disponible de cada recurso está limitada, de forma que deben asignarse con todo cuidado. La determinación de esta asignación incluye elegir los niveles de las actividades que lograrán el mejor valor posible de la medida global de efectividad.
Ciertos símbolos se usan de manera convencional para denotar las distintas componentes de un modelo de programación lineal. Estos símbolos se enumeran a continuación, junto con su interpretación para el problema general de asignación de recursos a actividades.
Z = valor de la medida global de efectividad
xj = nivel de la actividad j (para j = 1,2,…,n)
cj = incremento en Z que resulta al aumentar una unidad en el nivel de la actividad j
bi = cantidad de recurso i disponible para asignar a las actividades (para i = 1,2,…,m)
aij = cantidad del recurso i consumido por cada unidad de la actividad j
El modelo establece el problema en términos de tomar decisiones sobre los niveles de las actividades, por lo que x1,x2,….,xn se llaman variables de decisión. Los valores de cj, bi y aij (para i = 1,2,….,m y j = 1,2,….,n) son las constantes de entrada al modelo. Las cj, bi y aij también se conocen como parámetros del modelo.
FORMA ESTÁNDAR DEL MODELO
Ahora se puede formular al modelo matemático para este problema general de asignación de recursos a actividades. En Datos necesarios para un modelo de programación lineal que maneja la asignación de recursos a actividades particular, este modelo consiste en elegir valores de x1,x2,….,xn para:
optimizar (maximizar o minimizar) Z = c1×1 + c2×2 +….+ cnxn,
sujeta a las restricciones:
a11x1 + a12x2 +....+ a1nxn (<=,>=,=) b1
a21x1 + a22x2 +....+ a2nxn (<=,>=,=) b2
.
.
.
am1x1 + am2x2 +....+ amnxn (<=,>=,=) bm
X1 >= 0, X2 >= 0, ..., Xn>=0.
SUPOSICIONES DEL MODELO DE PROGRAMACIÓN LINEAL
PROPORCIONALIDAD
La contribución de cada actividad al valor de la función objetivo Z es proporcional al nivel de actividad xj, como lo representa el término cjxj en la función objetivo. De manera similar, la contribución de cada actividad al lado izquierdo de cada restricción funcional es proporcional al nivel de la actividad xj, en la forma en que lo representa el término aijxj en la restricción. En consecuencia, esta suposición elimina cualquier exponente diferente a 1 para las variables en cualquier término de las funciones (ya sea la función objetivo o la función en el lado izquierdo de las restricciones funcionales) en un modelo de programación lineal.
ADITIVIDAD
Establece que la entrada y salida de un recurso en particular al conjunto de actividades, deben ser la misma cantidad; o sea, que las actividades transforman los recursos y no los crean o destruyen. Esta suposición garantiza que la contribución total tanto a la función objetivo como a las restricciones, es igual a la suma de las contribuciones individuales. Cuando en un problema dado no se tenga la aditividad puede recurrirse al empleo de otras técnicas de la programación matemática, dependiendo de cada caso en particular.
Cada función en un modelo de programación lineal (ya sea la función objetivo o el lado izquierdo de las restricciones funcionales) es la suma de las contribuciones individuales de las actividades respectivas.
DIVISIBILIDAD
Las variables de decisión en un modelo de programación lineal pueden tomar cualquier valor, incluyendo valores no enteros, que satisfagan las restricciones funcionales y de no negatividad. Así, estas variables no están restringidas a sólo valores enteros. Como cada variable de decisión representa el nivel de alguna actividad, se supondrá que las actividades se pueden realizar a niveles fracciónales.
LIMITACIONES DEL MODELO DE PROGRAMACIÓN LINEAL
MODELO DETERMINÍSTICO
El modelo de PL involucra únicamente tres tipos de parámetros: Cj, aij y bi; de ahí su sencillez y gran aplicación. Sin embargo, el valor de dichos parámetros debe ser conocido y constante. Cuando el valor de los parámetros tiene un cierto riesgo o incertidumbre, pude utilizarse la programación paramédica, la programación estocástica, o realizarse un análisis de sensibilidad.
MODELO ESTÁTICO
En algunos modelos matemáticos se han empleado con éxito las ecuaciones diferenciales, para inducir la variable tiempo en ellos. En este sentido, puede decidirse que la PL utiliza un modelo estático, ya que la variable tiempo no se involucra formalmente. Adquiriendo un poco de experiencia en la formulación de modelos de PL, puede imbuirse la temporabilidad mencionada, con el uso de subíndices en las variables.
MODELO QUE NO SUBOPTIMIZA
Debido a la forma que se plantea el modelo de PL, o encuentra la solución óptima o declara que ésta no existe. Cuando no es posible obtener una solución óptima y se debe obtener alguna, se recurre a otra técnica más avanzada que la PL, la cual se denomina programación lineal por metas.
Competencias Digitales (Tic’s Basicas) a practicar con este TEMA:
- Usar (click en )www.Google.com para buscar y localizar UN material academico apropiado y que se pueda recomendar para el tema, ver VIDEO BUSQUEDAS abajo en esta pagina.
- En el post ( o tema ) apropiado en el Libro de Blogger, pegar el material localizado y que se recomienda para este tema, ver VIDEO BLOGGER abajo en esta pagina.
pd: Recordar incluir la fuente del tema usando el formato de citacion apropiado, ver VIDEO WIKIPEDIA abajo en esta pagina.
- En el editor de Blogger usar colores para destacar los parrafos mas importantes y usar subrayados para las citas mas relevantes.
- En el post ( o tema ) apropiado en el libro en Blogger, para incluir ecuaciones o notacion matematica se debera usar el icono del editor de Blogger IMAGE y construir esta notacion matematica con imagenes Latex, ver VIDEO LATEX ABAJO.
- Construir al final y despues de la fuente del material, un breve resumen ( no mas de 2–3 parrafos) explicando palabras propias el contenido del tema.
pd: Se pueden usar alguna de las citas que encontradas dentro del tema, solo recordar encerrarla entre comillas.
pd: Se pueden usar tambien cambios en fonts para darle mas visibilidad, consistencia y relevancia al resumen del tema.
- PUNTOS EXTRAS Si se usa una segunda fuente valiosa de informacion y recordar encadenar los dos materiales mediante uno o dos parrafos apropiados.
- Enviar a el maestro o compañeros un correo electronico que incluya la liga a el tema en blogger para revision, recomendacion, sugerencias y evaluacion, ver VIDEO LIGAS GMAIL abajo.
- Sacar una cuenta (click en)http://docs.google.com, usando el correo de Gmail y tratar de conseguir el mismo usuario que se construyo en Gmail y Blogger ver VIDEO GOOGLE DOCS abajo en esta pagina.
pd: Si ya se tiene una cuenta ignorar esta competencia digital.
pd: Google Docs es el equivalente a OFFICE pero con la caracteristica que todos sus componentes ( procesador de palabras, presentacion electronica y hoja de calculo) estan completamente en internet, es decir todos los archivos o material estaran en linea, seguros y siempre disponibles, ademas de que se pueden trabajarlos desde cualquier pc, ya sea la personal, la del laboratorio de la escuela o la de un lugar publico como la biblioteca o un cafe internet.
- Construir una Presentacion Electronica ( usando muy pocos slides) del tema en GOOGLE DOCS e incrustrarla en el tema de bloger ver VIDEO GOOGLE DOCS en esta pagina abajo.
pd: Recordar que una presentacion electronica, es solamente un resumen muy condensado del tema ( o mapa o guia mental ), que ayuda a recordar los elementos y conceptos mas basicos del tema, cuando se estan exponiendo frente a un grupo.
pd: No olvidar incluir un primer slide con el titulo de la presentacion electronica, un segundo slide con un indice de la presentacion electronica y un ultimo slide con dos o tres parrafos de conclusiones y bibliografia.
- Buscar en Google Imagenes o www.Flickr.com o www.PhotoBucket.com una galeria de fotos o de imagenes apropiadas al tema actual,
- Para los casos de Photobucket y Flicker, ambos sitios proporcionan ligas a sus imagenes y tambien objetos (los recuerdan??), que se pueden incluir en el tema del libro apropiado en Blogger.
pd: para estos sitios deberan obtener una cuenta usando el correo de gmail y de preferencia obtener el mismo usario que se ha venido manejando a lo largo del curso.
pd: Tratar de usar resoluciones y tamaños de imagenes chicos o medianos, recordar que todo este material termina en el post del tema en Blogger y esa pagina no tiene mucho espacio para desplegar fotos o imagenes.
pd: El formato apropiado para fotos o imagenes es JPG, tratar de no usar otros formatos.
pd: Se puede construir y conseguir esta coleccion o galeria de imagenes con:
1) Usando Google Imagenes, recordar conseguir solo imagenes que tengan permiso de publicacion abierto, no usar imagenes o fotos que tengan derechos reservados.
pd: Estas fotos almacenarlas en un folder en el desktop o escritorio de su computadora y subirlas a el post en blogger usando el icono IMAGE del editor de Blogger.
2) Flickr y Photo Bucket tambien tienen una gran cantidad de imagenes que se pueden usar o mejor dicho enlazar a el tema o post en Blogger.
3) Tambien se puede usar la camaras digitales o las camaras de sus telefonos celulares.
4) Tambien se puede usar el programa o aplicacion llamado Srip32.exe( solo buscar srip32 en google) bajarlo e instalarlo, este programa permite capturar una pantalla de la pc, es decir si se encuentra un sitio con imagenes o incluso texto apropiado o relevante al tema, capturar la pantalla con srip32 y ya se tendra la imagen, ver VIDEO Srip32 abajo.
- Incluir al menos una imagen de cada uno de los dos sitios (flickr y Photobucket) en el tema o post que se esta construyendo en Blogger.
- PUNTOS EXTRAS Si se incluyen una galeria completa de imagenes apropiadas desde cualquiera de estos sitios de FLICKR o Photobucket.
- Sacar una cuenta (click en)www.DivShare.com, usando el correo de Gmail y tratar de conseguir el mismo usuario que se consiguio en Gmail y Blogger y Flickr ver VIDEO DIVSHARE abajo en esta pagina.
pd: Si ya se tiene una cuenta ignorar esta competencia digital.
pd: Usar Divshare para almacenar material en audio (MP3) apropiado a el tema ( no usarlo para almacenar material comercial o les suspenden la cuenta)
pd: El material en Audio, con formato MP3 se debera producir usando un microfono en la pc y programas de aplicacion apropiados, llamados editores de audio, un ejemplo de ellos es el SOUND RECORDER que ya viene en Windows, pero se recomienda usar mejor AUDACITY ( solo buscar en google AUDACITY) bajarlo e instalarlo, ver VIDEO AUDACITY abajo.
- Crear al menos dos archivos de audio mp3:
1) El primero de ellos sera la lectura completa de este tema en voz apropiada. ( o aprender a editar con audacity la voz)
2) El segundo de ellos sera un resumen del tema. ( buena voz o editarla con audacity)
3) Ambos archivos subirlos a Div Share (recordor que tienen que ser MP3) y el reproductor que proporciona gratis Div Share, ver VIDEO DIVSHARE abajo e insertarlo en el lugar apropiado del tema que se esta construyendo en Blogger.
4) Ejemplo del reproductor incrustado en una pagina:
- Sacar una cuenta (click en)www.YouTube.com, usando el correo de Gmail y tratar de conseguir el mismo usuario que se consiguio en Gmail y Blogger y Flickr.
pd: Si ya se tiene una cuenta ignorar esta competencia digital.
- Para producir video se pueden usar tres fuentes:
1) Localizar Videos apropiados en Youtube.
2) Usar nuestras camaras digitales o nuestros telefonos celulares para producir video.
3) Producir un video de la propia pantalla de la computadora ( muy similar a lo que se hizo con Srip32) pero usando un programa especializado en video, tal como CAMSTUDIO (click en www.CamStudio.org) bajar e instalar ( no olvidar bajar e instalar el CODEC que esta abajo en el mismo sitio.
3.1) para Usar Camstudio solo recordar que es muy similar a Srip32 Solo que el resultado final es un archivo de video AVI.
- Producir un video de resumen del tema (usar camstudio con el fondo de la pagina con el tema e irlo comentando en voz apropiada)
- Producir un video en vivo con la exposicion del tema ( pueden usar la presentacion electronica de fondo o cualquier otro material, pizarron, filminas, rotafolios, etc.)
- Subir los videos a su cuenta en Youtube e incluirlos o ligarlos en la pagina en Blogger, tambien los pueden subir directamente a BLOGGER ver VIDEO BLOGGER VIDEO abajo.
Saludos y suerte prof Lauro Soto, Ensenada, BC, Mexico.