Taller
>> Taller >> Curso de Inteligencia Artificial by Slàinte >> I.A. Calculada.


Como he indicado anteriormente este tipo de inteligencia se basa en el cálculo directo de la situación actual sin tener en cuenta lo que pase despues o antes para determinar la acción a realizar.

Para explicarlo veremos un ejemplo, el cálculo en el parchis:

Definimos primero las reglas de la I.A. calculada(en modo algoritmo, habría que programarlo completo) que serán aplicadas a las cuatro fichas:

STRUCT ficha[4] ;
INT i ; // CONTADOR AUXILIAR

FOR ( i = 0 ; i < 4 ; i++ )
   ficha[i].valor = ficha[i].posicion
  IF (ficha[i].encasa)  // OBLIGATORIO SALIR CON 5
    IF (dado==5) ficha[i].valor = 1000 ;
    ELSE ficha[i].valor = 0 ;
    END

  END
  IF (ficha[i].barrera) // OBLIGATORIO ABRIR CON 6
    IF (dado==6) ficha[i].valor = 1000 ;
    END

  END
  IF (entra_casa(ficha[i],ficha[i].posicion + dado))
    ficha.valor += 100 ;

  END

  IF (mata_ficha(ficha[i],ficha[i].posicion + dado))
    ficha.valor += 50 ;

  END
  IF (ficha_seguro(ficha[i],ficha[i]posicion + dado))
    ficha.valor += 25 ;

  END
NEXT


En este algoritmo inicializamos el valor de la ficha a su posición en el tablero contando que 0 es estar en casa y N (en función del tipo de tablero de parchís) es estar en casa, así damos prioridad a las fichas más avanzadas. Seguidamente damos un valor muy elevado a las fichas que dependen de una regla obligatoria, como puede ser salir de casa con un 5 o romper una barrera con un 6. Con esto aseguramos que serán las más elevadas pase lo que pase. Ahora priorizamos el resto de posibilidades que seran que se entre una ficha en casa, que se mate una ficha o que se entre en un seguro. Cuando hemos calculado el valor de las 4 fichas, ordenamos las fichas por orden desdencente según el valor que tienen y la primera ficha es la que moveremos.

Recomendación

Se pueden añadir tantas reglas como sea necesario, incluso se pueden programar varios juegos de reglas en función de una dificultad de juego (priorizar el matar, priorizar llegar a casa, priorizar ir a zona segura...)

La complejidad de estas reglas nos va a determinar la "inteligencia" del sistema, unas reglas mal definidas pueden darle un cambio radical al juego, haciendose injugable. Recordad que tampoco se deben programar máquinas infalibles, ponderad el exito de decisión por ejemplo desordenando la matriz de fichas en un 20 o 30 % de los casos.

Este tipo de algoritmo también se utiliza mucho en los juegos de estrategia para decidir, por ejemplo, cual es el blanco óptimo para las unidades que van al ataque, eligiendo el más adecuado para el tipo de unidad atacante, o el más deteriorado o peligroso... Pero la base de funcionamiento es la misma, definir las reglas y elegir la de valor mayor.



[ INTRODUCCIÓN ]    [ ENTREGA 2 ]    [ CALCULO CONDICIONADO ]