Plateamiento de problemas en IA

A continuación se plantean tres soluciones diferentes del problema de tres en raya analizando la conveniencia de cada una. Cada una de las soluciones plantea un enfoque diferente, pero solo la última simula la forma en que una computadora lo resolveria de forma inteligente:

Solución 1:

  • Una primera solución directa a este juego podría ser la de almacenar en un vector las 19.693 posibilidades de un tablero de 3 x 3 con tres valores posibles en cada casilla (vacío-X-O), así como las correspondientes jugadas sucesoras.
  • Para realizar una jugada, bastaría con acceder a la posición del tablero actual y la jugada sucesora correspondiente.
  • Las desventajas de este eficiente programa son bastante obvias:
  • Necesita gran cantidad de memoria; alguien debe realizar el pesado trabajo de introducir todas las jugadas y sus sucesoras; y el juego no se puede ampliar, por ejemplo a tres dimensiones.

Solución 2:

  • El programa posee una estrategia para cada turno de jugador.
  • Analiza el posible triunfo a partir de un estado del tablero dado.
  • Aunque es menos eficiente que la solución anterior en términos de tiempo, tiene la ventaja que es más eficiente en términos de espacio.
  • Su estrategia es más fácil de comprender y realizar cambios, aunque el programador debe comprender la totalidad de la estrategia de antemano.
  • Además, no es posible generalizar parte del conocimiento del programa hacia un dominio distinto, como tres en raya 3D.

Solución 3:

  • Una estructura contiene el tablero actual, así como una lista de posiciones del tablero que podrían ser el próximo movimiento, y una estimación de la probabilidad de que esa jugada lleve a la victoria.
  • Para decidir la siguiente jugada se tienen en cuenta las posiciones de tablero que resultan de cada movimiento posible.
  • Se decide la posición que corresponde a la mejor jugada, considerando si la jugada produce la victoria, y en caso contrario considerando todos los movimientos que el oponente puede realizar asumiendo que éste elegirá el peor para nosotros.
  • El algoritmo inspecciona varias secuencias de movimientos intentando maximizar la probabilidad de victoria.
  • Necesita mucho más tiempo que los demás, ya que debe realizar una búsqueda en un árbol de posibilidades antes de realizar cada movimiento. Sin embargo, es superior a las demás soluciones pues podría ser ampliado para manipular juegos más complicados.
  • Además, puede aumentar su potencia usando conocimiento sobre el juego, por ejemplo, en lugar de considerar todos los posibles movimientos considerar solo un subconjunto siguiendo algún criterio razonable.

Este último es un ejemplo del uso de una técnica de IA.

Dado este ejemplo, podemos definir tres parámetros importantes para poder resolver un problema usando IA:

  • Búsqueda: proporciona una forma de resolver problemas en los que no se dispone de un método directo
  • Uso del conocimiento: proporciona una forma de resolver problemas complejos explotando las estructuras existentes entre los objetos involucrados
  • Abstracción: proporciona una forma de separar aspectos y variaciones importantes de aquellos otros sin importancia, y que en caso contrario podrían colapsar el proceso.

Más adelante describiremos en detalle cada uno de estos elementos.