121 |
Aplicación de una Heurística Escalable para Resolver un Problema Estocástico de Planificación MineraGacitúa Carafi, Jaime Andrés January 2010 (has links)
Magíster en Gestión de Operaciones / Ingeniero Civil Industrial / Se trabajó con una mina de cielo abierto, modelada como un conjunto de bloques, cada uno caracterizado por su tonelaje, ley y localización. Las plantas de procesamiento del mineral se modelan coma una red dirigida con transformaciones y capacidades. El modelo de planificación busca la secuencia de extracción del yacimiento, los requerimientos de maquinaria y la carga sobre la red de procesamiento que maximiza el valor presente del negocio.
El precio futuro del cobre, se modela como un movimiento browniano con reversión a la media, y se implementa un método para generar un árbol de escenarios con probabilidades. Combinando el modelo de planificación minera con el árbol de escenarios se plantea un modelo de programación estocástica multiperíodo. Este modelo permite optimizar las decisiones de planificación considerando flexibilidad en las decisiones según como se comporte el precio futuro del cobre.
Por el tamaño y complejidad del problema, el modelo planteado resulta computacionalmente intratable. El método propuesto para resolver es Progressive Hedging (PH), creado por Roger J-B Wets y R.T. Rockafellar. PH se basa en descomponer el modelo minero por escenarios, relajando la condición de no-anticipatividad: Para cada par de escenarios, si son idénticos desde el período 1 hasta el período t, entonces las soluciones deben ser idénticas desde el período 1 hasta el período t, para todo período t. Se comienza resolviendo el modelo determinístico para cada escenario de manera independiente. Con las soluciones obtenidas, se introduce un sistema de penalización en la función objetivo del modelo, para forzar a que se cumpla el principio de no-anticipatividad. Se vuelve a resolver cada escenario, y se obtienen nuevas soluciones. Con las nuevas soluciones se actualizan las penalizaciones, y se vuelve a resolver el modelo para cada escenario. Se itera hasta encontrar el conjunto de penalizaciones que permite cumplir con el principio de no-anticipatividad.
Se utilizó PH como una heurística de pre-proceso para fijar variables de decisión. Cada vez que se completa una iteración, se fijan las variables que han logrado cumplir con el principio de no-anticipatividad. Cuando se han fijado suficientes variables, se resuelve el modelo estocástico compacto.
El principal resultado obtenido es que PH permitió resolver instancias que a través de métodos convencionales no fue posible. Se propone extender esta metodología para evaluar inversiones de largo plazo en minería de cobre, donde la volatilidad del precio futuro juega un rol importante.
|
122 |
Programación Matemática para el Uso Eficiente de Mallas de Cultivo en una Empresa SalmoneraPolgatiz Monsalve, Cristian Rafael January 2010 (has links)
No description available.
|
123 |
Termination of Narrowing: Automated Proofs and Modularity PropertiesIborra López, José 11 February 2013 (has links)
En 1936 Alan Turing demostro que el halting problem, esto es, el problema de decidir
si un programa termina o no, es un problema indecidible para la inmensa mayoria de
los lenguajes de programacion. A pesar de ello, la terminacion es un problema tan
relevante que en las ultimas decadas un gran numero de tecnicas han sido desarrolladas
para demostrar la terminacion de forma automatica de la maxima cantidad posible de
programas. Los sistemas de reescritura de terminos proporcionan un marco teorico
abstracto perfecto para el estudio de la terminacion de programas. En este marco, la
evaluaci on de un t ermino consiste en la aplicacion no determinista de un conjunto de
reglas de reescritura.
El estrechamiento (narrowing) de terminos es una generalizacion de la reescritura
que proporciona un mecanismo de razonamiento automatico. Por ejemplo, dado un
conjunto de reglas que denan la suma y la multiplicacion, la reescritura permite calcular
expresiones aritmeticas, mientras que el estrechamiento permite resolver ecuaciones
con variables. Esta tesis constituye el primer estudio en profundidad de las
propiedades de terminacion del estrechamiento. Las contribuciones son las siguientes.
En primer lugar, se identican clases de sistemas en las que el estrechamiento tiene
un comportamiento bueno, en el sentido de que siempre termina. Muchos metodos
de razonamiento automatico, como el analisis de la semantica de lenguajes de programaci
on mediante operadores de punto jo, se benefician de esta caracterizacion.
En segundo lugar, se introduce un metodo automatico, basado en el marco teorico
de pares de dependencia, para demostrar la terminacion del estrechamiento en un
sistema particular. Nuestro metodo es, por primera vez, aplicable a cualquier clase
de sistemas.
En tercer lugar, se propone un nuevo metodo para estudiar la terminacion del
estrechamiento desde un termino particular, permitiendo el analisis de la terminacion
de lenguajes de programacion. El nuevo metodo generaliza los / Iborra López, J. (2010). Termination of Narrowing: Automated Proofs and Modularity Properties [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/19251 / Palancia
|
124 |
Network hosting capacity for renewables: an economic approach through bilevel optimizationValenzuela Gallegos, Elías Eduardo January 2019 (has links)
Tesis para optar al grado de Magíster en Ciencias de la Ingeniería, Mención Eléctrica / Memoria para optar al título de Ingeniero Civil
Eléctrico
|
125 |
Exceso de información en optimización linealMolina Vila, Mariola D. 17 June 2005 (has links)
No description available.
|
126 |
Intérprete y entorno de desarrollo aplicados al auto-aprendizaje de los conceptos de programación orientada a objetosMitta Flores, Ever Ricardo 26 November 2013 (has links)
Con el surgimiento de los lenguajes de programación y el gran interés que estos atraen,
cada vez hay más personas que deciden sumergirse a este mundo.
Otro punto a tomar en cuenta es que no solo hay un estilo de programación sino que la
programación puede estar sujeta a diversos paradigmas, siendo estos el paradigma
estructurado, el paradigma orientado a objetos, el paradigma orientado a eventos, entre
otros.
Si bien los diversos paradigmas se relacionan entre ellos, es decir tienen características
afines; en ocasiones, no es fácil para las personas dar un salto de un paradigma a otro.
Otra dificultad existente suele ser que existen diversos lenguajes de programación
orientados a un mismo paradigma lo que genera usualmente confusión en la definición de
conceptos propios de dicho paradigma, a causa de las diferentes sintaxis y alcances que
poseen estos lenguajes.
El propósito del proyecto es centrarse en la adaptación al paradigma orientado a objetos,
definiendo así que problemas se presentan para su correcto aprendizaje; así como también
buscar las soluciones existentes y proponer una solución de mejora que conlleve a su
correcto aprendizaje.
|
127 |
Intérprete y entorno de desarrollo para el aprendizaje de lenguajes de programación estructuradaHirsh Martínez, Layla 30 November 2011 (has links)
Este proyecto tiene como objetivo principal el diseño, desarrollo e implementación de un
intérprete de un lenguaje de programación que pueda ser usado en los primeros cursos de
introducción a la computación. El trabajo muestra cómo se pueden crear intérpretes, lo que
en nuestro país tiene escasa tradición, a diferencia de lo que ocurre en los países más
desarrollados. Además, presenta un entorno de desarrollo integrado para facilitar la
introducción a la programación, ofreciendo un ambiente amigable y un lenguaje de
programación totalmente basado en el idioma español. En opinión de la autora esta
segunda característica favorecerá a que el alumno entienda mejor el lenguaje y los
procesos de computación.
En el capítulo 1 del presente documento se presenta la descripción del problema de escoger
un lenguaje adecuado para la enseñanza de los primeros cursos de programación, las
opciones que tenemos en nuestra actualidad y una posible solución a este problema.
En el capítulo 2 se formula una propuesta que resuelve el problema planteado en el capítulo
1 que permite definir el lenguaje, su funcionamiento y el entorno en el que se ha de ejecutar.
El capítulo 3 presenta la implementación del intérprete y la del entorno, propuestos
anteriormente.
En el capítulo 4 se exponen las observaciones, conclusiones, recomendaciones y trabajos
futuros, tanto del intérprete como del entorno.
|
128 |
Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de códigoGómez Díaz, Renzo Gonzalo, Salamanca Guillén, Juan Jesús 06 September 2012 (has links)
Este trabajo trata sobre la implementación de un intérprete para un lenguaje
propio, que incluye algunas características que no son abordadas en cursos
básicos de Desarrollo de Compiladores. Estas características son: lenguaje
de programación orientado a objetos, modificación dinámica de código y
optimización de código intermedio.
El objetivo de este proyecto es presentar estas características, proponer una
forma de implementación de las mismas y finalmente proceder a
implementarlas. De tal manera que este trabajo contribuya al aprendizaje de
construcción de intérpretes o compiladores, sirviendo como un caso de
estudio para aquellas personas que tengan como objetivo profundizar en el
tema, y por consiguiente un posible punto de partida para futuros trabajos.
Por otro lado, es necesario validar los resultados obtenidos por el optimizador,
así como la eficiencia de la forma implementación escogida, por lo que se
incluye también una experimentación numérica que permite comprobar las
hipótesis planteadas al inicio.
En la primera parte, se define el problema identificado, luego se describe un
breve marco teórico con los principales conceptos involucrados en el
desarrollo del proyecto, seguidamente se muestra el estado del arte con
relación a compiladores e intérpretes y se describe la solución al problema
planteado al inicio. En la segunda parte, principalmente, se describen los
objetivos del proyecto, los aportes específicos, los resultados esperados y las
hipótesis.
Como se mencionó anteriormente, uno de los objetivos que se persigue es
que la tesis pueda servir como un caso de estudio para las personas
interesadas y una posible base para trabajos futuros; por lo tanto, es
necesario explicar la implementación con un nivel de detalle adecuado. En
ese sentido, se describe las distintas partes de la implementación escogida:
se comienza con la descripción de la gramática del lenguaje, después se
describen las estructuras utilizadas, algunas operaciones primitivas, el código
intermedio generado, las principales acciones semánticas, la
interpretación, la administración de memoria, los algoritmos de
optimización, el diseño del IDE y el ambiente de desarrollo.
|
129 |
Entorno de desarrollo para la ejecución y traducción de pseudocódigoJara Loayza, Juan Carlos 23 June 2014 (has links)
El presente proyecto de fin de carrera corresponde a la construcción de un entorno de
desarrollo que permita la ejecución y ejecución de pseudocódigo como herramienta de
apoyo a las etapas de diseño, ejecución y validación de un algoritmo. Se permitirá la
traducción a VBA, Java, Ruby, Python y c++.
El documento presenta siete capítulos, en el primer capítulo se describen
generalidades del proyecto como la problemática, objetivo general, objetivos
específicos, resultados esperados, alcance, justificación, viabilidad y plan de
actividades del proyecto.
En el segundo capítulo se presenta el marco conceptual donde se describen los
conceptos necesarios para entender el problema que se desea solucionar con el
presente proyecto.
En el tercer capítulo se presenta el estado del arte. En lo referente al estado del arte
se realizó una búsqueda entre productos comerciales y no comerciales que intentan
solucionar algunos aspectos del problema a resolver.
En el cuarto capítulo, se describe cómo se realizó la definición y la validación de la
gramática del pseudocódigo mediante el uso de la notación BNF.
En el quinto capítulo se presenta el desarrollo del intérprete que permite la ejecución
del pseudocódigo y del traductor que permitirá transformar el pseudocódigo a código
en VBA, Java, Ruby, Python y C++.
En el sexto capítulo se realiza la descripción del entorno de desarrollo que permitirá la
integración del intérprete y traductor para que puedan ser utilizados por el usuario
final.
En el séptimo capítulo se exponen las conclusiones.
|
130 |
Implementación de una herramienta de traducción y verificación de programas diseñados en diagrama de flujo utilizando como paso intermedio pseudocódigoPalomino Masco, Jairo Abner 13 November 2014 (has links)
Este proyecto de fin de carrera parte de la ausencia de herramientas que sirvan de
ayuda para aquellos alumnos que quieran aprender a programar. Si bien existen
programas que permiten generar diagramas de flujo y luego exportarlos a un
lenguaje de programación, estos no poseen un compilador que permita detectar
errores de sintaxis, que pueda poseer la solución. Por ello se plantea implementar
un proceso de traducción y verificación de programas diseñados en diagrama de
flujo utilizando como paso intermedio pseudocódigo, para que el alumno pueda
preocuparse más en la lógica de su solución, que en la sintaxis o estructura del
lenguaje de programación, a codificar.
Para realizar este proyecto se definió una serie de objetivos específicos. En primer
lugar se desarrolló un entorno para dibujar diagramas de flujo, para ello se
adaptaron las librerías de Microsoft office que ofrecen las herramientas necesarias
para la creación del entorno de trabajo.
Luego, se definió la gramática que almacena la sintaxis del pseudocódigo
utilizando la notación Backus-Naur Form (BNF). Después se implementó el método
de conversión del formato XML de Microsoft office, representación del diagrama de
flujo, a pseudocódigo utilizando la sintaxis definida anteriormente y un editor de
texto en el cual se muestre el resultado de la conversión al usuario.
Finalmente se implementó el intérprete que utiliza la gramática para verificar que el
código se encuentre léxicamente, sintácticamente y semánticamente correcto. De
esta manera los alumnos podrán obtener a partir de un diagrama, el cual al ser
gráfico es de fácil entendimiento, el código de su programa sin necesidad de
conocer la sintaxis del mismo y validado.
|
Page generated in 0.1045 seconds