Programación no lineal (PNL) 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 una función objetivo a maximizar, cuando alguna de las restricciones o la función objetivo no es lineal. Una suposición importante de programación lineal es que todas sus funciones (función objetivo y funciones de restricción) son lineales. Aunque, en esencia, esta suposición se cumple para muchos problemas prácticos, con frecuencia no es así. De hecho, muchos economistas han encontrado que cierto grado de no linealidad es la regla, y no la excepción, en los problemas de planeación económica, por lo cual, muchas veces es necesario manejar problemas de programación no lineal, lo cual vamos a analizar enseguida. De la manera general el problema de programación no lineal consiste en encontrar: 𝑋 = (𝑋1 , 𝑋2 , 𝑋3 , 𝑋4 , … … , 𝑋𝑛 ) para
Maximizar 𝑓(𝑋), sujeta a;
𝐺𝑖(𝑋) <= 𝑏𝑖 𝑝𝑎𝑟𝑎 𝑖 = 1,2 … . . 𝑚. 𝑦 𝑋 => 0,
Donde 𝑓(𝑋) 𝑦 𝐺𝑖(𝑥) son funciones dadas de 𝑛 variables de decisión.
Ejemplo: Un joven ingeniero de una compañía ha sintetizado un nuevo fertilizante hecho a partir de dos materias primas. Al combinar cantidades de las materias primas básicas 𝑥1 𝑦 𝑥2 , la cantidad de fertilizante que se obtiene viene dada por 𝑄 = 4 𝑥1 + 2 𝑥2 − 0.5𝑥12 − 0.25𝑥22 .Se requieren 480 euros por unidad de materia prima 1 y 300 euros por cada unidad de materia prima 2 que se empleen en la fabricación del fertilizante (en estas cantidades se incluyen los costos de las materias primas y los costos de producción). Si la compañía disponer de 24000 euros para la producción de materias primas, plantear el problema para determinar la cantidad de materia prima de forma que se maximice la cantidad de fertilizante. Solución: Las variables de decisión del problema son:
𝑥1 : 𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑚𝑎𝑡𝑒𝑟𝑖𝑎 𝑝𝑟𝑖𝑚𝑎 1
𝑥2 : 𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑚𝑎𝑡𝑒𝑟𝑖𝑎 𝑝𝑟𝑖𝑚𝑎 2 El objetivo es maximizar la cantidad de fertilizante, 𝑄 = 4 𝑥1 + 2 𝑥2 − 0.5𝑥12 − 0.25𝑥22 . Restricciones del problema: El coste no puede exceder el presupuesto que la empresa tiene asignado para el fertilizante, 480𝑥1 + 300𝑥2 ≤ 24000
No negatividad de las cantidades: 𝑥1 ≥ 0; 𝑥2 ≥ 0 Por tanto:
La Programación Orientada a Objetos (POO) es un paradigma de programación que busca
que nuestra forma de programar sea más cercana a la forma como nos relacionamos en nuestro día a día. Un paradigma de programación es una propuesta tecnológica adoptada por una comunidad de programadores y desarrolladores cuyo núcleo central es incuestionable en cuanto que únicamente trata de resolver uno o varios problemas claramente delimitados. Wikipedia El nombre de "Orientado a Objetos" se debe a que nuestro código creará objetos que se encargarán de manipular los datos de entrada para así obtener datos de salida. Estos objetos tendrán propiedades y métodos.
¿Cómo pensar en objetos?
Pensar en términos de objetos es pensar de manera natural como lo haríamos en la vida
real. Por ejemplo, al pensar en un coche para modelarlo en un esquema de POO. Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además, tiene una serie de funcionalidades o métodos asociados al mismo, como pueden ser ponerse en marcha, parar o acelerar. En un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos, por ejemplo, un taller de coches, el taller de coches será un objeto que utilizará objetos coche, herramienta, mecánico, recambios, etc. Algunas de las ventajas de la programación orientada a objetos son los siguientes: Los componentes se pueden reutilizar. Facilidad de mantenimiento y modificación de los objetos existentes. Una estructura modular clara se puede obtener, la cual no revelará el mecanismo detrás del diseño. Se proporciona un buen marco que facilita la creación de rica interfaz gráfica de usuario aplicaciones (GUI). Se acopla bien a la utilización de bases de datos, debido a la correspondencia entre las estructuras. Desventajas Limitaciones del programador: Es posible el programador desconozca algunas características del paradigma y de hecho siga utilizando el paradigma estructurado. No hay una forma única de resolver los problemas. Esto puede llevar a que diferentes interpretaciones de la solución planteada emerjan. Se requiere una documentación amplia para determinar la solución planteada. La programación orienta a objetos es una forma especial de pensar, nos permite modelar nuestra realidad dentro de un entorno de programación, partiendo de la primicia de que todo en esta vida es un objeto programable.