人工智能 - 如何决定拍卖出价的估价?

Artificial Intelligence - How to decide the valuation for an auction bid?

我正在做一个项目,其中有一系列卡片被拍卖;出价最高的人将赢得拍卖中价值最高的卡片。

当 AI 玩家轮到时,他需要评估数组并确定他的出价估值。

忽略与验证或规则有关的任何事情;因为我已经对这些进行了编程和测试。

我的查询更具体地是关于如何为给定的值数组关联一个值;并提出一个出价。

在项目中,卡片的范围是1...30;其中 30 为最高。

一次拍卖可能有 6 张牌,洗牌并放置 "on auction"

即:

#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

我的问题是,计算机如何审查这些价值并确定对他来说价值多少才能继续提高他的出价,甚至提出开价?

我们确实知道一些变数。

鉴于此,我想出了一个基本的加权解决方案。

IE:

var weight = 1.0

if roundsRemaining = 1 {
   weight += 0.35
}

if weight > 1.0 { 
   weight = 1.0 
}

然后我在 0 和 1.0 之间随机化;越接近 1.0,出价玩家出价的可能性就越大。

虽然它给了我出价的概率,但没有告诉我他出价的估价

理想情况下,我希望 AI 审查提供的卡片并根据他认为最高卡片的价值(因为这是他的出价)出价。

这是我的查询;给定一组具有值和已知参数的卡片;人工智能如何确定出价的估值。

最简单的方法是使用统计 :)

您可以对拍卖中的卡片进行平均,然后将该值与已知的值分布(即所有可能集合的钟形曲线)进行比较,以找到该拍卖的 p 值。 p 值越高,集合越有价值,AI 就越愿意为此付出代价。

这是有效的,因为任何集合的所有值都会回归到平均值。

如果拍卖集未知,(也就是说玩家无法看到拍卖中的所有牌)那么 AI 可以 'guess' 基于已知的 p 值或记住哪些牌已经被看到并将它们从总分布中删除。

您可以使用这个统计库,而不必自己编写: https://github.com/evgenyneu/SigmaSwiftStatistics