Foros del Web » Programando para Internet » Python »

Algoritmo Minimax y Python

Estas en el tema de Algoritmo Minimax y Python en el foro de Python en Foros del Web. Hola de nuevo... Bueno, leyendo el titulo del tema, ya os imaginaréis por donde anda la duda que tengo. Después de leer de diversas fuentes ...
  #1 (permalink)  
Antiguo 18/12/2014, 13:26
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 10 años, 10 meses
Puntos: 9
Algoritmo Minimax y Python

Hola de nuevo...

Bueno, leyendo el titulo del tema, ya os imaginaréis por donde anda la duda que tengo. Después de leer de diversas fuentes dicho algoritmo, tengo muchas dudas de como aplicarlo en nuestro Python.

La idea sería crear una IA simple basado en el conocido juego 3 en Raya. Quiero crearlo por medio de programación modular. Con el uso de funciones y no con POO. Entonces, por lo que entiendo, este algoritmo es recursivo. Como me gusta aprender este lenguaje creando programas, necesito saber a que conceptos fijar mas mi estudio.

Supongo, que será el tema de listas, ciclos y recursividad. Y como no...el tema de los árboles binarios.

Sobre estos árboles he visto muchos ejemplos en POO. Pero no sé como hacerlos mediante listas o funciones. O como dotar a este árbol de crecimiento y profundidad.

Lo que pido es una explicación casi para tontos. O algo básico de como se crea un árbol simple. Osea, mediante datos que le vayamos suministrando. Supongo que el Minimax necesita de esta estructura con sus nodos.

Ya he visitado muchas páginas de la red. Y aunque pillo el concepto, noto que no sé implantarlo aún en Python. Y claro, no quiero hace un 3 en Raya con el modulo Random. Ya que eso, de inteligente, tiene poco.

Salu2
  #2 (permalink)  
Antiguo 18/12/2014, 19:13
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 15 años, 7 meses
Puntos: 1360
Respuesta: Algoritmo Minimax y Python

Cita:
Sobre estos árboles he visto muchos ejemplos en POO. Pero no sé como hacerlos mediante listas o funciones.
El tl;dr de las clases es definir una serie de funciones sobre un conjuntos de estructuras de datos y que el acceso a esos datos este restringido por la clase.

Dicho esto, básicamente esos ejemplos que haz visto en POO, es usando probablemente listas y funciones de algún modo.

Incluso ya hay una implementación en python de lo que intentas hacer: http://www.leaseweblabs.com/2013/12/...tk-minimax-ai/

Spoiler: No requieres un árbol.
  #3 (permalink)  
Antiguo 19/12/2014, 08:14
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 10 años, 10 meses
Puntos: 9
Respuesta: Algoritmo Minimax y Python

Cita:
Iniciado por razpeitia Ver Mensaje
Spoiler: No requieres un árbol.
Pues esto aún me descoloca mas. En todos los ejemplos dibujan el típico árbol con la raíz y sus nodos. En referencia al algoritmo Minimax.
  #4 (permalink)  
Antiguo 19/12/2014, 12:12
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 15 años, 7 meses
Puntos: 1360
Respuesta: Algoritmo Minimax y Python

Cita:
Iniciado por Koan Ver Mensaje
Pues esto aún me descoloca mas. En todos los ejemplos dibujan el típico árbol con la raíz y sus nodos. En referencia al algoritmo Minimax.
Lo que te dibujan es un arbol de llamadas a la función minimax, puesto que el algoritmo es recursivo.
  #5 (permalink)  
Antiguo 21/12/2014, 13:22
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 10 años, 10 meses
Puntos: 9
Respuesta: Algoritmo Minimax y Python

Intentando entender este algoritmo, di con una página web que explicaban dicho método y usando la programación modular. Pero hay unas líneas de código que no logro 'traducirlas' a Python 3.4. Incluso e usado el modulo 2to3 (para pasar código de Python 2.7 a Python 3.4) y sigue sin funcionar.

Paso el enlace de la página y las líneas donde me surgen los problemas (en Python 2.7 funciona perfectamente)

http://www.divertimentosinformaticos...nvencible.html

Para Python 3.4 he añadido los paréntesis en print y los he modificado como:
Código Python:
Ver original
  1. print('X', end=' ')

Pero me da estos errores en las líneas que indica el editor:

Traceback (most recent call last):
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 96, in <module>
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 75, in juega_humano
builtins.TypeError: unsupported operand type(s) for -: 'str' and 'int'

Creo que tiene que ver con el input. Incluso 2to3 metía el input dentro de la función eval, pero tampoco funcionaba ¿Donde está el error?
  #6 (permalink)  
Antiguo 22/12/2014, 08:58
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 15 años, 7 meses
Puntos: 1360
Respuesta: Algoritmo Minimax y Python

Tal como te dice en la linea 75 en juega_humano. Dice que no soporta 'str' - 'int'.

Etiquetas: funcion, listas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:43.