Mostrando entradas con la etiqueta electronica. Mostrar todas las entradas
Mostrando entradas con la etiqueta electronica. Mostrar todas las entradas

jueves, 19 de enero de 2012

Redes Neuronales Artificiales y Algoritmos Genéticos

Para empezar a programar el Ajedrez inteligente en Python, estoy comenzando a profundizar un poco más en el campo de la Inteligencia Artificial (IA), estudiando Redes Neuronales Artificiales (RNA) y Algoritmos Genéticos (AG).

¿Porqué se llaman Redes Neuronales Artificiales?, básicamente porque se intenta representar artificialmente al conjunto de celulas nerviosas de nuestro cerebro.

¿Porqué se llaman Algoritmos Genéticos?, como sabemos, un algoritmo es un conjunto de pasos que se deben realizar para cumplir "x" objetivo, al añadirle la palabra "genéticos", estamos diciendo que se tratara de un algoritmo capaz de evolucionar.

Las RNA, se encargan de decidir el comportamiento en este caso del ordenador, mientras que los AG, ayudaran al aprendizaje del ordenador.
Es decir que se necesitan mutuamente, para realizar movimientos, con ayuda de las RNA que luego si son erróneos serán corregidos para futuras partidas por el AG.

martes, 3 de enero de 2012

Ajedrez en Python [3]


Hace unos minutos estuve hablando con un amigo, y como sugerencia, consejo, me dijo que la idea de hacer el ajedrez con "if-else", era prácticamente imposible. Creo que tengo que ir por otros métodos para encarar el proyecto, algo que me nombro y me resulto bastante interesante fue que tendría que empezar con los algoritmos genéticos o redes neuronales, por lo cual ya me puse a leer material.
Me va a llevar un poco de estudio todo esto, pero igualmente voy a subir seguido mis avances en este campo de lo que básicamente seria inteligencia artificial.

Ajedrez en Python [2]


Hoy me senté frente al monitor, con un ajedrez al lado, y me puse  a hacer movidas aleatorias, con sus posibles contraataques.
Lo que intento hacer es que el código responda con la mejor movida, sin que esta sea al azar ("que piense").
Por el momento lo que se me ocurre es utilizar un sistema de if-else, pero también lo que necesito es guardar las movidas en variables, para que se sepa cuando un casillero esta ocupado o no, si esa pieza ya se movió y esta en otra parte, o si ya no esta sobre el tablero.
Por ahora, solo hice muy pocas movidas, y estas no quedan registradas, el siguiente paso sera registrarlas para evitar desplazamientos imposibles.

Se viene una noche bastante larga...con café al lado.

domingo, 1 de enero de 2012

Ajedrez en Python [1]

Kasparov vs. Deep Blue


Hace unos días estaba jugando ajedrez y se me paso por la cabeza hacer un "mini" programa en Python que emule ser un jugador de ajedrez, sin interfaz gráfica por el momento, solo por linea de comandos.
Como desafío de 2012, me propongo comenzar con la programación de un código que permita ingresar la pieza y posición de la misma para que luego decida cual es el movimiento correcto a hacer.
Por ahora voy a comenzar a maquetear todo con lapicera y papel para después ir dandome un poco de maña con el código.
Los avances se irán subiendo al blog, no se con que frecuencia, pero por lo menos los subire una vez por semana.

miércoles, 3 de agosto de 2011

Programador PIC [Parte 3]

Puerto RS232, para conectar a la computadora.
 Me ausente unos días, porque tuve un problema. Al estar terminando de soldar la placa anterior...tuve un pequeño inconveniente que me obligo a dejar de trabajar sobre ella y a empezar una nueva. El trabajo es el mismo, nada más que esta vez utilice una placa pertinax de doble faz. Ya estan todos los componentes soldados. Ahora, simplemente hace falta probarlo.

miércoles, 20 de julio de 2011

Programador PIC [Parte 2]

Soldando los componentes para JDM PLUS - foto propia
Ya estoy soldando los componentes, al principio me costo, si ven del post anterior, se darán cuenta que las pistas y pad en algunos lugares esta muy juntas.
Por ahora todo marcha bien, ahora hay que agregarle el puerto serial,  los zócalos un led de indicación y una caja para el montaje.

sábado, 16 de julio de 2011

Programador PIC [Parte 1]

JDM PLUS sacado del Cloruro Férrico - Fotografía propia

En busca de un programador de PICs, me encontré con algunos que eran un robo muy caros y otros que eran muy baratos. Hasta ese momento tenia pensado comprarlo. Pero después pensé, para que lo voy a hacer si lo puedo hacer yo mismo sin ningún problema.
Entonces comencé a buscar documentación sobre ello, y encontré el JDM PLUS, un programador de PICs por puerto serial D9. Lo vi muy sencillo de realizar y comprando los componentes seria muchisimo más barato hacerlo que comprarlo, pero más que nada, es una satifacción ver que algo funcione...y sobre todo que haya sido echo por uno mismo.