viernes, 23 de noviembre de 2012

Practica 4

COOPERACIÓN CON CONTRACT NET 


 El Protocolo FIPA Contract Net Interaction (IP) es una pequeña modificación del patrón de IP contrato original net [1] en la que se añade el rechazo y la confirmación de los actos comunicativos. En la red IP contrato, un agente (el iniciador) toma el papel de gerente que quiere tener un poco de tarea realizada por uno o más de otros agentes (los participante).


El objetivo de la practica es tratar de resolver un problema como el que se hizo en clase 
problema:


Hay 4 Talleres en una ciudad y se descomponen 4 carros, cada taller cuenta con 1 empleado para 
ayudarlos.  Se trata de ayudar a los 2 más cercanos.


Para esta practica quisimos que las posiciones fueran elegidas aleatoriamente de un numero entre el 1 y el 9,por lo tanto no se tiene definido el punto en el que estará cada Taller o Carro.

Después tendremos que juntar los puntos del taller y carro. Se uso la siguiente función  

http://pastebin.com/pCVut6pE



en esta función primer iniciamos los puntos de los talleres, ya reunidos los puntos necesarios y mandando a ver el resultado de las distancias usamos un ciclo para determinar las dos distancias más cortas al mismo tiempo también estamos igualando a una variable String para que guarde cuales fueron los dos puntos menores.

http://pastebin.com/cygLKJjD
La función verificar no hace mas que retornar el resultado de las distancias.




http://pastebin.com/0mzwRUmk


En esta pequeña parte de código y con el tiempo sobre nosotros hicimos unos cuantos if donde creamos unas variables booleanas para asegurarnos que ya no había sido elegida anteriormente y tambien nos fijamos en que fueran igual las dos menores.Los if están acomodados según el orden de importancia que se les dio.


Vídeo:

http://www.youtube.com/watch?v=4qEqAWHf_VA&feature=youtu.be



Conclusiones:
Pudimos aprender mucho más sobre el tema, nos hubiera encantado haberlo hecho un poco antes, y sin embargo  sabemos que no fue una manera optima de dar solución al problema.

jueves, 1 de noviembre de 2012

Practica 3

la propuesta que habiamos hecho para la doctora sara fue crear un OCR (reconocimiento óptico de patrones) usando redes neuronales.

La idea fue tomada de un juego de harry potter donde tenias que dibujar un patron para lanzar un hechizo. Se estubo investigando sobre las librerias que nos podrían ayudar, hubo muchas que se encontro para python sin embargo por muchas que estas eran no fue facíl instalarlas claro que hubo algunas que si fueron sencillas de instalarlas.

lamentablemente no pudimos crear el proyecto ya que el equipo no se tomo el tiempo necesario para una investigación más profunda y tampoco para el desarrollo.

hubiera sido magnifico poder crearlo pero os dejo una nota importante para cuando vayan a crear un equipo:

  • simpre buscar gente responsable
  • COMUNICACIÓN

por que digo ésto?, no es sencillo trabajar con un equipo con problemas de comunicación y creo que las practicas no son fáciles pero se vuelven más complicadas si el equipo no coopera, así que podríamos decir que entonces trabajar se vuelve un verdadero reto.

Siguiendo adelante se trabajo con algo más chico sin embargo fue algo que se vio en clase y sigue estando dentro del tema redes neuronales artificiales.


Se entrenara un preceptrón simple para que pueda dar la solución de un exor.

Codigo: Pastebin | Dropbox




Video:


Saludos.

viernes, 21 de septiembre de 2012

Practica 2 (cellular Automata)

Introducción:
Bueno el tema que elegimos fue el de Autómatas Celulares.

Un autómata celular (A.C.) es un modelo matemático para un sistema dinámico que evoluciona en pasos discretos. Es adecuado para modelar sistemas naturales que puedan ser descritos como una colección masiva de objetos simples que interactúen localmente unos con otros.

El autómata más conocidos por todos.

El juego de la vida de Conway

Uno de los autómatas celulares más conocidos es el que John Horton Conway llamó el juego VIDA (Life Game). El juego VIDA es un autómata celular bidimensional en cuadrícula con dos estados por celda. Cada celda o célula puede estar viva o muerta y en cada generación se aplica un algoritmo que sigue estas tres reglas:
1.- Cada célula viva con dos o tres células vecinas vivas sobrevive a la siguiente generación.

2.- Cada célula viva con ninguna, una, o más de tres células vivas a su alrededor pasa a estar muerta.

3.- Cada célula muerta con tres células vecinas vivas resucita en la siguiente generación.

El juego VIDA presenta configuraciones finales estables, periódicas o no. Langton defiende que presenta propiedades de catálisis (acciones de construcción arbitrarias), de transporte (borrando estructuras y reconstruyéndolas en otro lugar del espacio celular), estructurales (como elementos estáticos, barreras, etc.), de regulación, defensa e incluso informativas, y que por tanto estos autómatas virtuales tienen capacidades computacionales suficientes para cumplir los papeles funcionales que juegan las macromoléculas en la lógica molecular de la vida. En definitiva, que funcionalmente, los autómatas son equiparables a los componentes básicos de la vida en nuestro planeta.


Objetivo:
Hacer un sistema que pueda crear una regla ingresando su numero.
El sistema creara la regla en 1 dimensión como se indica en la practica



Justificación:
De las opciones autómatas celulares fue el que nos pareció mas interesante por ser un sistema dinámico, además que el tiempo que se dio para la realización de esta practica no fue suficiente para realizar algo más, esta practica fue la mejor para poder hacer.


Desarrollo:
Este sistema se rige por valores booleanos para pintar los pixeles y dibujar la regla correspondiente.

Código: http://pastebin.com/VFvxWScZ


Resultados:
Se cumplieron los resultados, porque el sistema nos puede generar las reglas.

También es muy claro como sigue el patrón aunque sea generada con el primer patrón al azar.

Regla 30

Regla 90 random
Regla 184
Regla 150 random


Conclusiones:
Si se cumplió el objetivo que era desarrollar un sistema que pudiera generar cualquier regla.


Video:
http://youtu.be/_yPcRCjg31c De preferencia ver el video en full screen..




Referencias:
wikipedia - Autómata celular http://es.wikipedia.org/wiki/Autómata_celular
Red Cientifica - GAIA: Autómatas Celulares http://www.redcientifica.com/gaia/ac/auto_c.htm
Saludos.

martes, 4 de septiembre de 2012

Practica 1 (Semaforos)



Descripción de la Práctica

Para esta práctica, se implementará un sistema que simule calles congestionadas y regule automáticamente la duración de las luces verdes en los semáforos de los cruces. La idea principal es evitar que los semáforos permitan una colisión al permitir el paso de los automóviles.

Solución:

Se quiere crear un escenario donde la cantidad de automóviles sea dada de una manera aleatoria por la que no se sabría en cual calle podría estar y que el algoritmo pueda descongestionar de una buena manera.

lo primero que se creó fue el mapa del cruze con el que se trabajaria.
Teniendo en cuenta como está el cruze, ahora se puede proseguir creando grafos para poder ver más claramente la solución del problema.


para crear este grafo se nombro a cada punto de carretera y su conexión con las demás.

En base a nuestro grafo se crea la siguiente tabla de verdad para ver cual seria la opción óptima a tomar.

S1 S2 S3 SALIDA
0 0 0 NADA
0 0 1 Carril (D-A) ----OPTIMO
0 1 0 Carril(B-E)-----NO ES OPTIMO
0 1 1 COLISION
1 0 0 Carril(F-A)-----NO ES OPTIMO
1 0 1 COLISION
1 1 0 (F-A)(B-E)-----OPTIMO
1 1 1 COLISION

Una parte de nuestro codigo sería la siguiente:
  En caso de que no salga clic aqui..
 
Video de youtube mostrando el programa:
http://youtu.be/cQPv09RMJ2Q



 
 
 
Observaciones:
La practica fue interesante aun que no hubo tiempo para poder hacer un grafico por la mala comunicación en el equipo, esperamos que esto no vuelva a suceder. 
 
También se tubo problemas con un poco de los hilos pero despues de haber hecho eso las cosas se volvieron un poco mas fáciles.