Descrição: Lista de Exercícios retirados do Livro "Livro - Fundamentos da Programação de Computadores - 2ª ed." para que vocês possam resolvê-los.
Descripción: Algoritmo de floyd teoría y ejemplos desarrollados
Descripción del algoritmo de peterson y ejemploDescripción completa
Descripción completa
kjjklnDescripción completa
ALGORITMO DE TEMPLADO SIMULADO Simulated annealing (SA) o recocido simulado es un algoritmo de búsqueda meta-heurística meta -heurística para para problemas de optimización global; el objetivo geneneral de este tipo de algoritmos es encontrar una buena aproximación al valor óptimo de una función en un espacio de búsqueda grande. A este valor óptimo se lo denomina "óptimo global"
El nombre e inspiración viene del proceso de recocido del acero y cerámicas, una técnica que consiste en calentar y luego enfriar lentamente el material para variar sus propiedades físicas. El calor causa que los átomos aumenten su energía y que puedan así desplazarse de sus posiciones iniciales (un mínimo local de energía); energía); el enfriamiento lento les da mayores probabilidades de recristalizar en configuraciones con menor energía que la inicial (mínimo global). El método fue descrito independientemente por Scott Kirkpatrick, C. Daniel Gelatt y Mario P. Vecchi en 1983 y por Vlado Černý en 1985. El método es una adaptación del algoritmo Metropolis -Hastings, un método de Montecarlo utilizado para generar muestras de estados de un sistema termodinámico. Este algoritmo se basa en la metaheurística de la relación entre el proceso químico del recocido y la optimización combinatoria. La relación entre ambas se muestra a continuación:
Configuración cristalina => Solución factible. Configuración cristalina de mínima energía => Solución óptima. Energía de la configuración => Coste de la solución. Temperatura => Parámetro de control.
Por ser un método iterativo necesita partir de una solución inicial, la elección de esta nos determinará el coste computacional del resultado obtenido, aunque al ser un método estocástico no será tan crítica como en los métodos directos como gradiente-conjugado o Newton.
Temperatura inicial. Si dicha temperatura es demasiado alta serán necesarias más iteraciones y el método tardará más en converger, si por el contrario es baja no llegará al mínimo. La solución sería partir de una temperatura alta y realizar pasos pequeños pero el problema sería intratable computacionalmente. Debe ser seleccionada con la idea de que casi todas las transiciones e ntre los estados sean aceptadas. Esquema de enfriamiento. Determina como se va a realizar el descenso de la temperatura. Normalmente es usado un descenso geométrico de la forma: Tnew = k·Told donde k toma valores entre 0.80 y 0.99. Temperatura mínima. Tiene que ser suficientemente baja para permitir llegar al máximo global. Tiempo antes de la disminución de temperatura. Normalmente se usan número de iteraciones entre cada descenso de temperatura. Criterio de parada. Se pueden considerar 3 métodos: Tolerancia. Suponiendo que se conoce teó ricamente una solución. o Cantidad de iteraciones. o Cambios relativos entre sucesivas iteraciones. o Movimientos. Determina como se realizan los cambios de parámetros. Deben ser inteligentes, es decir, estudiados matemáticamente para cada caso en particular. También son usados mutaciones y cruces. Un método sencillo de implementar sería realizar pequeñas alteraciones en un parámetro aleatorio.
ENCONTRAR EL TIPICO VALOR DE PROBABILIDAD DE CONMUTACION DE CROSSOVER PARA ALGORITMOS GENETICOS Para valores largos de .5 a 1 ALGORITMOS GENETICOS Un algoritmo genético es un método de búsqueda que imita la teoría de la evolución biológica de Darwin para la resolución de problemas. Para ello, se parte de una población inicial de la cual se seleccionan los individuos más capacitados para luego reproducirlos y mutarlos para finalmente obtener la siguiente generación de individuos que estarán más adaptados que la anterior generación. Los pasos básicos de un algoritmo genético son: Evaluar la puntuación de cada uno de los cromosomas generados. Permitir la reproducción de los cromosomas siendo los más aptos los que tengan más probabilidad de reproducirse. Con cierta probabilidad de mutación, mutar un gen del nuevo individuo generado. Organizar la nueva población.
Tamaño de la Población Este parámetro nos indica el número de cromosomas que tenemos en nuestra población para una generación determinada. En caso de que esta medida sea insuficiente, el algoritmo genético tiene pocas
posibilidades de realizar reproducciones con lo que se realizaría una búsqueda de soluciones escasa y poco óptima. Por otro lado si la población es excesiva, el algoritmo genético será excesivamente lento. De hecho estudios revelan que hay un límite a partir del cual es ineficiente elevar el tamaño de la población puesto que no se consigue una mayor velocidad en la resolución del problema.
Probabilidad de Cruce Indica la frecuencia con la que se producen cruces entre los cromosomas padre es decir, que haya probabilidad de reproducción entre ellos. En caso de que no exista probabilidad de reproducción, los hijos serán copias exactas se los padres. En caso de haberla, los hijos tendrán partes de los cromosomas de los padres. S i la probabilidad de cruce es del 100% el hijo se crea totalmente por cruce, no por partes.
Probabilidad de Mutación Nos indica la frecuencia con la que los genes de un cromosoma son mutados. Si no hay mutación, los descendientes son los mismos que había tras la reprodu cción. En caso de que haya mutaciones, parte del cromosoma descendien te es modificado y si la probabilidad de mutación es del 100%, la totalidad del cromosoma se cambia. En este caso, no se cambian simplemente unos bits del cromosoma sino que se cambian todos, lo que significa que se produce una inversión en el cromosoma y no una mutación por lo que la población