viernes, 7 de diciembre de 2012

Mejora del Proyecto F


Al agregar elementos a la interfaz ya en ejecución se presenta esta excepcion 



La sincronización surge debido a la necesidad de evitar que dos o más threads traten de acceder 
a los mismos recursos al mismo tiempo. Por ejemplo si un  thread tratara de escribir en un 
fichero y otro thread estuviera al mismo tiempo tratando de borrar dicho fichero, se produciría 
una situación no deseada. También habría que sincronizar hilos cuando un thread debe esperar a 
que estén preparados los datos que le debe suministrar otro thread. Para solucionar estos tipos 
de problemas es importante poder sincronizar los distintos threads. 
Las secciones de código de un programa que acceden a un mismo recurso (un mismo 
objeto de una clase, un fichero del disco, etc.) desde dos threads distintos se denominan 
secciones críticas. Para sincronizar dos o más  threads, hay que utilizar el modificador 
synchronized en aquellos métodos del objeto o recurso con los que puedan producirse 
situaciones conflictivas. De esta forma Java bloquea, asocia un bloqueo o  lock, el recurso 
sincronizado. Por ejemplo: 
public synchronized void metodoSincronizado() { 
   ...// código de la sección critica 
}
La sincronización previene las interferencias solamente sobre un tipo de recurso: la 
memoria reservada para un objeto. Cuando se prevea que unas determinadas variables de una 
clase pueden tener problemas de sincronización, se deberán declarar como  private o 
protected. Así solamente serán accesibles a través  de métodos de la clase, los cuales 
deberán estar sincronizados. Es muy importante tener en cuenta que si se sincronizan algunos 
métodos de un objeto pero otros no, el programa puede que no funcione correctamente. La 
razón es que los métodos no sincronizados pueden acceder libremente a las variables miembro 
ignorando el bloqueo del objeto, sólo los métodos sincronizados comprueban si un objeto está 
bloqueado.  


Referencias
REF1


REF2

Multihilo en Java
Raúl Herrero Pascual
Rubén Montero Diez


Programación Orientada a Objetos
Trabajo Teórico
Mayo, 2004







lunes, 26 de noviembre de 2012

Proyecto Final Entregable


 Descripción del Proyecto



El Adaptacuario se define como un ambiente/ecosistema donde existen diferentes especies/agentes los cuales deberán reproducir las acciones de los elementos que representan por ejemplo la lista de los agentes involucrados:


Elemento: la comida del pez y de donde se heredan los demás elementos para poder representarse en la interfaz gráfica.
Pez: este sera el depredador primario del acuario pero el mas esencial ya que si no esta ningún elemento de esta especie el juego terminara muy probablemente en cuanto a los siguientes elementos en la cadena alimenticia les de hambre y estos no tendrán alimento alguno y morirán
Pez malo: sera el depredador del pez así como presa del monstruo.
Pez mama: se encargara de proveer de peces al acuario, no tendrá la necesidad de comer y solo sera presa del monstruo
Monster: depredador principal de esta pequeña cadena alimenticia, aparecerá en el juego desde que inicie la partida pero su necesidad de hambre sera mas prolongada que la de los demás elementos
Recolector: aun no se define bien la función de este elemento, aun así se contempla que sea el encargado de las ganancias del acuario... cada elemento dará una ganancia al jugador el cual tendrá que recojer con este componente se espera que sean monedas y así se definirá la mejor puntuación el jugador que haya recolectado la mayor cantidad de monedas.


Corridas del acuario BETA :3





Código Completo 26/11/12

Bosquejo de  solución

La solución planteada en este problema se define en agentes inteligentes mediante Acuerdos y Cooperación entre agentes la función principal de los elementos es alimentarse ya que es una utilidad propia si no realizaran esto los agentes morirán y con esto se comprende que su principal objetivo o meta es su propio beneficio, y también llegar a cooperar en el caso de amenaza por parte del depredador principal, y poder combatir contra el en equipo trabajando en conjunto para lograr un común objetivo.

Diagrama UML


Diagrama de Gantt 


Lista Actualizada de los Recursos y Herramientas 

(En los links se podra encontrar el repositorio o el paquete a descargar.)

Los Recursos utilizados fueron Umbrello para los diagramas UML
Editor de Textos Emacs 
Lenguaje Java  modulos mas importantes:
Se intento Implementar JADE  Java Agent Development Framework pero no se concreto.

Versión del Sistema 

 modulos mas importantes:


/**
     *Metodo run maneja el hilo del juego para los metodos de dibujar y mover
     */
    public void run()
    {
 int t=0;
 while (true) 
     {
     Iterator<elemento> i = this.elementos.iterator();
     if(i.next().getvida()==true)
     {
     while (i.hasNext()) 
  {
      elemento e_e = i.next();
      e_e.mueve();
      Iterator<elemento> jt = this.elementos.iterator();
      while (jt.hasNext()) {
   e_e.interactua(jt.next());
      }
      System.out.println(e_e);
      /*
      Timer timer = new Timer (4000, new ActionListener () 
   { 
       public void actionPerformed(ActionEvent e) 
       { 
    e_e.comer(e_e.interactua(jt.next()));
    System.out.println(e);
       } 
   });
      
   timer.start();*/
  }
     this.repaint();
      }
     try 
  {
      Thread.sleep(250);
  } catch (Exception e) { }
     }
    }



Que es lo que falta ?

Implementar el método comer, y cooperar 

Que es lo que se piensa hacer?

Investigar un poco mas acerca de  threads y la implementación de ellos 

Como se han resuelto los problemas?

Se ah intentado implementar jade sin éxito y se decidió ejecutar las funcionalidades de un agente sin necesidad de la plataforma, también se logro implementar las interacciones en el mismo hilo de actualizar.
public elemento interactua(elemento C)//comida
    {                      
 if(C.equals (this))
     {
  //para que no se compare con si mismo
     }
 if (this.distancia(C) < C.getCerca())
     {
  //mueve(hacia C)
  System.out.println(this + " y " + C  + " estamos cerca.");
     }                      
 // estoy cerca de comida *-*                              
 return C;                         
    }
    public void comer(elemento C)
    {
 
 this.mueve();
 if(C.gety()>this.y ||C.getx() >this.x )
     {
  this.y += 1.0 - this.altura;
  this.x += 1.0-this.ancho;
     }
 else{
     if(C.gety()<this.y && C.getx() < this.x) 
  {
      this.y -= 1.0 - this.altura;
      this.x -= 1.0 - this.ancho;
  }
 }
 if(this.x == C.getx() &&this.y == C.gety())
     {
  C.setvida(false);
     }
    }


Video


Conclusiones 

En este proyecto se utilizaron varias técnicas vistas en clase de Programación de Sistemas Adaptativos las cuales podríamos implementar en ciertos casos donde se requiere simular un ambiente inteligente o crearlos de tal forma que se encuentren diversos tipos de resultados y reacciones e implementar auto-ajustes de parámetros algoritmos heúristicos, clustering, lógica difusa , agentes inteligentes así como redes neuronales.

Referencias

Insaquarium
Flying Bear Entertainment

PopCap Games
Version 1.1 (January 23, 2008)
Platform(s) Java, Palm OS, Windows Mobile, Windows
Link: Insaquarium



Herramientas para la publicacion: 
drive.google.com/    pastebin.com     Umbrello Modelador UML   HTML Encoder





Entrega Proyecto Clase

Presentacion





domingo, 18 de noviembre de 2012

Proyecto Final


 Descripción del Proyecto


Se elijió este proyecto ya que en el se puedo implementar algunas de las técnicas vistas en clase,
el sistema se describe como un espacio de elementos los cuales tienen que convivir en el mismo ambiente, estarán diferentes componentes dentro del acuario, estos serán los peces como primer elemento en el acuario, dependiendo de la cantidad de peces que se elijan sera la cantidad asignada de pirañas(peces malos), así como de otros elementos.
En el juego se contempla que se pueda reproducir una especie de cadena alimenticia de tal forma que los peces serán comida de los peces malos y los peces malos serán comida de el máximo depredador del juego (este sera un monstruo, o dos), así como a los peces se les dará cierto alimento distribuido por el jugador este tendrá la tarea de mantener su acuario “vivo” que le quede al menos un pez de cualquier especie dentro del acuario pero debe de contemplar que el solo puede alimentar al pez para que este sea devorado por la piraña y esta a su vez por el monstruo, en este caso se colocara un hilo en el cual se definirá que cada cierto tiempo a la criatura le dará hambre, de este modo el elemento tendrá que detectar que otro elemento (presa) esta cerca de el para así poder alimentarse.

Se contemplan las siguientes especies:

  • Elemento: la comida del pez
  • Pez: este sera el componente principal del acuario ya que si no esta ningún elemento de esta especie el juego terminara muy probable mente en cuanto a los siguientes elementos les de hambre y estos no tendrán alimento alguno y morirán
  • Pez malo: sera el depredador del pez así como presa del monstruo.
  • Pez mama: se encargara de proveer de peces al acuario, no tendrá la necesidad de comer y solo sera presa del monstruo
  • Monster: depredador principal de esta pequeña cadena alimenticia, aparecerá en el juego desde que inicie la partida pero su necesidad de habré sera mas extendida que la de los demás elementos
  • Recolector: aun no se define bien la función de este elemento, aun así se contempla que sea el encargado de las ganancias del acuario... cada elemento dará una ganancia al jugador el cual tendrá que recojer con este componente se espera que sean monedas y así se definrá la mejor puntuación el jugador que haya recolectado la mayor cantidad de monedas.

El juego esta basado en un juego llamado Insaquarium de hp games de mi computador es realmente adictivo y lo decidí replicar para un proyecto inconcluso, por el corto tiempo que se tuvo para este proyecto decidí continuarlo y realizar las partes adaptativas del mismo, las cuales eran que pudiese detectar cual es su alimento mas cercano y que una vez que se alimentara se eliminara el elemento que había sido la víctima de este modo desapareciera de la lista de elementos en la que los otros depredadores se basaban para poder comer y también hacer la estrategia de cual seria la dinámica de juego cual hiba a ser la ganancia o ganador en el juego.


Bosquejo de  solución

Se estableció que la forma en la que se desarrollara el ecosistema sera mediante multiagentes ya que los peces tendrán que detectar cual es su comida mas cercana también sus depredadores y por ultimo el enemigo principal tendrán que establecerse mediante el método interactúa() al ser todos elementos se facilitara la búsqueda al enemigo principal y para las demás criaturas se establecerá que solo puedan detectar un elemento inferior osea su comida para poder utilizar el método comer(), al ser un agente inteligente cumplira con las siguientes capacidades:
 Reacción
▪ Percibe el ambiente y responde a los cambios.
-El elemento estará en constante movimiento y detectara los elementos presas que tenga cerca y su actual posición le ayudara a percibir la cercanía de otro elemento
 Pro actividad
▪ Toma la iniciativa.
-Cuando tenga un elemento cerca este se acercara a el para poder comer y eliminarlo de la lista.
 Habilidad social
▪ Interactúa con otros agentes.
-Este detectara tanto a sus presas como sus depredadores

Utilidad
Valor numérico que indica qué tan bueno es : Esto se definirá mediante su tamaño las monedas que proveerá al jugador
 Entre más, mejor: entre mas grande sea este mayor sera el valor de su moneda
 El agente buscará maximizarla.: de otro modo tendrá consecuencias(setVida= false;)
 Parecido al dinero: sera el ganador cuando mas monedas sean recolectadas antes de el jugador se quede sin elementos en su acuario.


Estos agentes serán puramente reactivos ya que solamente Reaccionan ante percepciones

Se asume que los agentes son egoístas. Buscarán incrementar su propia utilidad.
Existe un conjunto de estados o resultados. Algunos de éstos son preferidos por el agente.
Las funciones de utilidad de los agentes determinan sus preferencias.
La preferencia de los agentes es comer lo mas cercano que se encuentre si por alguna razón alguien elimino el elemento de la lista (se lo comió primero) este tendrá que buscar otro y su utilidad tendrá una disminución que al fin y al cabo su tamaño aumentara pero con mayor esfuerzo o de lo contrario si no llegase a encontrar otra presa este morirá.


Diagrama  UML


 Diagrama de Gant  


  • Qué se ha hecho?
Se establecieron los elementos del acuario su ganancia (comida) que se convertirá en un aumento de tamaño después de ciertos bocados... también se estableció la ganancia que se dará al jugador y a otros elementos como a los depredadores del mismo, por ejemplo no sera lo mismo que un monstruo se coma un pez de tamaño uno a un pez de tamaño 3, también se modificó el método interactúa el cual percibe a todos los elementos dentro del acuario y de acuerdo a la información que recibe sera la comida del depredador
También se ha definido como se interactúa con el jugador, este solo dará clic dentro de la pantalla y se creara un elemento nuevo se define como la comida para peces.
  • ¿Qué falta?
Mejorar la interfaz, el hilo para que puedan sentir hambre y otro para que dejen la ganancia (están en proceso).
  • ¿Qué problemas se han presentado y cómo los has resuelto / piensas resolverlos?
Problemas se presentaron muchos por lo cual decidí tratar de expresarlo graficamente para poder mejorar el entendimiento de la estrategia de juego, hasta el momento esto es lo que se tiene de la interfaz y estrategia.
El tener el mismo tipo de elemento presa dificulta la interacción con los depredadores:
Identificar el elemento sobrescribiendo el método padre de comer ya que no todos podrán comer el mismo tipo de alimento/elemento debido a esto también se tendrá que modificar el método interactúa.
Se definieron cuantos elementos se utilizarían de acuerdo a la cantidad de peces que se elegirían: 




Lista actualizada de Recursos y Herramientas

Herramientas de Programación
Se utilizo el Lenguaje de Programación Java 
Editor de textos Emacs

Recursos vistos en clase e Investigaciones de casos

De nici on de agente en IA

Un agente es un sistema computacional capaz de actuar de manera autónoma para satisfacer sus objetivos y metas, mientras se encuentra situado persistente mente en su medio ambiente.
Wooldridge y Jennings (1995); Russell y Norvig (2003)



Reactividad: Capacidad de percibir el medio ambiente y responder a tiempo a los cambios en el, a trav es de acciones.
Iniciativa: Capacidad de exhibir un comporta miento orientado por sus metas, tomando la iniciativa para satisfacer sus objetivos de diseño (pro-activeness).
Sociabilidad: Capacidad de interaccionar con otros agentes, posible mente tan complejos como los seres humanos, con miras a la satisfacci on de sus objetivos.
Comportamiento orientado por sus metas y capacidad de seleccionar que meta va a procesar a cada instante.
Activo en un per odo relativa mente mayor al necesario para satisfacer sus metas.
Es lo suficiente mente robusto como para seguir siendo viable a pesar de los cambios en el ambiente.
Interacción  con su ambiente en la modalidad de procesamiento de informaci on.
Variedad de respuestas, incluyendo movimientos de adaptaci on  fluidos; y su atenci on a los est mulos es selectiva.
Ninguna de sus funciones, acciones o decisiones, est a totalmente gobernada por un agente externo.
No necesita ser programado nuevamente por un agente externo.
Ser autónomo depende no s olo de la habilidad para seleccionar metas u objetivos de entre un conjunto de ellos, ni de la habilidad de formularse nuevas metas, sino de tener el tipo adecuado de metas.
Los agentes arti ciales son usualmente diseñados para llevar a cabo tareas por nosotros, de forma que debemos comunicarles que es lo que esperamos que hagan.
Las metas y las funciones de utilidad son dos maneras de indicarle a un agente lo que hacer, sin decirle c omo hacerlo

Por ambiente, entendemos el espacio donde un agente, o un grupo de ellos, se encuentra situado.


Si el ambiente no cambia con el paso del tiempo, pero la evaluaci on de las acciones del agente si lo hace, se dice que el ambiente es semi-din amico.

Los ambientes din amicos tienen dos consecuencias:

Un agente debe percibir continuamente, porque a un si no ha ejecutado ninguna acci on entre los tiempos t0 y t1, el agente no puede asumir que el estado del ambiente sea el mismo en t0 que en t1;

Otros procesos en el ambiente pueden interferir con las acciones del agente, incluyendo otros agentes.
Los agentes reactivos, o reflex, seleccionan sus acciones basados en su percepci on actual del ambiente, ignorando el resto de su historia perceptual.

 Un agente con estado interno interactúa con su ambiente como se muestra

Una utilidad es un valor num erico que denota la bondad de un estado del ambiente.
Impl citamente, un agente tiene la \intenci on" de alcanzar aquellos estados que maximizan su utilidad a largo termino.
La especi caci on de una tarea en este enfoque corresponde simplemente a una función utilidad 
u : E-> |R  la cual asocia valores reales a cada estado del ambiente.

Acción Social
Una acci on social [Castelfranchi, 1998] es aquella ejecutada por un agente al asumir, en el marco de una situación de interacción, que los otros participantes en la interacción también son agentes.

Una acción dirigida hac a otro agente, no es necesaria mente una social. Una acción que no est a dirigida hacia ningún agente, puede ser social. 

Son las metas, y no las diferencias de comporta miento, las que determinan si una acción es social o no.

Interferencias
Las interferencias son situaciones donde el efecto de una acción de un agente es relevante para las metas de otro agente.

Las negativas se dan cuando una acci on amenaza o compromete el cumplimiento de las metas de otros agentes.

Las positivas se dan cuando la acci on favorece el cumplimiento de las metas de otros agentes.

Dependencia
La dependencia se de ne como un caso de interferencia fuerte, donde un agente no puede satisfacer sus metas porque necesita una acci ón o recurso controlados por otro agente.

Se de ne en t erminos de habilidades y recursos.

Es evidente que las situaciones de interacci on cooperativas pueden verse como interferencias positivas, mientras que las situaciones antagónicas pueden verse como interferencias negativas.

Utilidades

Juegos de Suma Cero
Son aquellos en los cuales para cualquier estado alcanzado, las utilidades de los dos agentes suman cero. Formalmente: 



Todo encuentro de suma cero es estrictamente competitivo.
Son el caso m as viciado de interacci on, donde no hay posibilidad de comporta miento cooperativo.
Si un agente permite que el otro agente tenga utilidad positiva, el tendrá utilidad negativa y estar a peor que antes de llevar a cabo la interacción.

Versión del sistema AdaptAcuario



/**
     *Metodo interactua compara distancias entre objetos distantes e identifica la cercania el uno al otro
     *@param C objeto de tipo elemento 
     *@return C regresa el elemento para poder compararlo en el metodo comer
     *@see comer
     */
    public elemento interactua(elemento C)//comida
    {                      
 if(C.equals (this))
     {
     }
 if (this.distancia(C) < C.getCerca())
     {
  System.out.println(this + " y " + C  + " estamos cerca :v .");
     }                      
 // estoy cerca de comida *-*                              
 return C;                         
    }
    /**
     *Metodo distancia asigna un valor double para identificar la distancia de un objeto con respecto a otro 
     *@param amigo objeto de  tipo elemento
     *@return regresa un valor matematico para identificar coordenadas
     */

    public double distancia(elemento amigo)
    {       
 return Math.sqrt(Math.pow((amigo.getx()- this.x), 2.0) + Math.pow((amigo.gety()- this.y), 2.0));
    }       
    /**
     *Metodo caer asigna coordenadas a objetos de tipo elemento que no tienen un metodo de movimiento propio
     */    
    public void caer()
    //time                                                                                                                      
    {
 this.y += 0.05;
    }


Para interactuar con el usuario mediante un clic en este fragmento del codigo:


public void mousePressed(MouseEvent e) //Invoked when a mouse button has been pressed on a component.
    {
 JOptionPane.showMessageDialog(null,"Presed");
 this.elementos.add(new elemento());
    }

Al momento de llevarlo a la interfaz gráfica se utilizo un hilo para que pudiese mostrar a los agentes en movimiento semi -dinámicos ya que el ambiente no cambia (aun son bolitas)
/**
     *Metodo run maneja el hilo del juego para los metodos de dibujar y mover
     */
    public void run()
    {
 while (true) 
     {
     Iterator<elemento> i = this.elementos.iterator();
     //if(ihastnext.getvida().equals(true))
     //{
     while (i.hasNext()) 
  {

      i.next().mueve();
  }
     this.repaint();
     // }
     try 
  {
      Thread.sleep(250);
  } catch (Exception e) { }
     }
    }


Video





Referencias:
Dr. Alejandro Guerra-Hernández
Sistemas Multi-Agentes
 Marzo-Julio  2011.
Herramientas para la publicacion: 

sábado, 17 de noviembre de 2012

Reporte 4 Plataformas para Sistemas multiagente



JADE (Java Agent DEvelopment Framework)


Jade es una plataforma para ejecutar agentes que permite:
Ejecución de agentes completamente asíncrona
Comunicación entre agentes en la misma o diferentes plataforma/s JADE/LEAP/JADEX
Programación de agentes mediante un conjunto de paquetes Java.
Validación de la ejecución mediante seguimiento mensajes y estado interno del agente.
Es la plataforma más extendida porque implementa el estándar FIPA.
El estándar FIPA www.fipa.org Especifica formalmente el lenguaje de comunicación (ACL) Codificación, semántica, y uso de los mensajes Indica como interaccionan y son gestionados los agentes.

Arquitectura de JADE



Arquitectura distribuida
  • Múltiples Hosts
  • Múltiples Procesos Múltiples “Agent Containers”

Un contenedor de agentes
  • Un proceso java por cada contenedor
  • Es transparente a los agentes
  • El contenedor principal alberga los servicios de la plataforma JADE
  • Contenedores en contacto mediante Java RMI





Smart Python multi-Agent


Es una Plataforma Multiagente y las organizaciones basadas en la tecnología XMPP / Jabber y escrito en Python. Esta tecnología ofrece por sí mismo funciones y prestaciones que facilitan la construcción del MAS como un canal de comunicación existente, los conceptos de usuarios (agentes) y servidores (plataformas) y un protocolo de comunicaciones extensible basado en XML, como FIPA-ACL. Muchas plataformas de otro agente existen, pero Spade es el primero en basar sus raíces en la tecnología XMPP.

La Plataforma Agente Spade no requiere (pero recomienda) la operación de los agentes realizados con la Biblioteca Agente Spade. La propia plataforma utiliza la biblioteca para potenciar su funcionamiento interno, pero aparte de eso, usted puede desarrollar sus propios agentes en el lenguaje de programación de su elección y utilizarlos con pala. El único requisito esos agentes deben cumplir es ser capaz de comunicarse a través del protocolo XMPP.

Las principales características de la plataforma SPADE son:
  • Soporte del estándar FIPA mediante el protocolo de mensajería instantánea XMPP (Agentes AMS y DF incluidos) 
  • Notificación de presencia entre agentes. 
  • Organizaciones Virtuales basadas en el protocolo de multi-conferencia MUC. 
  • Comunicación P2P entre agentes. 
  • Invocación remota de servicios entre agentes usando el estándar XML-RPC. 
  • Procesadores de lenguajes de contenido en SL0 y RDF. 
  • Modelo de agente BDI basado en Conocimiento, Deseos e Intenciones. 
  • Modelo de comportamientos: Cíclicos, Periódicos, Timeout, una ejecución, máquina de estados finita y basado en eventos. 
  • Soporte de comunicación con otras plataformas mediante diversos protocolos de transporte: JADE (vía HTTP o XMPP) y SIMBA. 
  • Publicación y subscripción de eventos mediante el estándar PubSub. 
  • Interfaz gráfica basada en web.





MadKit: Multi-Agents Developpement Kit



MaDKit es un código abierto plataforma multiagente modular y escalable escrito en Java
y construido sobre la AGR (agente / grupo / rol) modelo organizativo:
Agentes MaDKit desempeñar funciones en grupos y así crear sociedades artificiales.

MaDKit es software libre licenciado bajo la GNU GPL que incluye:

- Agentes de la creación artificial y la gestión del ciclo de vida
- Una infraestructura organizativa para la comunicación entre los agentes
- Alta heterogeneidad en las arquitecturas de agentes: No hay un modelo predefinido agente
- Multi-Agente de simulación basado en simuladores y herramientas de autoría
- Multi-agente distribuida basada en servicios de aplicaciones de edición

MaDKit 4 viene con un conjunto completo de servicios y agentes para el lanzamiento, presentación,
desarrollando y seguimiento de los agentes y organizaciones.

MaDKit 5 contiene la nueva versión de la API del kernel, algunos demos,
y algunos tutoriales preliminares.

Ambos podrían ser probado para tener una pista acerca de lo que es MaDKit.



The Robot World Cup Soccer Games


RoboCupSoccer es una competencia de fútbol con robots autónomos.
El objetivo oficial del proyecto es conseguir para mediados del siglo XXI un equipo capaz de vencer al ganador de la Copa Mundial de la FIFA siguiendo sus propias reglas.2
Las diferentes ligas atienden a la morfología del robot y siguen diferentes conjuntos de reglas:


RoboCupRescue
Se trata de poner a prueba a los robots para tareas de búsqueda y salvamento de víctimas en terreno desfavorable. Los robots pueden ser tanto autónomos como guíados por control remoto.
En cada prueba, un equipo de robots debe ser capaz de encontrar el camino adecuado en la zona designada y hacer un mapa con la posición de los diferentes obstáculos del térreno y de las víctimas.
Hay dos ligas diferentes, en función de si se lleva a cabo en el terreno físico o virtual

RoboCupJunior
Intenta acercar las metas y objetivos de Robocup a estudiantes de educación primaria y secundaria.

RoboCup@Home
Competencia añadida en la edición del 2006 celebrada en Bremen (Alemania) que se centra en la aplicación de robots autónomos en la vida diaria y en las relaciones hombre-robot derivadas.7
El escenario suele ser de la vida real y es ahí donde hay que demostrar las capacidades del robot


Referencias:








Reporte 3 Sistemas inteligentes Perceptrón AND