Está en la página 1de 23

CURSO

INGIENERIA DE COMUNICACIONES 2

TITULO

Imgenes Digitales - Gif

PROFESOR

Alfredo Efran Rodrguez Gutirrez

INTEGRANTES :

Grupo Nro 8
Fiorella Gresb Ruz Pomachagua
Erika Margarita Fuentes Rivera
Juan Carlos Zamora Corilla
Jos Enrique Huaman Lopez
Sal Ronald Martin Vilca Villena

INTRODUCCION

Actualmente vivimos en un era en que todas las formas de la informacin estn pasando
por un proceso de digitalizacin. Un ejemplo claro son las imgenes que no han podido
escapar a este proceso. Miles de imgenes digitales son producidos por la fotografa, el
cine, la televisin, el diseo grfico, que son almacenadas en algn soporte fsico,
enviadas por un medio transmisin electrnico, presentadas ya sea en una pantalla o
impresas en papel en algn dispositivo.
Una imagen digital se obtiene a travs de un dispositivo de conversin analgico-digital
como un escner una cmara fotogrfica digital o directamente desde el ordenador
utilizando cualquier programa de tratamiento de imgenes. La informacin digital que
genera cualquiera de los medios anteriormente citados es almacenada en el ordenador
mediante bits (unos y ceros).
Las imgenes digitales se pueden guardar en distintos formatos. Cada formato tiene una
extensin especfica del archivo que lo contiene. Los formatos ms utilizados en la
actualidad son: BMP, GIF, JPG, TIF y PNG.
En esta oportunidad hablaremos y enfocaremos al formato GIF (Graphics Interchange
Format = Formato de Intercambio Grfico), el cual es un formato diseado para la
compresin de imgenes digitales, tiene una paleta de 256 colores, adems de admitir
gama de menor nmero de colores, lo cual permite optimizar el tamao del archivo que lo
contiene. Tambin veremos sus diversas aplicaciones, ventajas y desventajas que ofrece
este formato de imagen digital. Adems veremos los algoritmos que en la actualidad
pueden ayudar a optimizar este tipo de imgenes.

ALGORITMOS DE CODIFICACION
Existen dos formatos de archivos GIF desarrollados en 1987 y en 1989.
El GIF 87a que es compatible con la compresin LZW, permite una visualizacin
progresiva de una paleta de 256 colores y tiene la posibilidad de crear imgenes
animadas llamados GIFS animados, almacenando varias imgenes en el mismo archivo.
El GIF 89a, que tiene como opcin la posibilidad de designar un color transparente para
la paleta y especificar el tiempo de las animaciones.
La compresin del formato GIF est dada por el algoritmo LZW, aunque tambin en la
actualidad han aparecido dos nuevos conceptos algoritmo en el procesamiento de
imgenes que son algoritmo de redes neuronales y algoritmo gentico
Algoritmo LZW ( Lempel Ziv Welch)
Es un algoritmo de compresin sin perdida desarrollado por el cientfico norteamericano
Terry Welch en 1984 como una versin mejorada del algoritmo LZ78 que fue desarrollado
por los cientficos Abraham Lempel y Jacob Ziv.
A diferencia de los mtodos de compresin que se basan en un anlisis inicial del texto
para identificar cadenas repetitivas para armar un diccionario de equivalencias para luego
convertir el texto utilizando los cdigos equivalentes para cadenas repetitivas. La clave del
mtodo LZW reside en que es posible crear de manera automtica y en una nica pasada
un diccionario de cadenas que se encuentren dentro del texto a comprimir mientras al
mismo tiempo se procede a la codificacin. El diccionario no es transmitido con el texto
comprimido, ya que el descompresor puede reconstruirlo usando la misma lgica del
compresor y, si est codificado correctamente tendr las mismas cadenas que el
diccionario del compresor.
El diccionario comienza pre-cargado con 256 entradas, una para cada carcter posible,
adems de un cdigo predefinido para indicar el fin del archivo. A esta tabla se le van
agregando sucesivos cdigos numricos por cada nuevo par de caracteres consecutivos
que se lean.
Al armar el diccionario sobre la marcha se evita hacer dos pasadas sobre el texto, una en
la que se analiza y la otra en la que se codifica y debido a que la regla de armado del
diccionario es tan simple, el descompresor puede reconstruirlo mientras lo lee, evitando la
inclusin del diccionario dentro del texto comprimido. Se puede pensar que el diccionario
est plagado de cdigo innecesario y ser relativamente grande pero esto no sucede en la
prctica, ya que el diccionario no crece demasiado y aunque eso sucediera lo importante
es que el archivo comprimido sea pequeo.
Las entradas del diccionario pueden representar secuencias de caracteres simples o
secuencias de otros cdigos previamente cargados, es decir que un cdigo puede
representar desde uno a un nmero indeterminado de caracteres.

En realidad, el algoritmo no discrimina entre cdigos y caracteres simples pues el


diccionario se carga inicialmente de cdigos que representan los primeros 256 caracteres
simples por lo que estos no son ms que otros cdigos dentro del mismo diccionario.
Cada vez que se lee un nuevo carcter se revisa el diccionario para ver si forma parte de
alguna entrada previa. Todos los caracteres estn inicialmente predefinidos en el
diccionario as que siempre habr al menos una coincidencia, sin embargo, lo que se
busca es la cadena ms larga posible. Si el carcter ledo no forma parte de ms de una
cadena ms larga, entonces se emite la ms larga que se hubiera encontrado y se agrega
al diccionario una entrada formada por cualquiera que hubiera sido el cdigo previo y este
nuevo cdigo. Si el carcter ledo s forma parte de ms de una cadena del diccionario, se
lee un nuevo carcter para ver si la secuencia formada por el carcter previo y el nuevo
es alguna de las encontradas en el diccionario. En tanto los caracteres sucesivos que se
vayan leyendo ofrezcan ms de una entrada posible en el diccionario, se siguen leyendo
caracteres. Cuando la cadena slo tiene una entrada en el diccionario, entonces se emite
el cdigo correspondiente a esa entrada y se incorpora al diccionario una nueva entrada
que representa el ltimo cdigo emitido y el nuevo.
Otra caracterstica primordial del algoritmo es que lo cdigos de salida estn
representados por cadenas de bits variables. El diccionario contiene inicialmente 256
cdigos para 256 caracteres simples posibles con 8 bits y un cdigo que viene a
representar al fin del archivo.
Dado que el algoritmo sirve para comprimir secuencias de bits, ya se sea texto o cualquier
otro tipo de informacin. A continuacin damos un claro ejemplo de cmo funciona este
algortimo. En este ejemplo se supone que los textos a comprimir son solo letras
maysculas sin espacio para lo cual solo basta (en ingles) 26 codigos mas un coidgo que
en este caso se adoptado el cero para representar el fin del archivol el cual se representa
grficamente por el #. El texto que se busca comprimir es:
TOBEORNOTTOBEORTOBEORNOT#
Y el proceso de compresin queda representado por la tabla siguiente:

Carcter: Cdigo emitido


(Salida):
T
O
B
E
O
bits

20 =
15 =
2 =
5 =
15 =

10100
01111
00010
00101
01111

Entrada en el diccionario:

28: TO
29: OB
30: BE
31: EO <--- se agotaron los cdigos de 5

R
6 bits
N
O
T
TO
BE
OR
TOB
EO
RN
OT
#

18 = 010010
14
15
20
28
30
32
37
31
33
35
0

=
=
=
=
=
=
=
=
=
=
=

001110
001111
010100
011100
011110
100000
100101
011111
100001
100011
000000

32: OR <--- se comienza a usar cdigos de


33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:

RN
NO
OT
TT
TOB
BEO
ORT
TOBE
EOR
RNO
OT#

Para interpretarla, se sugiere ignorar la representacin binaria, que se incluye


simplemente para contabilizar el tamao del archivo de salida. Los cdigos del 1 al 26 se
corresponden con caracteres simples 1 = A, 2 = B, ...26 = Z y 27 = "fin de archivo". Del 28
en adelante cada cdigo representa ms de un carcter.
El texto original, compuesto de 25 caracteres que pueden representarse con 5 bits cada
uno nos dara 125 bits. El resultado comprimido produce 5 cdigos de 5 bits ms 12
cdigos de 6 bits, lo cual resulta en 97 bits, una reduccin a menos del 78% del original.
Ntese que cada carcter ledo genera una nueva entrada en el diccionario,
independientemente de si se utilizar o no. Esta simplicidad por parte del algoritmo de
compresin permite que el descompresor pueda reconstruir el diccionario sin errores.
Cuando se comienza a utilizar 6 bits por cdigo, todos los cdigos se emiten con 6 bits,
incluso los que originalmente slo usaran 5 bits, completndose con ceros por izquierda.
Este mtodo se us ampliamente desde que se convirti parte del formato GIF. Tambin
puede ser usado opcionalmente en archivos TIFF.

Algoritmo de Redes Neuronales


Un algoritmo mucho ms reciente que se est utilizando en el procesamiento de
imgenes es el algoritmo de Redes Neuronales.
Aunque pareciere por el nombre algo complicado, una red neuronal no tiene un concepto
tan complicado detrs de ella. Su nombre viene de la idea de imitar el funcionamiento de
las redes neuronales de un organismo vivo: un conjunto de neuronas conectadas entre s
y que trabajan en conjunto, sin que haya una tarea concreta para cada una. Con la

experiencia, las neuronas van creando y reforzando ciertas conexiones para "aprender"
algo que se queda fijo en el tejido.
Se basan en una idea sencilla: dados unos parmetros hay una forma de combinarlos
para predecir un cierto resultado. Por ejemplo, sabiendo los pxeles de una imagen
existir una forma de saber qu nmero hay escrito, o conociendo la carga de servidores
de un Centro de Procesamiento de Datos (CPD), su temperatura y dems existir una
manera de saber cunto van a consumir.
Son un modelo para encontrar una combinacin de parmetros y poder aplicarla al mismo
tiempo. En un lenguaje ms propio, encontrar la combinacin que mejor se ajusta es
entrenar a una red neuronal. Una vez ya entrenada se puede usar para hacer
predicciones o clasificaciones.
Un ejemplo claro para poder entender cmo funciona una red neuronal es: Supongamos
que somos alumnos de una clase en la que el profesor no ha dicho exactamente cmo va
a poner las notas. Para empezar, supongamos que slo has hecho dos exmenes y
tienes la nota de cada uno de ellos y la final.

La unidad bsica de la red neuronal: el perceptrn. Las entradas son las dos notas, n1 y n2, cada una con su
correspondiente peso wn (lo que hay que encontrar). La salida, nf, ser 1 si est aprobado y 0 si a reprobar.

Cmo utilizamos una red neuronal para saber cunto vale cada examen? Aqu nos
bastar con la unidad fundamental de la red neuronal: el perceptrn. Un perceptrn es
un elemento que tiene varias entradas con un cierto peso cada una. Si la suma de esas
entradas por cada peso es mayor que un determinado nmero, la salida del perceptrn es
un uno. Si es menor, la salida es un cero.
En este ejemplo, las entradas seran las dos notas de los exmenes. Si la salida es uno
(esto es, la suma de las notas por su peso correspondiente es mayor que cinco), es un
aprobado. Si son cero, suspenso. Los pesos son lo que tenemos que encontrar con el
entrenamiento. En este caso, nuestro entrenamiento consistir en empezar con dos pesos

aleatorios (por ejemplo, 0.5 y 0.5, el mismo peso a cada examen) y ver qu resultado da
la red neuronal para cada alumno. Si falla en algn caso, iremos ajustando los pesos poco
a poco hasta que est todo bien ajustado.
Por ejemplo, si un alumno con muy buena nota en el segundo examen ha suspendido el
curso, bajaremos el peso del segundo examen porque claramente no influye demasiado.
Poco a poco acabaremos encontrando los pesos que se ajusten a las notas que puso el
profesor. La idea del ajuste o retroalimentacin es ir adaptando la red a la informacin
"oculta" que tienen los datos que le pasamos para que aprenda.
Un concepto ms que faltara explicar en una red neuronal es el de capas del ejemplo
anterior. Supongamos que existen dos alumnos con la misma nota en los exmenes dos
10 pero uno tiene un 7 en el trabajo y otro un 4. El del 7 ha aprobado el curso, pero el del
4 no. Hay un alumno que tiene un 10 en el trabajo y 4.99 en los dos exmenes y que est
suspenso. Podemos intentar entrenar una red neuronal como la de antes todo lo que
queramos en esta situacin que no va a funcionar bien. Es posible que funcione en
muchos casos, pero no va a ser perfecta.
Para ello necesitamos ms capas. Necesitamos un perceptrn intermedio que nos diga si
el trabajo est aprobado o no, y contar eso en el perceptrn de salida. Una posibilidad
sera una red como la siguiente:

El primer perceptrn mira si la nota del trabajo multiplicada por menos uno es mayor que
menos cinco (o, lo que es lo mismo, si la nota es menor que cinco). Si lo es, entonces su
salida es uno. Al multiplicarla por menos diez en la entrada del segundo perceptrn,
forzar siempre un suspenso. Si el trabajo est aprobado, la salida del primer perceptrn
ser 0 y no afectar a la media de los exmenes.
Lo que hemos logrado es aadir mas informacin que no estaba antes. Obtenemos los
datos de entrada los exploramos y sacamos las caractersticas que mejor nos ayuden a
entender lo que esta sucediendo.

Hasta ahora nos hemos centrado en simplificaciones para entender bien los conceptos de
redes neuronales. En la realidad, las cosas se van complicando bastante. Se dejan de
usar perceptrones para usar otras "neuronas" con un comportamiento ms suave, usando
funciones como la sigmoide. La idea es que pequeos cambios en los pesos provoquen
pequeos cambios en la salida de la red, para as poder hacer ms "fcil" el aprendizaje.
Las capas tambin se complican. Nos podemos encontrar varias capas intermedias con
varias neuronas cada una, llegando a lo que llaman "redes neuronales profundas". La
idea es que con ms capas con ms neuronas cada una se puede mejorar las
predicciones en conjuntos de datos ms complicados
El siguiente paso son redes neuronales convolucionales, que estn funcionando muy
bien en reconocimiento de voz y procesamiento de imgenes. Pondramos una neurona
para cada pxel de una imagen y despus pondramos varias capas con varias neuronas,
todas conectadas entre s, para tratar de encontrar un nmero en una foto, por ejemplo. El
problema es que no es demasiado efectivo (imaginemos todos los pesos que habra
computar para una red que acepte imgenes de 1920x1080 pxeles).

La idea de las redes convolucionales es tratar de buscar caractersticas locales en


pequeos grupos de entradas (en el caso de las imgenes, de pxeles), como puedan ser
bordes o colores ms o menos homogneos. Es la misma idea que comentbamos
cuando introducamos las capas unos lneas ms arriba, pero con una variacin:
buscamos caractersticas no en toda la imagen sino slo en pequeas regiones. Adems,
buscamos siempre detectar la misma caracterstica en todos los grupos, por lo que
podemos repetir esa estructura y reducir los ajustes que tenemos que hacer.

Para llevar a cabo esta idea, ponemos un mismo grupo de neuronas por cada grupo de
entradas (por ejemplo, un cuadrado de 3x3 pxeles en una imagen o una secuencia de 4
mediciones en un archivo de sonido). La idea es que todos los elementos que metamos
en la capa (llamada capa de convolucin) tienen los mismos pesos por cada entrada, y se
reduce considerablemente el nmero de parmetros. Si metemos ms capas, la red
neuronal podr descubrir ms y ms complejas caractersticas de la imagen: se puede
empezar por colores o bordes orientados y acabar con capas que se activan con formas
circulares o cuadradas, por poner un ejemplo.
Despus de las capas de convolucin se suele poner otra red neuronal "tradicional", que
ahora tendr ms fcil el trabajo: no tiene que valorar cada pxel por separado sino que
mira a un conjunto de caractersticas de alto nivel de la imagen. Ya no se trata de decidir
si la imagen es un coche sabiendo que el pxel 1208 es amarillo y el 1209 es verde, sino
quizs sabiendo que hay una forma rectangular en la imagen con dos formas circulares
en la parte inferior. De nuevo, se trata de extraer la informacin "oculta" en la entrada para
tratar de encontrar qu es lo que define esos datos.
Adems existen tres tipos de clasificacin de redes neuronales que detallaremos a
continuacin.
La topologa una primera clasificacin de las redes neuronales artificiales que se hace en
funcin del patrn de conexiones que presenta as podemos definir tres tipos bsicos:
Dos tipos de redes de propagacin hacia delante o acclicas en las que todas las seales
van desde la capa de entrada hacia la salida sin existir ciclos, ni conexiones entre
neuronas de la misma capa de red neuronal y su clasificacin.

Monocapa. Ejemplos: perceptrn, Adaline.


Multicapa. Ejemplos: perceptrn multicapa.

Las redes recurrentes que presentan al menos un ciclo cerrado de activacin neuronal.
Ejemplos: Elman, Hopfield, mquina de Boltzmann.
El aprendizaje, una segunda clasificacin que se hace segn el tipo de aprendizaje que
es capaz, para cada tipo de aprendizaje existen varios modelos:
Aprendizaje supervisado: Necesitan un conjunto de datos de entrada previamente
clasificado o cuya respuesta objetivo se conoce. Ejemplos de este tipo de redes son: el
perceptrn simple, la red Adaline, el perceptrn multicapa, red backpropagation, y la
memoria asociativa bidireccional.
Aprendizaje no supervisado o autoorganizado: No necesitan de tal conjunto previo.
Ejemplos de este tipo de redes son: las memorias asociativas, las redes de Hopfield, la
mquina de Boltzmann y la mquina de Cauchy, las redes de aprendizaje competitivo, las
redes de Kohonen o mapas autoorganizados y las redes de resonancia adaptativa (ART).

Redes hbridas: Son un enfoque mixto en el que se utiliza una funcin de mejora para
facilitar la convergencia. Un ejemplo de este ltimo tipo son las redes de base radial.
Aprendizaje reforzado: se sita a medio camino entre el supervisado y el auto organizado.
Finalmente tambin se pueden clasificar segn sean capaces de procesar informacin de
distinto tipo en:
Redes analgicas: Procesan datos de entrada con valores continuos. Ejemplo de este tipo
de redes son: Hopfield, Kohonen y las redes de aprendizaje competitivo.
Redes discretas: Procesan datos de entrada de naturaleza discreta, valores lgicos
booleanos. Ejemplos de este segundo tipo de redes son: las mquinas de Boltzmann y
Cauchy, y la red discreta de Hopfield.

Algoritmo Gentico
Es una serie de pasos organizados que describe el proceso que se debe de seguir para la
solucin de un determinado problema. Son llamados as porque se inspiran en la
evolucin biolgica y su base gentico-molecular.
Son mtodos adaptativos que pueden usarse para resolver problemas de bsqueda y
optimizacin. Estn basados en el proceso gentico de los organismos vivos
Un algoritmo gentico consiste en una funcin matemtica o una rutina de software que
toma como entrada a los ejemplares y retorna como salidas a unos de ellos que debe
generar descendencia para la nueva generacin.
Un investigador de la Universidad de Michigan llamado John Holland era consciente de la
importancia de la seleccin natural, y a fines de los 60s desarroll una tcnica que
permiti incorporarla a un programa. Su objetivo era lograr que las computadoras
aprendieran por s mismas. A la tcnica que invent Holland se le llam originalmente
"planes reproductivos", pero se hizo popular bajo el nombre "algoritmo gentico" tras la
publicacin de su libro en 1975.
Los Algoritmos Genticos usan una analoga directa con el comportamiento natural
trabajan con una poblacin de individuos, cada uno de los cuales representa una solucin
factible a un problema determinado. A cada individuo se le asigna un valor puntuacin,
relacionado con la bondad de dicha solucin. En la naturaleza esto equivale al grado de
efectividad de un organismo para competir por unos determinados recursos. Cuanto
mayor sea la adaptacin de un individuo al problema, mayor ser la probabilidad de que el
mismo sea seleccionado para reproducirse, cruzando su material gentico con otro
individuo seleccionado de igual forma. Este cruce producir nuevos individuos
descendientes de los anteriores, los cuales comparten algunas de las caractersticas de

sus padres. Cuanto menor sea la adaptacin de un individuo, menor ser la probabilidad
de que dicho individuo sea seleccionado para la reproduccin, y por tanto de que su
material gentico se propague en sucesivas generaciones.
Ventajas y Desventajas
No necesitan conocimientos especficos sobre el problema que intentan resolver.

Operan de forma simultnea con varias soluciones, en vez de trabajar de forma


secuencial como las tcnicas tradicionales.

Cuando se usan para problemas de optimizacin maximizar una funcin objetivo


resultan menos afectados por los mximos locales (falsas soluciones) que las
tcnicas tradicionales.

Resulta sumamente fcil ejecutarlos en las modernas arquitecturas masivamente


paralelas.

Usan operadores probabilsticos, en vez de los tpicos operadores determinsticos


de las otras tcnicas.

Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en


cierta medida de los parmetros que se utilicen tamao de la poblacin, nmero
de generaciones, etc.-.

Pueden converger prematuramente debido a una serie de problemas de diversa


ndole.

Cmo saber si es posible usar un algoritmo gentico?


La aplicacin ms comn de estos algoritmos ha sido la solucin de problemas de
optimizacin, en donde han demostrado en ser muy eficientes y confiables. Sin embargo
en general se recomienda tomar en cuenta las siguientes caractersticas antes de usar
este algoritmo:

Su espacio de bsqueda (i.e., sus posibles soluciones) debe estar delimitado


dentro de un determinado rango.

Debe poderse definir una funcin de aptitud que nos indique qu tan buena o mala
es una determinada respuesta.

Las soluciones deben codificarse de una forma que resulte relativamente fcil de
implementar en la computadora.

El primer punto es muy importante, y lo ms recomendable es intentar resolver problemas


que tengan espacios de bsqueda discretos aunque stos sean muy grandes. Sin

embargo, tambin podr intentarse usar la tcnica con espacios de bsqueda continuos,
pero preferentemente cuando exista un rango de soluciones relativamente pequeo.
La funcin de aptitud no es ms que la funcin objetiva de nuestro problema de
optimizacin. El algoritmo gentico nicamente maximiza, pero la minimizacin puede
realizarse fcilmente utilizando el recproco de la funcin maximizante (debe cuidarse, por
supuesto, que el recproco de la funcin no genere una divisin por cero). Una
caracterstica que debe tener esta funcin es que tiene ser capaz de "castigar" a las
malas soluciones, y de "premiar" a las buenas, de forma que sean estas ltimas las que
se propaguen con mayor rapidez.
La codificacin ms comn de las soluciones es a travs de cadenas binarias, aunque
se han utilizado tambin nmeros reales y letras. El primero de estos esquemas ha
gozado de mucha popularidad debido a que es el que propuso originalmente Holland, y
adems porque resulta muy sencillo de implementar.

Marco de Desarrollo
Antes de continuar ahondando en la tcnica de los Algoritmos Genticos sera interesante
dejarla situada dentro de un marco ms amplio. Nos referimos a la rama de la Inteligencia
Artificial que se ha denominado Computacin Evolutiva.
El trmino Computacin Evolutiva se refiere al estudio de los fundamentos y aplicaciones
de ciertas tcnicas heursticas de bsqueda basadas en los principios naturales de la
evolucin. Una gran variedad de algoritmos evolutivos han sido propuestos pero
principalmente pueden clasificarse en: Algoritmos Genticos, Programacin Evolutiva,
Estrategias Evolutivas, Sistemas Clasificadores y Programacin Gentica. Esta
clasificacin se basa sobre todo en detalles de desarrollo histrico ms que en el hecho
de un funcionamiento realmente diferente, de hecho las bases biolgicas en las que se
apoyan son esencialmente las mismas. Las diferencias entre ellos se centran en los
operadores que se usan en cada caso y en general en la forma de implementar la
seleccin, reproduccin y sustitucin de individuos en una poblacin.
Aunque los detalles de la evolucin no han sido completamente comprendidos, incluso
hoy en da, existen algunos puntos en los que se fundamentan:

La evolucin es un proceso que opera a nivel de cromosomas, y no a nivel de


individuos. Cada individuo es codificado como un conjunto de cromosomas.

La seleccin natural es el mecanismo mediante el cual los individuos mejor


adaptados son los que tienen mayores posibilidades de reproducirse.

El proceso evolutivo tiene lugar en la etapa de la reproduccin. Es en esta etapa


donde se producen la mutacin, que es la causante de que los cromosomas de los

hijos puedan ser diferentes a los de los padres, y el cruce, que combina los
cromosomas de los padres para que los hijos tengan cromosomas diferentes.
De forma breve, pasamos a comentar cada una de los algoritmos mencionados
anteriormente, para que el lector pueda tener una idea de las similitudes y diferencias
entre ellos.
Los Algoritmos Genticos resuelven los problemas generando poblaciones sucesivas a
las que se aplican los operadores de mutacin y cruce. Cada individuo representa una
solucin al problema, y se trata de encontrar al individuo que represente a la mejor
solucin.
La Programacin Gentica funciona igual que la tcnica anterior pero se centra en el
estudio de problemas cuya solucin es un programa. De manera que los individuos de la
poblacin son programas que se acercan ms o menos a realizar una tarea que es la
solucin.
La Programacin Evolutiva es otro enfoque de los algoritmos genticos, en este caso el
estudio se centra en conseguir operadores genticos que imiten lo mejor posible a la
naturaleza, en cada caso, ms que en la relacin de los padres con su descendencia. En
este caso no se utiliza el operador de cruce, tomando la mxima importancia el operador
de mutacin.
Estrategias Evolutivas se centran en el estudio de problemas de optimizacin e incluyen
una visin del aprendizaje en dos niveles: a nivel de genotipo, y a nivel de fenotipo. Y por
ltimo los Sistemas Clasificadores engloban el estudio de problemas en los que la
solucin buscada se corresponde con toda una poblacin.
Para finalizar se muestra un esquema en el que se sitan las tcnicas mencionadas con
respecto a otros procedimientos de bsqueda conocidos.

Ya habiendo visto las redes neuronales y el algoritmo gentico podemos hacer una
comparacin entre ambos. Una red neuronal es el intento de poder realizar una
simulacin computacional del comportamiento de partes del cerebro humano mediante la
rplica en pequea escala de los patrones que ste desempea para la formacin de
resultados a partir de los sucesos percibidos. El cerebro consta de unidades llamadas
neuronas, las cuales estn conectadas entre si formando una red (de ah la denominacin
" red neuronal ")
Concretamente, se trata de poder analizar y reproducir el mecanismo de aprendizaje de
sucesos que poseen los animales ms evolucionados.
La red simula grupos de neuronas, llamados " capas " las cuales estn relacionadas unas
con otras. Los datos se introducen en la primera capa, llamada "capa de entradas" Cada
capa transfiere la informacin a sus vecinas., teniendo un peso o ponderacin para los
valores, lo que va modificando los mismos en su paso a travs de la red

Cuando los datos llegan a la ltima de las capas, llamada " capa de salida " el valor
resultante es tomado como el resultado de la red. La red puede ser entrenada para
diversos usos, entre ellos como mecanismo de optimizacin. En este sentido, se puede
expresar que seran un modelo alternativo competitivo con los algoritmos genticos, si se
las programara para este fin. En rigor de verdades, la literatura sugiere que se podran
hacer modelos mixtos o hbridos en donde se combinen las ventajas de las redes
neuronales y los algoritmos genticos, aunque hay muy poco material disponible en este
campo. Tal vez esto se deba al hecho que los GA y el estudio de las redes forman dos
ramas o escuelas separadas dentro de la inteligencia artificial, por lo que existe una
preferencia en los investigadores en perfeccionar alguno de los dos modelos antes que
tratar de unirlos.
El Algoritmo Gentico Simple
Tambin denominado cannico, se necesita una codificacin o representacin del
problema, que resulte adecuada al mismo. Adems se requiere una funcin de ajuste
adaptacin al problema, la cual asigna un nmero real a cada posible solucin codificada.
Durante la ejecucin del algoritmo, los padres deben ser seleccionados para la
reproduccin, a continuacin dichos padres seleccionados se cruzarn generando dos
hijos, sobre cada uno de los cuales actuar un operador de mutacin. El resultado de la
combinacin de las anteriores funciones ser un conjunto de individuos (posibles
soluciones al problema), los cuales en la evolucin del Algoritmo Gentico formarn parte
de la siguiente poblacin.

Se supone que los individuos (posibles soluciones del problema), pueden representarse
como un conjunto de parmetros, los cuales agrupados forman una ristra de valores (a
menudo referida como cromosoma). Si bien el alfabeto utilizado para representar los
individuos no debe necesariamente estar constituido por el (0, 1), buena parte de la teora
en la que se fundamentan los Algoritmos Genticos utiliza dicho alfabeto. En trminos

biolgicos, el conjunto de parmetros representando un cromosoma particular se


denomina fenotipo. El fenotipo contiene la informacin requerida para construir un
organismo, el cual se refiere como genotipo. Los mismos trminos se utilizan en el campo
de los Algoritmos Genticos. La adaptacin al problema de un individuo depende de la
evaluacin del genotipo. Esta ltima puede inferirse a partir del fenotipo, es decir puede
ser computada a partir del cromosoma, usando la funcin de evaluacin. La funcin de
adaptacin debe ser diseada para cada problema de manera especfica. Dado un
cromosoma particular, la funcin de adaptacin le asigna un nmero real, que se supone
refleja el nivel de adaptacin al problema del individuo representado por el cromosoma.
Durante la fase reproductiva se seleccionan los individuos de la poblacin para cruzarse y
producir descendientes, que constituirn, una vez mutados, la siguiente generacin de
individuos. La seleccin de padres se efecta al azar usando un procedimiento que
favorezca a los individuos mejor adaptados, ya que a cada individuo se le asigna una
probabilidad de ser seleccionado que es proporcional a su funcin de adaptacin. Segn
dicho esquema, los individuos bien adaptados se escogern probablemente varias veces
por generacin, mientras que, los pobremente adaptados al problema, no se escogern
ms que de vez en cuando.
Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando
habitualmente los operadores de cruce y mutacin. Las formas bsicas de dichos
operadores se describen a continuacin.
El operador de cruce, coge dos padres seleccionados y corta sus ristras de cromosomas
en una posicin escogida al azar, para producir dos subristras iniciales y dos subristras
finales. Despus se intercambian las subristras finales, producindose dos nuevos
cromosomas completos. Ambos descendientes heredan genes de cada uno de los
padres. Este operador se conoce como operador de cruce basado en un punto.
Habitualmente el operador de cruce no se aplica a todos los pares de individuos que han
sido seleccionados para emparejarse, sino que se aplica de manera aleatoria,
normalmente con una probabilidad comprendida entre 0.5 y 1.0. En el caso en que el
operador de cruce no se aplique, la descendencia se obtiene simplemente duplicando los
padres.

El operador de mutacin se aplica a cada hijo de manera individual, y consiste en la


alteracin aleatoria (normalmente con probabilidad pequea) de cada gen componente
del cromosoma. La Figura 3 muestra la mutacin del quinto gen del cromosoma. S bien

puede en principio pensarse que el operador de cruce es ms importante que el operador


de mutacin, ya que proporciona una exploracin rpida del espacio de bsqueda, ste
ltimo asegura que ningn punto del espacio de bsqueda tenga probabilidad cero de ser
examinado, y es de capital importancia para asegurar la convergencia de los Algoritmos
Genticos.

Veamos cmo funciona un algoritmo gentico en el siguiente ejemplo:


Vamos a partir de una funcin f(x) muy sencilla:
f(x)=x2
Imagina que deseas encontrar el valor de x que hace que la funcin f(x) alcance su valor
mximo, pero restringiendo a la variable x a tomar valores comprendidos entre 0 y 31. An
ms, a x slo le vamos a permitir tomar valores enteros, es decir: 0,1,2,3,...,30, 31.
Obviamente el mximo se tiene para x = 31, donde f vale 961. No necesitamos saber
algoritmos genticos para resolver este problema, pero su sencillez hace que el algoritmo
sea ms fcil de comprender.
Lo primero que debemos hacer es encontrar una manera de codificar las posibles
soluciones(posibles valores de x). Una manera de hacerlo es con la codificacin binaria.
Con esta codificacin un posible valor de x es (0,1,0,1,1). Cmo se interpreta esto? Muy
sencillo: multiplica la ltima componente (un 1) por 1, la penltima (un 1) por 2, la anterior
(un 0) por 4, la segunda (un 1) por 8 y la primera(un 0) por 16 y a continuacin haz la
suma: 11. Observa que (0,0,0,0,0) equivale a x = 0 y que (1,1,1,1,1) equivale a x = 31.
A cada posible valor de la variable x en representacin binaria le vamos a llamar individuo.
Una coleccin de individuos constituye lo que se denomina poblacin y el nmero de
individuos que la componen es el tamao de la poblacin. Una vez que tenemos
codificada la solucin, debemos escoger un tamao de poblacin. Para este ejemplo
ilustrativo vamos a escoger 6 individuos.
Debemos partir de una poblacin inicial. Una manera de generarla es aleatoriamente:
coge una moneda y lnzala al aire; si sale cara, la primera componente del primer
individuo es un 0 y en caso contrario un 1. Repite el lanzamiento de la moneda y
tendremos la segunda componente del primer individuo (un 0 s sale cara y un 1 s sale

cruz). As hasta 5 veces y obtendrs el primer individuo. Repite ahora la secuencia


anterior para generar los individuos de la poblacin restantes. En total tienes que lanzar 5
* 6 = 30 veces la moneda.
Nuestro siguiente paso es hacer competir a los individuos entre s. Este proceso se
conoce como seleccin. La tabla 1 resume el proceso.
Tabla 1.- SELECCION
(1)

(2)

(3)

(4)

(5)

(0,1,1,0,0)

12

144

(1,0,0,1,0)

18

324

(0,1,1,1,1)

15

225

(1,1,0,0,0)

24

576

(1,1,0,1,0)

26

676

(0,0,0,0,1)

Cada fila en la tabla 1 est asociada a un individuo de la poblacin inicial. El significado


de cada columna de la tabla es el siguiente:
(1) = Nmero que le asignamos al individuo.
(2)= Individuo en codificacin binaria.
(3) = Valor de x.
(4) = Valor de f(x).
Observa que el mejor individuo es el 5 con f = 676. Calcula la media de f y obtendrs
fmed=324.3. En cuanto a la columna (5) ahora te lo explico. Una manera de realizar el
proceso de seleccin es mediante un torneo entre dos. A cada individuo de la poblacin
se le asigna una pareja y entre ellos se establece un torneo: el mejor genera dos copias y
el peor se desecha. La columna (5) indica la pareja asignada a cada individuo, lo cual se
ha realizado aleatoriamente. Existen muchas variantes de este proceso de seleccin,
aunque este mtodo nos vale para ilustrar el ejemplo.
Despus de realizar el proceso de seleccin, la poblacin que tenemos es la mostrada en
la columna (2) de la tabla 2. Observa, por ejemplo, que en el torneo entre el individuo 1 y
el 6 de la poblacin inicial, el primero de ellos ha recibido dos copias, mientras que el
segundo cae en el olvido.

Tabla 2.- CRUCE


(1)

(2)

(3)

(4)

(0,1,1,0,0)

(0,1,1,0,0)

(1,0,0,1,0)

(1,0,0,1,0)

(1,1,0,1,0)

(1,1,0,1,0)

Tras realizar la seleccin, se realiza el cruce. Una manera de hacerlo es mediante el cruce
1X: se forman parejas entre los individuos aleatoriamente de forma similar a la seleccin.
Dados dos individuos pareja se establece un punto de cruce aleatorio, que no es ms que
un nmero aleatorio entre 1 y 4 (la longitud del individuo menos 1). Por ejemplo, en la
pareja 2-3 el punto de cruce es 3, lo que significa que un hijo de la pareja conserva los
tres primeros bits del padre y hereda los dos ltimos de la madre, mientras que el otro hijo
de la pareja conserva los tres primeros bits de la madre y hereda los dos ltimos del
padre. La poblacin resultante se muestra en la columna (2) de la tabla 3.
Tabla 3.- POBLACION TRAS EL CRUCE
(1)

(2)

(3)

(4)

(0,1,0,1,0)

10

100

(1,1,1,0,0)

28

784

(0,1,1,1,0)

14

196

(1,0,0,0,0)

16

256

(1,1,0,1,0)

26

676

(1,0,0,1,0)

18

324

En la columna (3) tienes el valor de x; en la siguiente tienes el valor de f correspondiente.


Fjate en que ahora el valor mximo de f es 784 (para el individuo 2), mientras que antes
de la seleccin y el cruce era de 676. Adems fmed ha subido de 324.3 a 389.3. Qu
quiere decir esto? Simplemente que los individuos despus de la seleccin y el cruce son
mejores que antes de estas transformaciones.

El siguiente paso es volver a realizar la seleccin y el cruce tomando como poblacin


inicial la de la tabla 3. Esta manera de proceder se repite tantas veces como nmero de
iteraciones t fijes. Y cul es el ptimo?. En realidad un algoritmo gentico no te
garantiza la obtencin del ptimo pero, si est bien construido, te proporcionar una
solucin razonablemente buena. Puede que obtengas el ptimo, pero el algoritmo no te
confirma que lo sea. As que qudate con la mejor solucin de la ltima iteracin. Tambin
es buena idea ir guardando la mejor solucin de todas las iteraciones anteriores y al final
quedarte con la mejor solucin de las exploradas.

APLICACIONES

Para crear imgenes digitales GIFs animados, GIFs es un formato muy reducido
consiguiendo indexar los colores, aislando a uno de los 256 colores de su tabla siendo su
profundidad mxima de 8 bits. El formato GIFs puede hacer transparente uno de los
colores indexados en la tabla, lo que permite suprimir fondos y tambin permite enlazar
varias imgenes GIF en una secuencia, lo que se conoce como GIF animado. Se

considera un formato ms extendido en los primeros tiempos de Internet, pero su principal


defecto consiste en que es un formato propietario (CompuServe Inc.), lo que provoco la
aparicin del formato libre png que, adems, comprime mejor que GIF.
El motor de bsqueda de GIFs animados por Internet es giphy.com o Google Imgenes.

Profundidad

Colores

1 bit

4 bit

16

8 bit

256

16 bit

65536

32 bit

4294967296

Aplicaciones para crear GIFs:


GIMP2.- Es un editor gratuito y el ms poderoso para la funcin de editar un GIF animado.
Cinemagraph.- Crea imgenes animadas haciendo que el GIF se perciba que un
elemento de la imagen se mueva mientras que el resto de la foto se mantiene esttica.
Online-Image-Editor.com.- Es un editor online, la mejor herramienta y ms completa
disponible online, en esta pgina se puede cambiar el tamao del GIF, recortarlo, aadir
texto, rotarlo, etc.
Bloggif.- Con esta aplicacin se puede importar un video de 30 MB como mximo para
crear un GIF y con la aplicacin Gifsoup se puede crear el GIF animado a partir de una
URL de YouTube.

Aplicaciones para crear GIFs animados desde un celular:


Gif Creator.- Se puede crear imgenes a partir de las fotografas almacenadas en un
dispositivo de sistema operativo Android o directamente desde la cmara en un tiempo
mxima de 30 segundos y personalizar con 10 filtros diferentes.

Giffer.- Aplicaciones para SO IOS que permite crear sus GIFs animados de todo tipo
(stopmotion, cinemagraphs, text overlays, timelapse, jitter/wiggle gifs, etc.), una vez
creado se puede compartir en simultnea en Facebook, Twitter y Tumblr.
GifBoom.- Comunidad que se dedica a compartir expresiones de forma visual por medio
de las imgenes GIFs y videos creados con la app mvil en SO Android y iOS.
Gifinator.- Desde SO Android toma una fotografa, ajusta su animacin y comparte su
GIF.
GifMill.- App para iOS muy rpido de crear divertidas imgenes animadas y compartir por
correo electrnico, mensajes de texto, Tumblr y Twitter. Adems, permite agregar texto y
filtros diferentes para cada cuadro que compone su animacin.
Gif Me! Camera.- Aplicacin de fotografa para telfonos Android que permite crear GIFs
animados a partir de fotos tomadas en el momento con la cmara del telfono.
5SecondsApp.- Para dispositivos en SO IPhone busca imgenes en formato GIFs o crear
los propios a partir de las capturas de videos del telfono se puede compartir el link de la
imagen subido en el sitio web para obtener un enlace corto (5sgif.me).
Gif Maker.- Aplicacin para cmara de telfonos de SO Android que permite hacer
disparos continuos para un mximo de 25 segundos y agregar un mximo de 50
fotografas para crear GIFs animados.
Moquu.- Aplicacin con una interfaz nica esta aplicacin cuanta con efectos de
animacin, el zoom digital, el ajuste de velocidad, la rejilla de ajuste de objetivos y se
puede incrustar la animacin en blog y sitio web.
Gif Camera.- Aplicacin para iOS para que a travs de la cmara fotogrfica se pueda
tomar la fotografa que no sean ms de 15 frames, con el botn del play deja ver cmo
queda el GIF para compartir en Facebook, Twitter, Tumblr, Email o va SMS.
Timelapse.- Esta aplicacin se dedica a crear videos en formato timelapse y stop motion
y una vez creados exportar a formato GIF para compartir, siendo el mejor open source.
GifRus.- Aplicacin que soporte hasta 40 frames en definicin HD para crear las
animaciones GIFs con posibilidad de descargar efectos que ayuden a la creacin de la
imagen digital.

VENTAJAS Y DESVENTAS
Ventajas
-Admite gamas de menor nmero de colores y esto permite optimizar el tamao del
archivo que contiene la imagen.

-Es un formato idneo para publicar dibujos en la web.


-Cualquier ordenador con software bsico pude leer estos archivos y devolver en la
pantalla una imagen.
-Permite animaciones

Desventajas
-No es recomendable para fotografas de cierta calidad ni originales ya que el color real o
verdadero utiliza una paleta de ms de 256 colores.
-Tienen un tamao determinado y al sobrepasarlo se pierde la calidad (pixeleo).
-Realmente el formato es bastante malo: aunque la compresin no tiene prdidas,
tenemos un problema, y es que slo podemos representar 256 colores. Para que os
hagis una idea, una pantalla normal representa millones de colores. El resultado es que
GIF no es un formato de buena calidad, y de hecho slo se usa para logos simples y para
animaciones (es el nico que las permite).
-Potenciales problemas legales (en algunos pases en otros ya venci la licencia)

CONCLUSIONES

BIBLIOGRAFIA
Tecnologas de la Informacin Imagen Digital Conceptos Bsicos

http://platea.pntic.mec.es/~lgonzale/tic/imagen/conceptos.html
Diseo de materiales multimedia
http://www.ite.educacion.es/formacion/materiales/107/cd/imagen/imagen0105.html
Revista Digital Universitaria Formatos de Imagen Digital
http://www.revista.unam.mx/vol.6/num5/art50/may_art50.pdf
LZW
https://es.wikipedia.org/wiki/LZW
Redes Neuronales: que son y porque estn volviendo
http://www.xataka.com/robotica-e-ia/las-redes-neuronales-que-son-y-por-que-estanvolviendo
Red Neuronal Artificial
https://es.wikipedia.org/wiki/Red_neuronal_artificial
Algoritmo Gentico
https://es.wikipedia.org/wiki/Algoritmo_gen%C3%A9tico
Algoritmo Gentico
http://eddyalfaro.galeon.com/geneticos.html
Gifs: Que son y para que sirven
http://creatic.innova.unia.es/edicionypublicacion/micronarrativas-audiovisuales/gifs
Cmo Hacer un Gif animado?
http://es.ccm.net/faq/11370-como-hacer-un-gif-animado
12 aplicaciones para crear GIFs animados desde tu telfono mvil
http://hipertextual.com/archivo/2015/01/crear-gifs-animados-movil/
Tutorial para Gifs animados de forma simple
https://www.fayerwayer.com/2013/03/tutorial-para-hacer-gifs-animados-de-forma-simple/

También podría gustarte