Look Towards A New Future

miércoles, 28 de julio de 2010

PRUEBA QUE TANTO SABES DE LA TECNOLOGIA MICROSOFT!!!

PON A PRUEBA TUS CONOCIMIENTOS ACERCA DE LAS TECNOLOGIAS DE MICROSOFT.... APRENDE JUGANDO IT PRO...

IT Pro es una aplicacion de facebook en donde demuestras tus habilidades sobre diferentes temas de IT microsoft, en donde puedes leer el tema y posteriormente responder el test de cada uno de estos.

CLICK AQUI PARA ACCEDER:
http://apps.facebook.com/super_it_pro/


:P SALUDOS CORDIALES!!!!!

domingo, 11 de julio de 2010

VISION GENERAL DE LOS ALGORITMOS

Los algoritmos genéticos son un resultado de los avances de la computación y de la genética, pero ¿A que se refieren? ¿Como surgieron? ¿Que ventajas traen?, pues bien, en este articulo se resolveran estas y muchas otras preguntas, mostrando como su nombre lo dice, una visión general de los Algoritmos Genéticos.

Comenzemos con un poco de historia, como sabemos desde tiempos remotos han ocurrido numerosos cambios en la naturaleza, dando como resultado que los individos en el planeta tierra tengan que adaptarse y por lo tanto se encuentren en constante evolución.

La teoria de la evolución es un tema que desde pequeños aprendemos, puede ser causada por una cantidad de mecanismos diferentes que tambien son importantes en los algoritmos genéticos: selección natural, herencia, mutación, migración (flujo genético), sólo por mencionar algunos.



Grandes personajes de la historia han hecho estudios exhaustivos que apoyan el estudio de los algoritmos genéticos, entre los principales precursores se encuentran:


Charles Darwin:
Sustenta que la naturaleza está en constante evolución y que el proceso de cambio es gradual y continuo. Menciona que los organismos que presentan semejanzas están emparentados y que el cambio evolutivo es el resultado del proceso de selección natural.

Gregor Mendel:
Descubrió que los caracteres se heredaban de forma discreta, y que se tomaban del padre o de la madre, dependiendo de su carácter dominante o recesivo.

James Watson y Francis Crick:
Descubrieron que la base molecular de los genes se encuentra en el ácido desoxiribonucleico. Los cromosomas están compuestos por acido desoxiribonucleico y por tanto los genes están en los cromosomas.

Cannon (1932):
Interpreta la evolución natural como un proceso de aprendizaje muy similar al proceso mediante el cual una persona aprende por ensayo y error.

Turing (1950):
Reconoce una conexión entre la evolución y el aprendizaje de una maquina, que experimenta con simulaciones de sistemas genéticos; esto es, modelos computacionales que imitan la evolución biológica.

G.E.P. Box, G.J. Friedman, W.W. Bledsoe y H.J. Bremermann (1962):
Desarrollaron independientemente algoritmos inspirados en la evolución para optimización de funciones y aprendizaje automático, pero sus trabajos generaron poca reacción.

Ingo Rechenberg (1965):
Introdujo una técnica que llamó estrategia evolutiva. En esta técnica no había población; un padre mutaba para producir un descendiente, y se conservaba el mejorlos dos, convirtiéndose en el padre de la siguiente ronda de mutación.

John Henry Holland (1970):
Cosnsiderado el padre de las líneas más prometedoras de la inteligencia artificial, la de los algoritmos genéticos. Estos algoritmos hacen evolucionar una población de individuos sometiéndola a acciones aleatorias semejantes a las que actúan en la evolución biológica (mutaciones y recombinaciones genéticas).

Una vez mencinados los antecedentes, es momeno de deficir el concepto de algoritmos genéticos, a continuación se definira.

ALGORITMOS GENÉTICOS

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. Su característica principal es su eficacia para optimizar casi cualquier problema.

La idea de simular el proceso evolutivo en la computadora para diseñar aplicaciones en, por ejemplo, la ingeniería, la economía, la toma de decisiones financieras, etcétera es la base de la computación evolutiva. Un algoritmo genético trabaja de esa forma, con conjuntos de individuos y proponiendo soluciones distintas.

La teoría matemática de los algoritmos genéticos es muy incipiente porque se trata de un fenómeno muy complejo, al igual que lo son los de la herencia y la selección natural. Para su manejo adecuado, es conveniente conocer una serie de disciplinas como la estadística, la teoría de la información y de la computabilidad, entre otras.

Los algoritmos genéticos y las redes neuronales, paradigmas inspirados ambos en analogías con la naturaleza, se han hecho posibles porque se ha abaratado la computadora. Si hace 15 años se hubiera planteado el paradigma evolutivo, éste hubiera sido prácticamente incosteable. En la medida en que las computadoras sigan evolucionando y se abaraten, este tipo de técnicas se harán aún más atractivas.

Actualmente, a un algoritmo genético aprender le toma segundos o minutos. Con las nuevas máquinas –más rápidas – aprenderá en milésimas de segundo. Y entonces tendremos algoritmos genéticos hasta en el horno de microondas; podrán, también, reconocer la voz de los dueños de la casa para abrirles la puerta. Los algoritmos genéticos podrian incluso permitir que las computadoras sepan quienes son sus dueños.


¿CUANDO SURGIERON LOS ALGORITMOS GENETICOS?

En los 1960, dos investigadores alemanes - Schwefel y Rechenberg - inventaron las estrategias evolutivas, con las que diseñaron elementos de avión. Ellos trabajaron la evolución, pero sin tomar en consideración la parte genética. Simple y sencillamente tomaron en cuenta la herencia y la mutación. Sus algoritmos tuvieron buen desempeño pero, debido a que su trabajo tenía implicaciones militares, se clasificó la tecnología y no se alentó la publicación del tema. Una década después, el estadounidense John Holland se aplicó a la misma idea, pero sí consideró la parte genética. Fue precisamente él quien los bautizó como algoritmos genéticos.

El auge de esta técnica empezó a principios de los 1980 y realmente se reconoció como una cuestión muy útil a principios de los 1990. A partir de entonces ha tenido una explosión fantástica. Según ciertos autores se publican alrededor de 100 artículos diarios sobre el tema. Parece exagerado, pero es el reflejo de la intensa actividad en el área.

FUNCION DE LOS ALGORITMOS GENETICOS

Ejemplos de algoritmos geneticos existen en diversos países del mundo y en México. Sin embargo, es necesario saber en qué casos trabajan y cómo hacer para que siempre sean funcionales. Necesitamos detectar qué problemas hay en este sistema evolutivo para luego tratar de corregirlos. A la gente de computación, le interesa dar con un programa que sea aplicable a la gran mayoría de los problemas.

Los algoritmos genéticos se catalogan dentro de las herramientas de la inteligencia artificial porque el algoritmo aprende. Pero hay que quitarse de la mente el significado antropocéntrico que se tiene de la palabra “aprender”: el de abrir un libro y estudiar. La naturaleza aprende a través de la evolución. Nosotros somos un producto muy acabado de un aprendizaje de muchos millones de años. Así pasa con un algoritmo genético: aprende simulando la evolución. Claro que es una simulación parcial, ya que hay muchos elementos no considerados porque no son necesarios ni útiles en el contexto computacional.

APLICACIONES DE LOS ALGORITMOS GENETICOS

Los algoritmos genéticos han sido aplicados con éxito en infinidad de problemas, actuando como un proceso de cómputo que emula la forma de proceder de la evolución genética y opera sobre una población de individuos que representan las soluciones potenciales a un determinado problema. Los algoritmos genéticos son herramientas para optimizar casi cualquier problema, ya que éstos pueden trabajar con base en la descripción del medio ambiente, lo cual permite resolver muchos problemas de optimización.

Una de las áreas donde se aplican es en el aprendizaje automático. En inteligencia artificial se conocen como sistemas expertos o programas para la resolución de problemas a los que se cuestiona sobre qué hay que hacer y los cuales dan respuestas. Hay ejemplos de sistemas expertos, por ejemplo, en medicina, abogacía, etc. La mayor parte de los sistemas expertos no incorporan todas las reglas ni todo el conocimiento. Queremos que nuevas reglas se vayan descubriendo y una forma de hacerlo es con algoritmos genéticos.

En trabajos recientemente publicados se ha hecho modelación de sistemas económicos y predicciones en la economía. Aunque los sistemas económicos son caóticos -no existen reglas claras para ellos sólo exhiben esa característica caótica temporalmente. Hay segmentos de tiempo donde sí se comportan de manera regular. Por ello, es posible hacer análisis en períodos de estabilidad y lograr predicciones.

Otro de los campos en los que opera esta herramienta es en el reconocimiento de formas, algo difícil y complicado para la computadora. Esta rama conduce a resolver un problema de reconocimiento de rostros, de aplicaciones prácticas de impacto evidente.

En las telecomunicaciones hay un ámbito más sofisticado en el que también son aplicables. Cuando enviamos información de un continente a otro, por ejemplo, utilizamos satélites que funcionan como espejos. Esto es así porque las señales de alta frecuencia atraviesan la ionosfera y hay que reflejarlas artificialmente. Poner un satélite en órbita es muy costoso, por lo que es importante optimizar el uso de los canales de comunicación. Para este efecto es posible intentar la compresión de datos. Esta se puede realizar con los algoritmos genéticos, ya que éstos aprenden la estructura de los mensajes y permiten transmitir más información por el mismo canal. Otro problema es que, en Internet, las imágenes tardan en llegar porque la información no se comprime al máximo. Podríamos usar algoritmos genéticos para comprimirla del lado del transmisor y descomprimirla de lado del receptor.

Otra cuestión que se usa mucho en computación son las redes neuronales que pretenden simular la estructura del cerebro. Es un mecanismo interesante que aprende también, pero hay que entrenarlo. A las redes neuronales pueden entrenarlas los algoritmos genéticos para que aprendan mejor. Así hacemos inteligencia artificial, pero no directamente. Las redes neuronales se usan en el sector financiero, en análisis de auditorías o en análisis de riesgo financiero, por ejemplo. Pero su desempeño es mejor cuando las entrenan los algoritmos genéticos.

DESVENTAJAS DE LOS ALGORITMOS GENETICOS

Cuando los algoritmos genéticos encuentran las soluciones lo hacen muy rápidamente y en problemas muy complicados, pero se parecen a los humanos en que no necesariamente hallan cuál es la mejor. ¿Qué haría un tomador de decisiones humano? Probablemente tomaría la decisión más rápida o aquella que más se aproxima a lo mejor que pudimos haber hecho. Ese es el caso de los algoritmos genéticos; no encuentran siempre la mejor solución ¿cómo sabemos cuál es la mejor solución en un caso inesperado? Generalmente no lo sabemos, pero sí podemos encontrar una opción suficientemente buena. Así sucede con el algoritmo genético: rara vez no encuentra una solución cercana al óptimo.

Otro aspecto que interviene en el funcionamiento de los algoritmos genéticos, es el de los problemas “engañosos”. Hay información en los genes que puede llevar al algoritmo hacia una solución errónea. El algoritmo puede engañarse, es decir, el algoritmo “cree” que va muy bien porque cierta información genética lo lleva hacia un destino equivocado. De ahí la tarea de los especialistas para que esto no pase. En los ejemplos ya mencionados no hay este tipo de engaño. Son problemas muy específicos aquellos en donde se presenta esta situación.

Existen muchas variaciones de algoritmos genéticos. Por ejemplo, con el elitismo hacemos que el mejor individuo de toda la progenie nunca muera. En algoritmos genéticos esto se puede hacer; en la naturaleza no. Es también posible conservar al mejor individuo y hacer cruzamientos. Esto es, se toma un padre y se hace que tenga miles de descendientes. De manera normal, eso no se lleva a cabo porque típicamente se toman parejas. Pero puede encontrarse a un individuo que esparza su herencia genética en toda la población. El que haya muchas variantes es lo que hace interesante el estudio de los algoritmos genéticos.



* SE VALE COMENTAR \\

Auto adaptable walking robot with genetic algorithm