Angel "Java" Lopez

NET, Java, PHP y Desarrollo de Software

This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

.NET

ASP.NET

Windows Form

VB.NET

C#

Sitios

Blogs

Computer Go: El gran problema de AI

Desde hace algunos años, estoy interesado en algunas ramas de lo que se llama Inteligencia Artificial. Convengamos que el término es algo ampuloso, y refleja el entusiasmo de fines de los años 50, cuando en una reunión de especialista se acuñó el término. La Artificial Intelligence o AI ha pasado por varias etapas y viscisitudes, ha habido de todo, desde triunfos y fracasos, hasta ramas nuevas (agentes, redes neuronales, aprendizaje automático) que han ido apareciendo. Realmente es un tema fascinante, pero tal vez demasiado amplio.

Pueden ver algunos enlaces desordenados que colecciono en

http://www.ajlopez.com/ia/

He mantenido, de alguna manera, el interés en una rama: su aplicación a los juegos. Pueden visitar el excelente sitio del grupo GAMES de la Universidad de Alberta (Canadá):

http://www.cs.ualberta.ca/~games/

para encontrar mayor información, estupenda. Si Uds. investigan un poco, encontrarán que a lo largo de todos estos años, hay un juego que ha resistido las distintas aproximaciones que se han intentado para dominarlo. Pueden encontrar más información sobre el juego en el sitio de la Asociación Argentina de Go:

http://www.go.org.ar/

en especial, el ya clásico artículo del bueno de Franklin Bassarsky:

Por qué Aprender a jugar al Go
http://www.go.org.ar/actividades/porque.html

Mientras que Deep Blue el siglo pasado derrotó a Kasparov, en ajedrez, el mejor programa de go del planeta apenas si puede enfrentar a un verdadero experto en el juego. Para conocer más sobre la situación actual, visitar el interminable y subyugante

http://gobase.org/

En los últimos años, ha surgido el wiki

http://senseis.xmp.net/

donde encontrarán múltiples temas tratados, por ejemplo

http://senseis.xmp.net/?ComputerGoProgramming
http://senseis.xmp.net/?ComputerGoAlgorithms

Un clásico es el algoritmo de Benson (solo como botón de muestra de cómo apareció hace años, y luego han ido apareciendo otras ideas para explicar y acercar el Go a la AI):

http://senseis.xmp.net/?BensonsAlgorithm

También como botón de muestra de la cantidad de "papers" que mueve el tema, ver

http://erikvanderwerf.tengen.nl/publications.html

LA lista de correo sobre el tema es:

computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Se imaginaran entonces, que no puede faltar.... el AjGo. Sí, estoy pasando a .NET algunas ideas. La principal es concentrarme primero en planes, que traten de cumplir con 4 objetivos básicos:

- Aumentar el territorio propio
- Disminuir el territorio enemigo
- Asegurar la vida de las piedras propias
- Capturar piedras enemigas

Hace unos años investigué distintas formas de calcular la influencia y territorio, basado en conceptos que todos en computer go tratan alguna vez: "iluminación", "campos de fuerza".... En este nuevo intento, he visto que es más interesante simplemente separar en grupos, usando para visualizar el resultado distintos colores. Un ejemplo (una posición algo ridícula para un juego real, pero interesante para mí) es:

Podría explicar un poco más en detalle el coloreo, pero basta decir que los azules indican cercanía a piedra negra, los rojos cercanía a piedra blanca, amarillo cercanía a ambos colores, verde libre de cercanía. Los cuatro objetivos básicos los puedo expresar en deltas en esos coloreos. Me parece que el concepto de grupo coloreado, y su aumento o disminución, es un camino interesante a explorar. Por ejemplo, rodear a un grupo enemigo es, en principio, asimilable a "disminuir sus verdes", los verdes que estan en contacto con ese grupo.

Supongo que alguien ya lo habrá seguido, pero de alguna forma, con esto estoy aprendiendo sobre la dificultad del problema. Tengo que analizar la táctica a seguir para cumplir con cada plan sugerido. Igualmente, algo de algoritmo de sisho generalizado está siendo incorporado. Falta la hercúlea tarea de resolver:

- Tácticas de corte
- Tácticas de conexión
- Tácticas de vida y muerte

Espero poder postear algo interesante cuando tenga algo más armado, código incluído.

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com/

Published Mon, Jan 15 2007 1:01 by lopez

Comments

# Computer Go en el Segundo Congreso Argentino de Go@ Wednesday, March 28, 2007 7:03 AM

La Asociación Argentina de Go celebra este próximo fin de semana el Segundo Congreso de Go http://www.go.org.ar/page.php?name=congreso2007

Angel "Java" Lopez

# Segundo Congreso Argentino de Go@ Wednesday, March 28, 2007 7:10 AM

Desde este viernes 30 de marzo al lunes 2 de abril, la Asociación Argentina de Go celebrará el

Segundo Congreso Argentino de Go

sobre el milenario juego. Visiten el sitio de la asociación para conseguir más información sobre

ajlopez

# re: Computer Go: El gran problema de AI@ Wednesday, April 04, 2007 1:00 PM

Interesante trabajo!

Espero que sigas avanzando, me parece fascinante.

Bruko

# Mi evolución en KGS@ Monday, July 09, 2007 7:26 AM

El juego del Go puede practicarse en Internet, y es una forma de ponerse en contacto con miles de jugadores, algunos muy fuertes, y practicar aún cuando no se tenga algún compañero cercano con quien jugar. Eso es un gran cambio, desde la época d

ajlopez

Leave a Comment

(required) 
(required) 
(optional)
(required)