martes, 10 de noviembre de 2015

Clase XII (Virtual) Inteligencia Artificial 05-11-015

 CONSIGNA 

INVESTIGAR SOBRE INTELIGENCIA ARTIFICIAL 
A) DEFICINION
B) COMPONENTES O SUBSISTEMAS QUE LA COMPONEN
C) DESCRIBRI QUE SON LAS REDES NEURONALES
C) LEGUAJES UTILIZADOS
D) CASOS DONDE SE APLIQUE LA I.A.

Inteligencia Artificial
Concepto

La Inteligencia Artificial (I.A, por simplificar) es una rama de la Informática que trata de enfocar el concepto de Inteligencia en las máquinas. Según el Diccionario de la Real Academia Española, Inteligencia es: “Potencia Intelectual, facultad de entender, de conocer, de entender o comprender.” La I.A persigue dos clases de metas: Metas Científicas, al saber como funciona el Cerebro Humano y de Ingeniería, ya que persigue el objetivo de crear sistemas Inteligentes. Algunas personas creen que las placas de silicio (Circuitos) no podrán pensar jamás y que la materia cerebral esta diseñada explícitamente para ello. Otros creen que esto será posible algún día. Sorprendentemente los científicos han encontrado seres unicelulares que pueden ser explicados como máquinas, como el Bacteriógrafo E6, que inyecta ADN vírico en una célula y ensambla los virus resultantes, este comportamiento es igual al de una máquina, por lo que se ha estudiado su ADN y se ha descubierto que tiene 1 830 137 pares de bases que serían aproximadamente 3,6 x 106 bits (Aproximadamente 360 Kb). Hay 4 conceptos variados sobre I.A:

Sistemas que piensan como humanos: Sistemas con procesos de pensamiento humano.

Sistemas que actúen como humanos: Sistemas que al realizar trabajos requieran inteligencia.

Sistemas que piensen racionalmente: Se enfoca en el estudio de las facultades mentales.

Sistemas que actúen racionalmente: Se enfoca en el diseño de agentes inteligentes.


Aplicaciones

Aplicaciones de la I.A: Existen varias y son:
Tratamiento de Lenguajes Naturales: Capacidad de Traducción, Órdenes a un Sistema Operativo, Conversación Hombre-Máquina, etc.

Sistemas Expertos: Sistemas que se les implementa experiencia para conseguir deducciones cercanas a la realidad.

Robótica: Navegación de Robots Móviles, Control de Brazos móviles, ensamblaje de piezas, etc.

Problemas de Percepción: Visión y Habla, reconocimiento de voz, obtención de fallos por medio de la visión, diagnósticos médicos, etc.

Aprendizaje: Modelización de conductas para su implante en computadoras



Industria y Agricultura: Los Robots han sido usados en entornos peligrosos para el hombre y en muchas ocasiones son más rentables que trabajadores humanos. En la Agricultura, los Robots, están siendo usados para sustituir las grandes máquinas usadas para excavar, cosechar, etc. Por ahora son prototipos, pero pronto remplazarán a los humanos en estas tareas.

Transporte: Los robots han servido mucho aquí: Desde helicópteros autónomos hasta sillas de ruedas automáticas, e incluso portadores de carga que superan a humanos especializados. Incluso algunos ayudan transportando cosas en los hospitales, como el Robot Helpmate.

Entornos Peligrosos: Los Robots ayudaron en la limpieza de lugares de accidentes nucleares como Chernobyl, Three Mile Island. Incluso estuvieron en la búsqueda y limpieza durante el colapso del World Trade Center, ingresando a entornos muy peligrosos, además hay otros que desactivan bombas o limpian campos minados.

Exploración: Los Robots han explorado lugares inaccesibles para la gente, como Marte y los Volcanes. Incluso existen los Drones, vehículos aéreos autónomos usados para fines militares.

Salud: Los Robots son usados para ayudar en operaciones de alto riesgo, también sirven de ayuda a los ancianos como andadores robóticos o juguetes que recuerdan cuando tomar la medicación.

Servicios Personales: Algunos robots pueden prestar servicio en el hogar, como aspirar el hogar, cortar el césped e incluso remplazar los quioscos por quioscos robóticos.

Entretenimiento: Los robots han empezado a conquistar la industria de los juguetes, por ejemplo el robot-perro Sony AIBO; está siendo usado para estudios de I.A en todo el mundo, siendo a la vez un juguete. En 1995 se inició el torneo de fútbol de robots autónomos Robocup, cuyo objetivo es lograr que robots autónomos ganen un partido de fútbol. Esto está provocando una investigación más eficiente de la I.A, como a su vez darle algo de animación al campo.

Aumento Humano: Se han creado máquinas que puede transportar gente, además se investiga como aumentar la fuerza de las personas usando partes robóticas. Hay además proyectos de Robots que se asemejan al ser humano, aunque en forma muy superficial. Estos Robot están en venta por algunas compañías en Japón.



Lenguajes

Lenguajes Formales: Son lenguajes en los que están muy bien definidos lo que se puede y no puede decir. Sus definiciones son muy estrictas, a estos lenguajes pertenecen los Lenguajes de Programación (ASM, C++, Basic, Java, etc).

Lenguajes Naturales: Son lenguajes que, al contrario de los formales tienen una gramática más flexible y se pueden añadir nuevas palabras. A estos lenguajes pertenecen los lenguajes del mundo (Inglés, Danés, Español, etc).


Redes Neuronales

En biología, las neuronas tienen un cuerpo circular y una serie de ramificaciones: El axón y las dendritas. El axón transporta la señal de salida otra célula y las dendritas permiten que la información llegue a la neurona. Las conexiones intermedias se llaman Sinapsis, si la neurona pasa el umbral impuesto por la sinapsis, se dispara, caso contrario no hace nada. Esto la asemeja a dispositivos digitales, siendo esta la base de la Redes Neuronales, que buscan imitar a la neurona en términos computacionales. Se hace esto ya que se considera que la neurona es la base de la capacidad de aprendizaje. No obstante la emulación de la neurona no es perfecta, a la fecha se investigan algunas cualidades importantes como la Computación Distribuida para tolerar Ruido (Distorsión) en la entrada y para el aprendizaje. Cada conexión Neuronal computacional posee un peso numérico que limita la fuerza con la que el impulso sale de la neurona, de no ser así la información crecería demasiado con resultados imprevisibles. Las Redes Neuronales reconocen solo dos estados: 0 (No hay impulso) y 1 (Si lo hay), esto las asemeja a las compuertas lógicas de cualquier tipo: AND, XOR, OR, etc. (Para ver las Compuertas Lógicas más comunes,


lunes, 9 de noviembre de 2015

Clase XI (Virtual) Metodologia Rup , Scrum 29-10-015

Consignas

A) INVESTIGUE SOBRE METODOLOGIAS DE DESARROLLO DE SOFTWARE
HAGA UNA MATRIZ COMPARATIVA , ENTRE TRES METODOLOGIAS : RUP, SCRUM, OTRA A ELECCION.
LOS ITEMS A COMPARAR
- ETAPAS Y ACTIVIDADES 
- DURACION
- PARA QUE CASOS SE APLICA-
- VENTAJAS
-DESVENTAJAS


Metodologia XP
Ventajas
·         Programación organizada. 
·         Menor taza de errores. 
·         Satisfacción del programador. 
·         Solución de errores de programas 
·         Versiones nuevas 
·         Implementa una forma de trabajo donde  se adapte fácilmente a las circunstancias    

Desventajas
·         Es recomendable emplearlo solo en proyectos a corto plazo
·         Altas comisiones en caso de fallar
·         Imposible prever todo antes de programar
·         Demasiado costoso e innecesario    


Etapas


Fases de un proyecto en eXtreme Programming


Duracion
La fase de producción requiere de pruebas adicionales y revisiones de rendimiento antes de que el sistema sea trasladado al entorno del cliente. Al mismo tiempo, se deben tomar decisiones sobre la inclusión de nuevas características a la versión actual, debido a cambios durante esta fase. Es posible que se rebaje el tiempo que toma cada iteración, de tres a una semana. Las ideas que han sido propuestas y las sugerencias son documentadas para su posterior implementación (por ejemplo, durante la fase de mantenimiento).

Mantenimiento

Mientras la primera versión se encuentra en producción, el proyecto XP debe mantener el sistema en funcionamiento al mismo tiempo que desarrolla nuevas iteraciones. Para realizar esto se requiere de tareas de soporte para el cliente. De esta forma, la velocidad de desarrollo puede bajar después de la puesta del sistema en producción. La fase de mantenimiento puede requerir nuevo personal dentro del equipo y cambios en su estructura.

Muerte del Proyecto

Es cuando el cliente no tiene más historias para ser incluidas en el sistema. Esto requiere que se satisfagan las necesidades del cliente en otros aspectos como rendimiento y confiabilidad del sistema. Se genera la documentación final del sistema y no se realizan más cambios en la arquitectura. La muerte del proyecto también ocurre cuando el sistema no genera los beneficios esperados por el cliente o cuando no hay presupuesto para mantenerlo.

Ciclos en eXtreme Programming



Metodologia RUP
Ventajas
·         Programación organizada. 
·         Menor taza de errores. 
·         Satisfacción del programador. 
·         Solución de errores de programas 
·         Versiones nuevas 
·         Implementa una forma de trabajo donde  se adapte fácilmente a las circunstancias    

·         Es recomendable emplearlo solo en proyectos a corto plazo
·         Altas comisiones en caso de fallar
·         Imposible prever todo antes de programar
·         Demasiado costoso e innecesario    

Desventajas

·         Es recomendable emplearlo solo en proyectos a corto plazo.
·         Altas comisiones en caso de fallar.
·         Tal vez sea necesario complementarlo con otras metodolog¨ªas agiles como por ejemplo
·         XP

Tiempo


Etapas y Actividad








Metodologia  SCUM
Ventajas
·         El cliente puede comenzar a utilizar el producto rápidamente.
·         El cliente puede decidir los nuevos objetivos a realizar.
·         Se agila el proceso, porque se divide el problema en pequeñas tareas.
·         Menos probabilidad de que se den sorpresas o desarrollos inesperados porque el cliente va viendo poco a poco lo que se está desarrollando.

Desventajas
·         Existe la tendencia que si se deja una tarea sin terminar y que por las exigencias del Dueño del Producto se deban realizar otras nuevas. Estas tareas no terminadas puedan obstaculizar la planeación de nuevas sprints y se deba volver al problema original.
·
·         Alto nivel de stress de los miembros del equipo, el desgaste puede ser excesivo y estresante lo que puede disminuir el rendimiento.
·         La necesidad de contar con equipos multidisciplinarios puede ser un problema, porque cada integrante del equipo debe estar en capacidad de resolver cualquier tarea y no siempre se cuenta con este perfil en la empresa.
·         El equipo puede estar tentado de tomar el camino más corto para cumplir con un sprint,
·         que no necesariamente puede ser el de mejor calidad en el desarrollo del producto..
Duracion
·         En  la metodologia Scrum a cada iteración se le llama Sprint. Un Sprint es un periodo de corta duración (entre 2 y 4 semanas, el equipo decide) que debe finalizar con un prototipo operativo. Lo que se va a implementar en el Sprint, la funcionalidad del prototipo, proviene de la Pila del Producto (Product Backlog), que contiene un conjunto de items, normalmente, requisitos funcionales o historias de usuario.

Etapas
En Scrum existen tres actores o roles principales:
§  El Dueño del Producto (Product Owner), representa a los inversionistas o las personas que requieren el software.
§  El Director Scrum (Scrum Master), es el facilitador del equipo, supervisa al equipo  y verifica que se lleven a cabo las reuniones y se haga uso de los artefactos. Ayuda a que el proyecto tenga éxito. Elimina los problemas e impedimentos que se pudieran presentar. Ayuda a los miembros del equipo a tomar decisiones responsables y los asesora en todas las maneras posibles para que alcancen sus objetivos.
§  Los miembros del equipo (Team Members), son los que desarrollan el software, poseen las capacidades técnicas para fabricar el producto.

 Actividades:
§  Planeación del Sprint (Scrum Planning), con la ayuda del Product Owner y el Scrum Master y el equipo, se compromete con las actividades que se deben realizar de la Pila del Producto. Es decir se seleccionan actividades prioritarias y relacionadas y con la restricción del tiempo existente, para que estas formen parte de la siguiente iteración (Sprint).
§  Reunión Diario de Scrum (Daily Scrum), esta actividad se lleva a cabo todos los días y debe durar quince minutos o menos. Cada miembro del equipo debe comunicar al resto del equipo y al Scrum Master, tres ítems indicados en la Tabla de Tareas: lo que se realizo, lo que se va realizar el día de hoy, y si existe algún impedimento para llevar a cabo el trabajo. Cada tarea debe evolucionar desde  Por hacer (To Do), En Progreso (In Progress), Realizadas (Done). Al finalizar el sprint todas las tareas deben estar realizadas. Esta reunión es muy importante porque aquí los miembros comparten información, para determinar la mejor manera de cumplir sus tareas y poder terminar con las metas del Sprint. Se manifiestan los riesgos encontrados y es útil porque permite que los miembros del equipo sean más eficaces.
Durante esta reunión el Scrum Master debe determinar los problemas e identificar si estos se pudieran convertir en un impedimento para completar el proyecto.
§  Revision del Sprint (Sprint Review). Al final del sprint se muestra a los clientes y al Dueño del Producto lo que ha terminado el equipo. Es decir el Producto Terminado del Sprint- Los clientes proveen del feedback necesario y pueden terminar o no  la necesidad de otro Sprint para mejorar el producto. Esto ayuda a crear el software con los requerimientos exactos del cliente y permite que el equipo sea más eficaz.
§  Retrospectiva del Sprint (Sprint Retrospective). Esta reunión también se lleva al final del Sprint, y a diferencia de la Revisión del Sprint, sirve para mejorar al equipo. Se evalúan los aciertos y desaciertos del equipo en la realización de sus tareas. Y se proveen técnicas para reducir los errores, como pruebas de testing, ayuda de logística. Esto empodera al equipo para que sea exitoso, permitiendo que mejoren en el siguiente Sprint.

Duración:

En Scrum a cada iteración se le llama Sprint. Un Sprint es un periodo de corta duración (entre 2 y 4 semanas, el equipo decide) que debe finalizar con un prototipo operativo. Lo que se va a implementar en el Sprint, la funcionalidad del prototipo, proviene de la Pila del Producto (Product Backlog), que contiene un conjunto de items, normalmente, requisitos funcionales o historias de usuario.

¿Cuándo aplica su uso?
• Cuando hay intervención del cliente.
• Cuando el alcance cambia regularmente durante el proyecto.
• Cuando se requieren entregas regulares.
• Cuando el producto requiere ser implementado de inmediato.

• Entregas incrementales.