EJEMPLO_1

**DEL PROCESO DE PROGRAMACIÓN DEL RODAJE EN LA INDUSTRIA DEL ** **CINE INDEPENDIENTE **   El cine independiente es aquel se desarrolla al margen de la gran industria, por lo que es realizado por un equipo profesional reducido el que cuenta con bajos presupuestos de producción. En general, la gran mayoría del cine que se realiza en Latinoamérica pertenece a esta categoría [CoVena].  Aquí se describe un modelo desarrollado para apoyar el proceso de la panificación del rodaje de películas independientes generando calendarios de filmación que permiten reducir el costo de los recursos humanos contratados y generar planes de trabajo alineados con el proceso creativo subyacente.  El rodaje propiamente tal persigue concretar las ideas del guión y dejarlas grabadas en rollos de film que serán utilizados en la etapa de postproducción. El guión está organizado en unidades básicas de espacio-tiempo denominadas escenas, las que varían de 20 a 80 dependiendo de la película. Cada localización que se utilizará durante el rodaje de la película puede tener días no disponibles. Lo mismo ocurre para los actores. Esta condición implica que para poder programar una escena en un día particular debemos verificar si su localización y actores están disponibles.  De esta forma, el problema de la planificación del rodaje de películas consiste básicamente en decidir qué día se filmará cada una de las escenas que componen una determinada película. En esta decisión es posible romper el orden cronológico en que las escenas aparecen en el guión. Lo que se quiere es plantear un plan de rodaje que permita desarrollar la actividad con el mínimo costo posible.
 * APLICACIÓN DE ALGORITMOS GENETICOS PARA EL MEJORAMIENTO **

 La idea general de los algoritmos genéticos se basa en la teoría de la evolución de Darwin. El grado de adaptación al medio ambiente que tienen las distintas especies que habitan nuestro planeta, se ha logrado gracias a un proceso de selección natural. En este proceso, aquellos individuos mejor dotados (los que muestran una mejor adaptación al medio ambiente) son seleccionados para reproducirse y transmitir a nuevas generaciones la información que contienen sus genes, aquellos peor dotados regularmente no son seleccionados. La información genética a su vez va sufriendo cambios a través del tiempo, los cuales en algunos casos son beneficiosos para la especie y en otros perjudicial. Este fenómeno es conocido con el nombre de mutación. Cuando utilizamos los algoritmos genéticos como método de resolución a un problema, este procede de la siguiente forma [BeDa03]: se genera una población inicial de individuos, la cual es un grupo de soluciones factibles del problema en cuestión, de forma aleatoria o bien aplicando algún tipo de heurística. En cada iteración, la cual corresponde a una nueva generación, los individuos de la población actual son evaluados de acuerdo a algún criterio predefinido, generalmente una métrica, a la que llamaremos ajuste. Para formar la población de la próxima generación seleccionamos individuos según su grado de ajuste. El grupo de individuos que forman parte de la nueva generación está compuesto por algunos individuos de la población anterior y por nuevos individuos creados a partir de otros individuos seleccionados. La forma en que se crean nuevos individuos es a través de operadores genéticos y operadores de mutación. El proceso se repite hasta que se cumpla el criterio de parada. Si el algoritmo genético ha sido bien diseñado, la población va a converger a la solución óptima del problema.  <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";">Un individuo representa una posible solución del problema. Esta solución debe ser codificada en un elemento que la represente, éste elemento es llamado cromosoma. Para problemas en el cual el espacio de soluciones factibles puede ser representado por una permutación, la codificación más adecuada es en base 10. Las soluciones posibles del problema en el cual se centró este estudio pueden ser representadas por un arreglo que contenga el orden en que las escenas van a ser filmadas. <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";">La población inicial de individuos puede ser generada a través de un proceso aleatorio o bien a través de alguna heurística. Con una heurística existe el riesgo de considerar un subconjunto del espacio de soluciones, sin embargo, se podría tener soluciones en un tiempo menor. En el diseño del algoritmo genético se consideró un proceso de generación aleatorio, privilegiando la diversidad por sobre el tiempo de convergencia. La forma en que generaron las soluciones aleatorias fue la siguiente: se ordenan las escenas en orden cronológico en un arreglo, luego se asigna un número aleatorio a cada una de ellas y finalmente se ordenan las escenas por el número aleatorio asignado. <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";">La función de ajuste corresponde a una forma de medir qué tan bien un determinado individuo se adapta al medio, o bien cuál es el valor de dicho individuo. La función de ajuste debe tener en consideración dos aspectos: la calidad de la función objetivo y la infactibilidad del individuo. La infactibilidad del individuo debe ser penalizada en la función de ajuste proporcionalmente al grado de infactibilidad del mismo. <span style="font-family: "Arial","sans-serif";">Para medir la infactibilidad de un individuo, se definió el concepto de violación de restricción ( //R//~ ) como la magnitud de la suma de incumplimientos de la restricción para el problema completo, expresada como porcentaje de la suma de la cota máxima permitida para la restricción en el problema completo. Se expresó la violación como porcentaje con el objetivo de poder comparar violaciones de distintas restricciones, eliminando así el problema de las escalas. <span style="font-family: "Arial","sans-serif";">De esta forma, se tiene que la función de ajuste asigna a un individuo el valor de su función objetivo más una penalización por violación de restricciones. Esta penalización está constituida por una fracción de la función objetivo, fracción que está determinada por las funciones de violación y los parámetros //t// λ, factor de importancia de la restricción t.
 * <span style="font-family: "Arial","sans-serif";">APLICACIÓN DEL ALGORITMO GENETICO **
 * <span style="font-family: "Arial","sans-serif";">INDIVIDUOS **
 * <span style="font-family: "Arial","sans-serif";">POBLACIÓN INICIAL **
 * <span style="font-family: "Arial","sans-serif";">FUNCIÓN DE AJUSTE **

<span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif"; font-size: 11.5pt;">En la función, //<span style="font-family: "Arial","sans-serif"; font-size: 7pt;">t //<span style="font-family: "Arial","sans-serif"; font-size: 12.5pt;">λ <span style="font-family: "Arial","sans-serif"; font-size: 11.5pt;">es el factor de importancia de la restricción t. Las violaciones del conjunto de restricciones violables del sistema son: <span style="font-family: "Arial","sans-serif"; font-size: 11.5pt;">



<span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";">El proceso de selección de individuos corresponde a elegir a los individuos de una población de una generación dada para que éstos creen nuevos individuos, o bien para ser traspasados automáticamente a la próxima generación. La forma en que se seleccionen estos individuos es determinante en el desempeño del algoritmo genético. Lo que se quiere es que aquellos individuos con un mejor ajuste tengan una mayor probabilidad de ser seleccionados. La técnica más utilizada para la selección de individuos es la de Rueda de Ruleta (Roulette Wheel Selection), esquema en el cual cada individuo tiene una probabilidad de ser seleccionado oporcional a la bondad de su ajuste. Recordemos que el objetivo del modelo en estudio es minimizar el costo de producción, por lo que un individuo con una función de ajuste baja corresponde a una buena solución. En vez de asignar una probabilidad directamente proporcional al ajuste, lo que se hizo fue asignar una probabilidad de selección inversamente proporcional al ajuste. <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";">El cruce y la mutación son operadores inspirados en la genética, cuya función corresponde a buscar nuevos puntos en el espacio de soluciones. La importancia de estos operadores es radical en el desempeño del algoritmo genético [SaBu00]. <span style="font-family: "Arial","sans-serif";">El principal objetivo del cruce es mantener una población diversa de soluciones en cada generación. El cruce, también llamado crossover, crea nuevos individuos (hijos) a través de la recombinación de los genes de individuos ya existente (padres). La literatura es bastante extensa en este tipo de operadores [SaBu00] [RuRu03],[DaDi97],[MaKF99],[YaTe97],[FeCa03]. Sin embargo, en el marco de este estudio se evaluaron sólo 4 operadores de cruce distintos: Partially Mapped Crossover (PMX), Order Crossover (OX), Uniform Crossover (UCX) y Similar Job Order Crossover (SJOX). Los tres primeros fueron propuestos por distintos autores para la resolución del TSP [ReCo93][BoUl03] y el último fue propuesto para la resolución del PFSP (//Permutation Flowshop Scheduling Problem//) ([ChAnNA][BeDa93]). <span style="font-family: "Arial","sans-serif";">Para la mutación se consideraron dos operadores: mutación de Intercambio, el cual elige dos posiciones aleatorias dentro de un individuo e intercambia los elementos de posición y mutación de Desplazamientos, el cual genera dos posiciones aleatorias, una inicial y otra final, luego el elemento que ocupa la posición inicial es trasladado a la posición final, moviendo el resto de los elementos que están en el medio. <span style="font-family: "Arial","sans-serif"; font-size: 11.5pt;"> <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";">El enfoque propuesto a una serie de guiones reales para estudiar su desempeño. Como resultado de la ejecución del algoritmo, se entregan tres planes de rodaje alternativos. Un plan de rodaje es una herramienta fundamental para el productor. En él se indica el costo total de la producción, cuales son las escenas que se filmarán cada día, si la jornada debe ser ejecutada durante el día o durante la noche, el total de páginas que se deben rodar cada día y cuales son los actores que debe asistir al rodaje. Además del plan de rodaje, nos interesa saber cuál es el <span style="font-family: "Arial","sans-serif";">calendario de trabajo para cada actor, el costo que genera cada uno de ellos y sus días ciosos. Así como también el tiempo utilizado cada día y los tipos de jornada. <span style="font-family: "Arial","sans-serif";">Toda esta información se presenta en un reporte como el de la Tabla 2. En ella, podemos verificar que el calendario corresponde a lo que queremos. En general podemos verificar que el número de días ociosos de cada uno de los actores es bastante bajo. El costo que producen estos días, representan cerca del 20% del costo total de la producción en las instancias probadas.
 * <span style="font-family: "Arial","sans-serif";">SELECCIÓN **
 * <span style="font-family: "Arial","sans-serif";">CRUCE Y MUTACIÓN **
 * <span style="font-family: "Arial","sans-serif";">RESULTADOS **



<span style="font-family: "Arial","sans-serif";">En el problema de la programación de rodaje de películas, existen elementos del que difíciles de incluir en un modelo de programación matemática. Además, el cliente no requiere la configuración óptima del plan de rodaje, sino que un conjunto reducido de buenas soluciones que le dieran la libertad de decidir e incluir en su decisión aquellos elementos exógenos. Estas características sitúan a las meta-heurísticas como una buena alternativa de solución. De entre ellas se optó por usar algoritmos genéticos los que en las pruebas realizadas muestran resultados promisorios. El algoritmo presentado en este trabajo se construyó a partir de distintas ideas recogidas de la literatura para configurar un algoritmo especialmente diseñado para este problema. <span style="font-family: "Arial","sans-serif";">El enfoque de solución presentado muestra buenos resultados en varios indicadores de desempeño. Sin embargo la imposibilidad de generar soluciones exactas para instancias reales nos impide medir con precisión la calidad de la solución. Un mecanismo de comparación alternativo consiste en medir las diferencias de costo entre las soluciones propuestas en este trabajo con las generadas manualmente por los productores en un problema real. Esto constituiría una medida de los potenciales beneficios de la aplicación de la metodología propuesta y por tanto constituye el próximo paso de esta investigación. <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";"> <span style="font-family: "Arial","sans-serif";">