Está en la página 1de 18

UNIVERSIDAD NACIONAL DEL ALTIPLANO DE PUNO

FACULTAD DE INGENIERÍA MECÁNICA ELÉCTRICA,


ELECTRÓNICA Y SISTEMAS

ESCUELA PROFESIONAL DE INGENIERÍA DE


SISTEMAS

CURSO:
INVESTIGACION DE OPERACIONES

PRESENTADO POR:

- JHON SUPO TITO MAMANI

- WILDON MARÍN VARGAS

DOCENTE:

CIUDAD UNIVERSITARIA 2018

1
ÍNDICE
RESUMEN ......................................................................................................................................... 3
INTRODUCCIÓN .............................................................................................................................. 4
CAPITULO I ...................................................................................................................................... 5
1. HISTORIA DE LOS ALGORITMOS GENÉTICOS ......................................................... 5
2. CONCEPTUALIZACIÓN ..................................................................................................... 6
3. CARACTERÍSTICAS ........................................................................................................... 7
CAPITULO II ..................................................................................................................................... 8
1. TIPOS DE ALGORITMOS GENETICOS ......................................................................... 8
1.1. ALGORITMOS GENÉTICOS SIMPLES................................................................... 8
1.2. ALGORITMOS GENÉTICOS PARALELOS. .......................................................... 8
CAPITULO III .................................................................................................................................. 12
1. VENTAJAS Y DESVENTAJAS ....................................................................................... 12
1.1. VENTAJAS.................................................................................................................. 12
1.2. DESVENTAJAS ......................................................................................................... 13
2. FUNCIONAMIENTO DE UN ALGORITMO GENÉTICO BÁSICO ............................. 14
3. ALGUNAS APLICACIONES DE LOS ALGORITMOS GENÉTICOS ....................... 15
CONCLUSIÓN ................................................................................................................................ 17
BIBLIOGRAFÍA .............................................................................................................................. 18

2
RESUMEN

El código genético es uno de los algoritmos que se basa en la evolución de Darwin


que es la selección natural de seleccionar al amas fuerte este algoritmo se relaciona
o tiene similitud al genoma humano ya que utiliza el cromosoma. Para obtener el
mejor postor en el método de este algoritmo DE BUSQUEDA.

Este tipo de algoritmo selecciona entre una cantidad de postores los cuales son
codificados para luego ser comparados en el sistema fitnes es el que certifica la
mejor solución el mejor postor en caso de no ser el mejor postor se volverá de
nuevo a elegir a otro postor atraves de una ruleta aleatoria luego serán codificados
y se repetirá el ciclo.

3
INTRODUCCIÓN
los algoritmos genéticos, entre otras, conocidas en su conjunto como soft-
computing, se han venido aplicando para generar modelos que den cuenta de las
relaciones de entrada salida de diferentes sistemas, sin la necesidad de contar A
priori con información completa sobre la estructura explícita de ecuaciones
dinámicas que describan las relaciones entre variables y parámetros en estos
procesos complejos, Los algoritmos genéticos permite alcanzar soluciones
extremas que satisfagan criterios prescritos.

4
CAPITULO I

1. HISTORIA DE LOS ALGORITMOS GENÉTICOS

Según (OPERACIONES, 2015, págs. 8-9), las teorías de herencia y


evolución presentada por Mendel luego por Darwin, inspiraron a la ciencia
computacional en el desarrollo de algoritmos evolutivos.
Diferentes ramas han emergido de esta idea como los son: algoritmos
genéticos (GA), desarrollado por Jhon Holland (1962).
Los algoritmos genéticos fueron desarrollados durante los 70 por Holland
para entender el proceso adaptativo de un sistema natural. Luego fue
aplicado para optimización y máquinas de aprendizaje.
Los primeros ejemplos de lo que hoy podríamos llamar algoritmos genéticos
aparecieron a finales de los 50 y principios de los 60, programados en
computadoras por biólogos evolutivos que buscaban explícitamente realizar
modelos de aspectos de la evolución natural. A ninguno de ellos se le ocurrió
que esta estrategia podría aplicarse de manera más general a los problemas
artificiales, pero ese reconocimiento no tardaría en llegar: ``La computación
evolutiva estaba definitivamente en el aire en los días formativos de la
computadora electrónica'' (Mitchell 1996).En 1962, investigadores como
G.E.P. Box, G.J. Friedman, W.W. Bledsoey H.J. Bremermann habían
desarrollado independientemente algoritmos inspirados en la evolución para
optimización de funciones y aprendizaje automático, pero sus trabajos
generaron poca reacción. En 1965 surgió un desarrollo más exitoso, cuando
Ingo Rechenberg, entonces de la Universidad Técnica de Berlín, introdujo
una técnica que llamó estrategia evolutiva, aunque se parecía más a los trepa
colinas que a los algoritmos genéticos. En esta técnica no había población ni
cruzamiento; un padre mutaba para producir un descendiente, y se
conservaba el mejor de los dos, convirtiéndose en el padre de la siguiente
ronda de mutación. Versiones posteriores introdujeron la idea de población.
Las estrategias evolutivas todavía se emplean hoy en día por ingenieros y

5
científicos, sobre todo en Alemania. El siguiente desarrollo importante en el
campo vino en 1966, cuando L.J. Fogel, A.J. Owens y M.J. Walsh
introdujeron en América una técnica que llamaron programación evolutiva.
En este método, las soluciones candidatas para los problemas se
representaban como máquinas de estado finito sencillas; al igual que en la
estrategia evolutiva de Rechenberg, su algoritmo funcionaba mutando
aleatoriamente una de estas máquinas simuladas y conservando la mejor de
las dos (Mitchell 1996; Goldberg 1989). También al igual que las estrategias
evolutivas, hoy en día existe una formulación más amplia de la técnica de
programación evolutiva que todavía es un área de investigación en curso.

2. CONCEPTUALIZACIÓN

Los Algoritmos Genéticos (AGs) son métodos adaptativos que pueden


usarse para resolver problemas de búsqueda y optimización. Están basados
en el proceso genético de los organismos vivos. A lo largo de las
generaciones, las poblaciones evolucionan en la naturaleza de acorde con
los principios de la selección natural y la supervivencia de los más fuertes,
postulados por Darwin. Por imitación de este proceso, los Algoritmos
Genéticos son capaces de ir creando soluciones para problemas del mundo
real. La evolución de dichas soluciones hacia valores óptimos del problema
depende en buena medida de una adecuada codificación de las mismas.

Un Algoritmo Genético consiste en una función matemática o una rutina de


software que toma como entradas a los ejemplares y retorna como salidas
cuáles de ellos deben generar descendencia para la nueva generación.

Pero según las investigaciones (COELLO COELLO, 1995, págs. 5-11) es un


algoritmo matemático altamente paralelo que transforma un conjunto de
objetos matemáticos individuales con respecto al tiempo usando operaciones
modeladas de acuerdo al principio Darwiniano de reproducción y
supervivencia del más apto, y tras haberse presentado de forma natural una

6
serie de operaciones genéticas de entre las que destaca la recombinación
sexual. Cada uno de estos objetos matemáticos suele ser una cadena de
caracteres (letras o números) de longitud fija que se ajusta al modelo de las
cadenas de cromosomas, y se les asocia con una cierta función matemática
que refleja su aptitud.

3. CARACTERÍSTICAS

 Basados en el uso de poblaciones.


 Diferenciación entre las variables del problema (fenotipo) y la
codificación (genotipo).
 Procedimientos de mutación, cruce y selección (los algoritmos
meméticos añaden procedimientos de mejora).

7
CAPITULO II

1. TIPOS DE ALGORITMOS GENETICOS


Para (GIL LONDOÑO, 2006, págs. 20-40), los AG se clasifican en:

1.1. ALGORITMOS GENÉTICOS SIMPLES


 Tipos de Representación
Durante los primeros años el tipo de representación utilizado era
siempre binario, debido a que se adapta perfectamente al tipo de
operaciones y el tipo de operadores que se utilizan en un AG. Sin
embargo, las representaciones binarias no son siempre efectivas
por lo que se empezaron a utilizar otro tipo de representaciones.
En general, una representación ha de ser capaz de identificar las
características constituyentes de un conjunto de soluciones, de
forma que distintas representaciones dan lugar a distintas
perspectivas y por tanto distintas soluciones. Podemos considerar
tres tipos básicos de representaciones:

 Representación binaria: Cada gen es un valor 1 ó 0.


101101
 Representación entera: Cada gen es un valor entero.
1 0 3 -1 0 4
 Representación real: Cada gen es un valor real.
1,78 2,6 7 0 -1,2 6,5.

1.2. ALGORITMOS GENÉTICOS PARALELOS.


Un programa es paralelo si en cualquier momento de su ejecución
puede ejecutar más de un proceso. Para crear programas paralelos
eficientes hay que poder crear, destruir y especificar procesos así
como la interacción entre ellos. Básicamente existen tres formas de
paralelizar un programa:

8
 Paralelización de grano fino: la paralelización del programa se
realiza a nivel de instrucción. Cada procesador hace una parte de
cada paso del algoritmo (selección, cruce y mutación) sobre la
población común.

 Paralelización de grano medio: los programas se paralelizan a


nivel de bucle. Esta paralelización se realiza habitualmente de una
forma automática en los compiladores.

 Paralelización de grano grueso: se basan en la descomposición


del dominio de datos entre los procesadores, siendo cada uno de
ellos el responsable de realizar los cálculos sobre sus datos
locales. Tiene como atractivo la portabilidad, ya que se adapta
perfectamente tanto a multiprocesadores de memoria distribuida
como de memoria compartida. Este tipo de paralelización se
puede realizar siguiendo tres estilos distintos de programación:

- Paralelismo en datos: El compilador se encarga de la


distribución de los datos guiado por un conjunto de directivas
que introduce el programador. Estas directivas hacen que
cuando se compila el programa las funciones se distribuyan
entre los procesadores disponibles. La principal ventaja que
presenta es la facilidad de programación. Los lenguajes de
paralelismo de datos más utilizados son el estándar HPF
(High Performance Fortran) y el OpenMP.

- Programación por paso de mensajes: Es el método más


utilizado para programar sistemas de memoria distribuida, la
forma más básica consiste en que los procesos coordinan sus
actividades mediante el envío y la recepción de mensajes. Las
librerías más utilizadas son por este orden la estándar MPI
(Message Passing Interface) y PVM (Parallel Virtual Machine).
9
- Programación por paso de datos: A diferencia del modelo
de paso de mensajes, la transferencia de datos entre los
procesadores se realiza con primitivas unilaterales tipo putget,
lo que evita la necesidad de sincronización entre los
procesadores emisor y receptor. Es un modelo de
programación de muy bajo nivel pero muy eficiente, aunque
en la actualidad son muy pocos los fabricantes que los
soportan.

Al utilizar computadores en paralelo, no solamente se provee


de más espacio de almacenamiento, sino también con el uso
de ellos se podrán producir y evaluar más soluciones en una
cantidad de tiempo más pequeño. Debido al paralelismo, es
posible incrementar el tamaño de la población, reducir el costo
computacional y mejorar el desempeño de los AG.

Algoritmos Genéticos Esquema Básico

Maximizar f(x) = x 2 con x entero entre 0 y 31


- Representación en binario
0 1 1 0 1

- Población inicial generada aleatoriamente, tamaño 4

01101
11000
01000
10011

10
- Función de calidad f(x) = x 2
- Selección:

 Generar una población intermedia. Para ello asignar a cada individuo


una probabilidad de ser seleccionado directamente proporcional a su
función de calidad.

De la población intermedia se seleccionan parejas de forma aleatoria.

 Cruce: elegir un punto intermedio e intercambiar los genes de los


padres a partir de ese punto.

 Mutación: cambio de un bit elegido aleatoriamente (probabilidad


pequeña).

11
CAPITULO III

1. VENTAJAS Y DESVENTAJAS
Según (ARRANZ DE LA PEÑA & PARRA TRUYOL, pág. 7).
1.1. VENTAJAS
 Los algoritmos genéticos son intrínsecamente paralelos, es decir,
operan de forma simultánea con varias soluciones, en vez de trabajar
de forma secuencial como las técnicas tradicionales. La cual significa
que mientras técnicas tradicionales sólo pueden explorar el espacio
de soluciones hacia una solución en una dirección al mismo tiempo, y
si la solución que descubren resulta subóptima, no se puede hacer
otra cosa que abandonar todo el trabajo hecho y empezar de nuevo.
Sin embargo, los algoritmos genéticos simplemente desechan esta
solución subóptima y siguen por otros caminos.
 Cuando se usan para problemas de optimización resultan menos
afectados por los máximos locales (falsas soluciones) que las técnicas
tradicionales.
 Muchos algoritmos de búsqueda pueden quedar atrapados en los
óptimos locales: si llegan a lo alto de una colina del paisaje adaptativo,
descubrirán que no existen soluciones mejores en las cercanías y
concluirán que han alcanzado la mejor de todas, aunque existan picos
más altos en algún otro lugar del mapa, situación que no sucede para
algoritmos genéticos.

12
 Su habilidad para manipular muchos parámetros simultáneamente,
resulta interesante en caso de tener varios objetivos a resolver.
 No necesitan conocimientos específicos sobre el problema que
intentan resolver. Realizan cambios aleatorios en sus soluciones
candidatas y luego utilizan la función de aptitud para determinar si
esos cambios producen una mejora o no.
 Resulta sumamente fácil ejecutarlos en las modernas arquitecturas
masivas en paralelo.
 Usan operadores probabilísticos, en vez de los típicos operadores
determinísticos de las otras técnicas.

1.2. DESVENTAJAS
 Definir una representación del problema. El lenguaje utilizado para
especificar soluciones candidatas debe ser robusto, debe ser capaz
de tolerar cambios aleatorios que no produzcan constantemente
errores fatales o resultados sin sentido. Se puede solucionar mediante
la definición de los individuos como listas de números donde cada
número representa algún aspecto de la solución candidata.
 Pueden tardar mucho en converger, o no converger en absoluto,
dependiendo en cierta medida de los parámetros que se utilicen
tamaño de la población, número de generaciones.
 Pueden converger prematuramente debido a una serie de problemas.
Si un individuo que es más apto que la mayoría de sus competidores
emerge muy pronto en el curso de la ejecución, se puede reproducir
tan abundantemente que merme la diversidad de la población
demasiado pronto, provocando que el algoritmo converja hacia el
óptimo local que representa ese individuo, en lugar de rastrear el
paisaje adaptativo lo bastante a fondo para encontrar el óptimo global.
Esto es un problema especialmente común en las poblaciones
pequeñas, donde incluso una variación aleatoria en el ritmo de

13
reproducción puede provocar que un genotipo se haga dominante
sobre los otros.

2. FUNCIONAMIENTO DE UN ALGORITMO GENÉTICO BÁSICO


Según (VAREDAS, págs. 20-25), un algoritmo genético puede presentar
diversas variaciones, dependiendo de cómo se aplican los operadores
genéticos (cruzamiento, mutación), de cómo se realiza la selección y de
cómo se decide el reemplazo de los individuos para formar la nueva
población. En general, el pseudocódigo consiste de los siguientes pasos:

Algoritmo genético i: inicialización, f(X): evaluación, condición de término,


Se: selección, Cr: cruzamiento, Mu: mutación, Re: reemplazo, X*: mejor solución.

 Inicialización: Se genera aleatoriamente la población inicial, que está


constituida por un conjunto de cromosomas los cuales representan las
posibles soluciones del problema. En caso de no hacerlo aleatoriamente,
es importante garantizar que dentro de la población inicial, se tenga la
diversidad estructural de estas soluciones para tener una representación
de la mayor parte de la población posible o al menos evitar la convergencia
prematura.

14
 Evaluación: A cada uno de los cromosomas de esta población se aplicará
la función de aptitud para saber cómo de "buena" es la solución que se
está codificando.
 Condición de término: El AG se deberá detener cuando se alcance la
solución óptima, pero ésta generalmente se desconoce, por lo que se
deben utilizar otros criterios de detención. Normalmente se usan dos
criterios: correr el AG un número máximo de iteraciones (generaciones) o
detenerlo cuando no haya cambios en la población. Mientras no se cumpla
la condición de término se hace lo siguiente:
 Selección Después de saber la aptitud de cada cromosoma se procede a
elegir los cromosomas que serán cruzados en la siguiente generación. Los
cromosomas con mejor aptitud tienen mayor probabilidad de ser
seleccionados.
 Recombinación o Cruzamiento La recombinación es el principal
operador genético, representa la reproducción sexual, opera sobre dos
cromosomas a la vez para generar dos descendientes donde se combinan
las características de ambos cromosomas padres.
 Mutación modifica al azar parte del cromosoma de los individuos, y
permite alcanzar zonas del espacio de búsqueda que no estaban cubiertas
por los individuos de la población actual.
 Reemplazo una vez aplicados los operadores genéticos,
se seleccionan los mejores individuos para conformar la población de la
generación siguiente.

3. ALGUNAS APLICACIONES DE LOS ALGORITMOS GENÉTICOS


(GIL LONDOÑO, 2006, págs. 18-19), afirma que el área de aplicación de los AG es
muy amplia, y en general sus aplicaciones se pueden implementar a muchos de los
problemas de la vida cotidiana, de igual forma, se han aplicado a diversos problemas
y modelos en ingeniería, y en la ciencia en general, cabe destacar entre ellos:
 Optimización: Se trata de un campo especialmente abonado para el uso de
los AG, por las características intrínsecas de estos problemas. No en vano

15
fueron la fuente de inspiración para los creadores estos algoritmos. Los AG se
han utilizado en numerosas tareas de optimización, incluyendo la optimización
numérica, y los problemas de optimización combinatoria.
 Programación automática: Los AG se han empleado para desarrollar pro-
gramas para tareas específicas, y para diseñar otras estructuras
computacionales tales como el autómata celular, y las redes de clasificación.
 Aprendizaje máquina: Los AG se han utilizado también en muchas de es- tas
aplicaciones, tales como la predicción del tiempo o la estructura de una
proteína. Han servido asimismo para desarrollar determinados aspectos de
sistemas particulares de aprendizaje, como pueda ser el de los pesos en una
red neuronal, las reglas para sistemas de clasificación de aprendizaje o
sistemas de producción simbólica, y los sensores para robots.
 Economía: En este caso, se ha hecho uso de estos Algoritmos para modelar
procesos de innovación, el desarrollo estrategias de puja, y la aparición de
mercados económicos.
 Sistemas inmunes: A la hora de modelar varios aspectos de los sistemas
inmunes naturales, incluyendo la mutación somática durante la vida de un
individuo y el descubrimiento de familias de genes múltiples en tiempo
evolutivo, ha resultado útil el empleo de esta técnica.
 Ecología: En la modelización de fenómenos ecológicos tales como las
carreras de armamento biológico, la coevolución de parásito-huesped, la
simbiosis, y el flujo de recursos.
 Genética de poblaciones: En el estudio de preguntas del tipo "¿Bajo qué
condiciones será viable evolutivamente un gene para la recombinación?".
 Evolución y aprendizaje: Los AG se han utilizado en el estudio de las
relaciones entre el aprendizaje individual y la evolución de la especie.
 Sistemas sociales: En el estudio de aspectos evolutivos de los sistemas
sociales, tales como la evolución del comportamiento social en colonias de
insectos, y la evolución de la cooperación y la comunicación en sistemas
multiagentes.

Aunque esta lista no es, en modo alguno, exhaustiva, sí transmite la idea de la


variedad de aplicaciones que tienen los AG. Gracias al éxito en estas y otras
áreas, los AG han llegado a ser un campo puntero en la investigación actual.

16
CONCLUSIÓN

En los últimos quince años, las técnicas de computación evolutiva se han


consolidado como un conjunto de metaheurísticas efectivas y robustas como
consecuencia de su alta aplicabilidad a la resolución de problemas en múltiples
áreas. Tomando en cuenta los numerosos y exitosos antecedentes que refieren a
la utilización de técnicas evolutivas para la resolución de problemas de optimización
combinatoria, surgen como una alternativa natural para la resolución de los
complejos problemas de optimización subyacentes a los problemas de diseño de
redes de comunicaciones confiables, que constituyen el objetivo de esta
monografía.

En esta monografía hemos presentado los conceptos genéricos vinculados con las
técnicas de computación evolutiva y ha comentado en detalle las características de
los algoritmos genéticos en particular, al considerarlos como mecanismos de
resolución de problemas de optimización combinatoria y problemas análogos en
otras áreas de aplicación.

17
BIBLIOGRAFÍA

ARRANZ DE LA PEÑA, J., & PARRA TRUYOL, A. (s.f.). ALGORÍTMOS


GENÉTICOS. UNIVERSIDAD CARLOS III.

COELLO COELLO, C. A. (1995). Introducción a los Algoritmos Genéticos. En J. R.


KOZA, Genetic Programming. On the Programming of Computers by Means
of Natural Selection.

GIL LONDOÑO, N. (2006). ALGORÍTMOS GENÉTICOS. Medellín, Universidad


Nacional de Colombia.

OPERACIONES, I. C. (2015). Historia de los Algorítmos Genéticos. ICHIO, 15.

SUZUKI, J. (1993). A construction of Bayesian networks from databases based on


an MDL. Proceedings of the Ninth Conference.

Tomas. (14 de Agosto de 2006). Obtenido de


http://www.ecobachillerato.com/experto/algoritmo.pdf

VAREDAS, F. (s.f.). Computacion Evolutiva.

18

También podría gustarte