2017-05-12 1 views
0

Je travaille sur un projet où il y a une série de cartes qui sont vendues aux enchères; où le plus offrant remportera la carte la plus valorisée aux enchères. Quand le joueur IA est sur son tour, il doit évaluer le tableau et déterminer une évaluation de son offre. Ignorer tout ce qui concerne la validation ou les règles; comme je l'ai déjà programmé et testé ceux-ci.Intelligence artificielle - Comment décider de la valorisation d'une enchère?

Ma requête concerne plus spécifiquement comment associer une valeur à un tableau donné de valeurs; et venir avec une valeur d'enchère.

Dans le projet, les cartes vont de 1 ... 30; avec 30 étant le plus élevé.

Une vente aux enchères unique il pourrait y avoir 6 cartes, mélangées et placées « aux enchères »

-à-dire:

#1 - "Card name" - Value: 1 
#2 - "Card name" - Value: 3 
#3 - "Card name" - Value: 30 
#4 - "Card name" - Value: 15 
#5 - "Card name" - Value: 24 
#6 - "Card name" - Value: 18 

La question que j'est, comment l'examen de l'ordinateur les valeurs et venir avec une détermination de combien sa valeur pour lui de continuer à augmenter son offre, ou même à venir avec une offre d'ouverture?

Nous connaissons certaines variables.

  • Toutes les cartes placées aux enchères
  • Paiement à la main
  • Combien de tours d'enchères restent (pour l'instant, supposons 6 tours d'enchères)

Compte tenu de cela, je suis venu avec un solution de pondération de base.

IE:

var weight = 1.0 

if roundsRemaining = 1 { 
    weight += 0.35 
} 

if weight > 1.0 { 
    weight = 1.0 
} 

Je randomiser entre 0 et 1,0; plus la probabilité est proche de 1,0, plus le joueur qui enchérit fera une offre.

Alors qu'il me donne une probabilité d'enchérir, il ne me dit pas le évaluation de son offre.

Idéalement, je voudrais que l'IA passe en revue les cartes proposées et fasse une offre en fonction de ce qu'il pense que la carte la plus élevée vaut (car c'est ce qu'il demande).

Ceci est ma requête; donné un tableau de cartes avec des valeurs et des paramètres connus; Comment l'IA peut-elle déterminer une évaluation pour faire une offre?

Répondre

1

La façon la plus simple est d'utiliser la statistique :)

Vous pouvez calculer la moyenne des cartes dans la vente aux enchères, puis de comparer cette valeur à une distribution connue des valeurs (c.-à-courbe cloche de tous les ensembles possibles) pour trouver le P- valeur pour cette enchère. Plus la valeur p est élevée, plus l'ensemble est précieux et plus l'IA devrait être prête à payer pour cela.

Cela fonctionne parce que toutes les valeurs d'un ensemble régresseront à la valeur moyenne.Si l'ensemble des enchères n'est pas connu, (c'est-à-dire que les joueurs ne peuvent pas voir toutes les cartes dans l'enchère), l'IA pourrait deviner sur la base des valeurs p connues ou mémoriser quelles cartes ont déjà été vues. les retirer de la distribution totale.

vous pouvez utiliser cette bibliothèque de statistiques au lieu d'avoir à écrire votre propre: https://github.com/evgenyneu/SigmaSwiftStatistics

+0

semble intéressant, je vais lui donner un coup. Je ne suis pas bon avec les statistiques; mais son coup de valeur – zardon