English 中文(简体)
我应使用什么算法来“改进遗传性独立”
原标题:What algorithm should I use for "genetic AI improvement"
  • 时间:2009-09-24 11:46:50
  •  标签:

首先: http://em>not? 在那里,这样做了。

Introductory explanation

我已把五百年制成一个试验基因改良的实验框架(这种声音是完全有预言的)。 如同大多数轮驱动游戏一样,通过给一切可能的行动分配一个分数,然后以最高分数进行移动,决定了最佳行动。 分配分到移动(广场)的职能类似:

  1. 如果广场已经破灭,则计分为0,因为把新标注放在广场是非法的。

  2. 每个广场最多可分成20个不同的胜行(5个横向、5个垂直、10个分校)。 广场的分数是每一行的分数。

  3. 输电的分数取决于已经row的友好和敌人。 实例:

    • A row with four friendly tokens should have infinite score, because if you place a token there you win the game.
    • The score for a row with four enemy tokens should be very high, since if you don t put a token there, the opponent will win on his next turn.
    • A row with both friendly and enemy tokens will score 0, since this row can never be part of a winning row.

鉴于这一算法,我宣布了一种称为TBrain的类型:

type
  TBrain = array[cFriendly..cEnemy , 0..4] of integer; 

这些阵列的数值表明,一行的分数,既有Nair tokens,也有0的敌人的标志,也有0的友好的信号和N敌人的标志。 如果一行有5个标注,则该行没有记分,因为行满。

实际很容易决定哪一种价值应该存在于阵列。 脑[0,4](四个友好体)应是“无限的”,请打电话1,000。 vBrain[1,4]应当非常高,但不要太高,大脑宁愿阻挡好好好几张敌人的胜利,而不是赢得自己的胜利。

• 加入以下(可证明的)委员会:

  0123456789
 +----------
0|1...1...12
1|.1..1..1.2
2|..1.1.1..2
3|...111...2
4|1111.1111.
5|...111....
6|..1.1.1...
7|.1..1..1..
8|1...1...1.

2名运动员应在(9,4人)的比赛中获胜,not,(4,4人),即使他会阻止8名可能胜出的人。 1. Ergo, vBrain[1,4]应为(vBrain[0,4]/8)-1。 如同这项工作一样,我们可以找到“人才”的最佳价值,但这又是而不是我感兴趣的内容。 我希望能找到最佳的价值观。

我已经执行了这一框架,以便它能够产生完全的决定性。 这些分数没有随机值,如果几个平方的分数相同,则将选择顶点。

Actual problem

现在引人瞩目的部分(至少我要说)

我有两个“图书馆”,即Brain1和vBrain2。 如何使这些更好? mag:

  1. Initialize vBrain1 and vBrain2 with random values.
  2. Simulate a game between them.
  3. Assign the values from the winner to the loser, then randomly change one of them slightly.

似乎没有工作。 脑部没有穿透。 为什么?

计分方法是否为结果添加了一些小的随机值,这样,两种大脑之间的两种游戏会有所不同? 每种迭代的数值应多少变化? 如何启动“图书馆”? 具有不变的价值? 具有随机价值?

而且,这是否与AI或遗传算法有关?

PS:问题与罗的五大问题无关。 这只是我选择的,因为我可以宣布一个非常简单的“人才”来试验。

最佳回答

一般来说,你可以通过使用遗传学算法技术来做一个brain

Rand或突变在遗传方案规划方面发挥着重要作用。

I like this tutorial, Genetic Algorithms: Cool Name & Damn Simple.
(It uses Python for the examples but it s not difficult to understand them)

问题回答

如果你想像遗传学算法那样解决这一问题,那么你将需要全体“图书馆”人口。 然后相互评价,无论是组合还是使用比赛风格。 然后选择人口中最高的X%,并使用他们作为下一代的父母,在下一代人中,后代是通过突变(你有)或基因交叉(例如,两个“书目”之间的隔).或一栏)。

而且,如果你看不到任何进步,那么你可能不仅需要赢利/损失,而且还需要某种点制度,以便你能够更有效地把整个人口排在首位,从而使选择更加容易。





相关问题
热门标签