小编Pin*_*niu的帖子

如何在不构建临时列表的情况下计算唯一排列的数量?

如何计算这个数字而不是枚举所有排列,然后创建集合以切断所有重复?

len(set(itertools.permutations('aaabbb')))
20

len(set(itertools.permutations('aabb')))
6
Run Code Online (Sandbox Code Playgroud)

python math combinatorics

4
推荐指数
1
解决办法
595
查看次数

如何在 wxWidgets 中制作“3 部分”拆分器窗口?

我想在窗口或面板中创建 3 个部分。所有 3 个部分都应该有可能由用户调整大小,并在用户更改主窗口大小时自动调整大小。它类似于将 3 个面板添加到垂直框大小器中,但用户可以调整所有三个部分的大小。我最多可以将 2 个面板添加到 wxSplitterWindow。

我使用 C++、wxWidgets 和 wxFormBuilder。

c++ layout wxwidgets

3
推荐指数
1
解决办法
3838
查看次数

在棋盘游戏中使用经典的反向传播神经网络和TD学习

我想问一下在棋盘游戏中使用标准的反向传播神经网络和TD学习方法是否有意义?

我的方法看起来像:

  1. 玩1场比赛.Net有时会扮演贪婪的政策和随机动作.
  2. 对于每个存储的游戏位置(从终端1开始并移动到起始位置),计算估计的位置值和期望的位置值,例如

    boards_values[i]['desired_value'] = boards_values[i]['estimated_value'] + 0.4 * ( boards_values[i+1]['estimated_value'] - boards_values[i]['estimated_value'] )
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用标准反向传播算法,从整个游戏结束列车创建网络训练模式,每个训练模式具有1个时期的小学习率.

    NN.train([pattern], iterations=1, N=0.001, M=0.000001)
    
    Run Code Online (Sandbox Code Playgroud)

我在我的tic tac toe游戏中尝试了上述的一些组合(不是从一个例子学习,而是学习30-40个模式,降低/提高学习速度等等),而且从未训练过理想的玩家(它永远不会丢失与随机相比).NN代理对抗随机播放器的最好例子之一是:

(第一场比赛:胜利,平局,输球),(第二场比赛:胜利,平局,输球),(总和:胜利,平局,输球)
(191,34,275),(159,102,239),( 350,136,514) - 新网
(427,21,52),(312,16,172),(739,37,224) - 经过+ 50k比赛

输入是18个神经元格式:
每个电路板单元组(1,0)表示x,(0,0)表示空单元,(0,1)表示o.输出是在-1,1范围内的一个单位赢/输概率估计.

Tic tac toe仅测试沙盒,当我成功完成它时,我将转向更复杂的纸牌游戏("失落的城市").

artificial-intelligence reinforcement-learning neural-network

3
推荐指数
1
解决办法
1276
查看次数