博弈论SG函数

【博弈论】势博弈(potential game)、EPG以及最佳响应、Nash均衡和帕累托(pareto)最优的理解 文章目录前言一、Potential game二、Nash均衡和Pareto-optimal(帕累托最优)1.Nash 均衡2.Pareto最优三、Best response(最佳响应)四、Exact potential game(EPG)1.合作-傀儡博弈2.合作博弈3.傀儡博弈4.自激博弈5.双边对称交互博弈使用理解 前言 本文主要详细讲解potential game的概念以及Exact potential game 的定义和分类,以及这么博弈方法是如何在论文中引入并使用的,本文仅是对自己在该模块 阅读详情

参考:
http://www.cnblogs.com/ECJTUACM-873284962/p/6398385.html
http://www.cnblogs.com/ECJTUACM-873284962/p/6921829.html

巴什博奕

只有一堆石子,每个人可以从里面取1~m个石子,先取光者胜。

当 n = m + 1 n = m+1 n=m+1先手必败,因为先手无论选什么,都会使其个数小于m。

因此可以推出更一般的情况:
n = k ∗ ( m + 1 ) n = k*(m+1) n=k∗(m+1)先手必败,因为后手总能构造出 n = t ∗ ( m + 1 )   t &lt; k n = t*(m+1) \ t &lt; k n=t∗(m+1) t<k的情况。

总结: 只要能构造出两个可以相互转换的状态便可得出答案。(必胜态,必败态)。

尼姆博弈

有n推石子,每堆有$m_i$个石子,每次可以取在一堆中取任意个石子。

学着巴什博奕做,构造两个可以相互转换的状态。

把每堆石子的总个数用二进制的形式相加。每位都不进位。
例如:
1 2 3
001
010
011

= 022

因为每次都只能在一堆石子上操作,所以对于每一位,每次只能减1或者不变。可以观察出,当所有位都为偶数的时候(偶状态),先手必败,当有一位为奇数(奇状态)的时候先手必胜。

因为总能从一个奇状态转变为一个偶状态。反之,也能从一个偶状态转变为奇状态。 但无法保持当前状态不变。

考虑异或,当一位出现偶数个时,其贡献为0,否则为1。
所以可以将每一堆的个数都异或起来,如果异或和!=0,则先手胜,否则先手败。

有n推石子,每堆石子的个数分别为1,2,3,4,....,n,每次可以取在一堆中取任意个石子。n特别大。

因为n特别的大,所以没法直接对其异或。 但是连续正整数的异或是有规律的。
f[l,r]: [ l , r ] [l,r] [l,r]的异或和
推论1: f [ 0 , 2 k − 1 ] = 0 , 2 ≤ k f[0,2^k-1]=0, 2 \leq k f[0,2k−1]=0,2≤k
XJB证明: 二进制的每一位上都有 2 k − 1 2^{k-1} 2k−1个1。

求 f [ 0 , n ] f[0,n] f[0,n]。

  1. n为奇数
    f [ 0 , n ] = f [ 0 , 2 t − 1 ] ⊕ f [ 2 t , n ] = f [ 2 t , n ] f[0,n] = f[0,2^{t}-1] \oplus f[2^t,n] =f[2^t,n] f[0,n]=f[0,2t−1]⊕f[2t,n]=f[2t,n]。
    这个区间有 m = n − 2 t + 1 m = n-2^t+1 m=n−2t+1个数,m为偶数,所以对于二进制第t位1的个数和一定为偶数,可以不用考虑。转变为:
    f [ 2 t , n ] = f [ 0 , n − 2 t ] f[2^t,n] = f[0,n-2^t] f[2t,n]=f[0,n−2t]
    因为n为奇数, 2 t 2^t 2t一定为偶数。所以 n − 2 t n-2^t n−2t是一个奇数,所以可以不断缩小n。
    f [ 0 , n ] = f [ 0 , n − 2 t ] = f [ 0 , n − 2 t − k 1 ∗ 2 t − 1 − k 2 ∗ 2 t − 2 ⋯ − k i ∗ 2 ] ( 2 ≤ t ) 。 = f [ 0 , p ] ( p ≤ 3 ) f[0,n] = f[0,n-2^t] = f[0,n-2^t-k_1*2^{t-1}-k_2*2^{t-2} \dots -k_i*2](2 \leq t)。= f[0,p](p\leq3) f[0,n]=f[0,n−2t]=f[0,n−2t−k1​∗2t−1−k2​∗2t−2⋯−ki​∗2](2≤t)。=f[0,p](p≤3), k i k_i ki​代表这一位是否有值。
    因为t要大于等于2,所以只要单独考虑最后两位的情况。
    n&3 = 1 (01) 时, f [ 0 , n ] = f [ 0 , 1 ] = 1 f[0,n]=f[0,1] = 1 f[0,n]=f[0,1]=1 先手胜
    n&3 = 3 (11) 时, f [ 0 , n ] = f [ 0 , 3 ] = 0 f[0,n]=f[0,3] = 0 f[0,n]=f[0,3]=0 先手败

  2. n为偶数
    f [ 0 , n ] = f [ 0 , 2 t − 1 ] ⊕ f [ 2 t , n ] = f [ 2 t , n ] f[0,n] = f[0,2^t-1] \oplus f[2^t,n]=f[2^t,n] f[0,n]=f[0,2t−1]⊕f[2t,n]=f[2t,n]
    m = n − 2 t + 1 m=n-2^t+1 m=n−2t+1为奇数, f [ 2 t , n ] = f [ 0 , n − 2 t ] ⊕ 2 t f[2^t,n]=f[0,n-2^t]\oplus2^t f[2t,n]=f[0,n−2t]⊕2t。
    n − 2 t n-2^t n−2t还是偶数,依旧可以缩小n
    f [ 0 , n ] = f [ 0 , n − 2 t − k 1 ∗ 2 t − 1 − ⋯ − k i ∗ 2 ] ⊕ 2 t ⊕ k 1 ∗ 2 t − 1 ⋯ ⊕ k i ∗ 2 f[0,n] = f[0,n-2^t-k_1*2^{t-1}-\dots-k_i*2]\oplus2^t\oplus k_1*2^{t-1}\dots \oplus k_i*2 f[0,n]=f[0,n−2t−k1​∗2t−1−⋯−ki​∗2]⊕2t⊕k1​∗2t−1⋯⊕ki​∗2
    后面的常数项异或和就是n,
    n&3 只有2或者0
    n&3 = 2(10)时, f [ 0 , n ] = n + f [ 0 , 2 ] = n + 1 f[0,n]=n+f[0,2] = n+1 f[0,n]=n+f[0,2]=n+1
    n&3 = 0(00)时, f [ 0 , n ] n + f [ 0 , 0 ] = n f[0,n]n+f[0,0] = n f[0,n]n+f[0,0]=n

SG函数

定义mex{S}运算: 不在集合S中最小的非负整数。
例如: mex{0,2,3,4}=1,mex{1,2,3,4}=0。

对于任意状态x, S G ( x ) = m e x { S } SG(x) = mex\{S\} SG(x)=mex{S},S是x后继状态SG函数值的集合。
若x的后继三个SG函数值为 S G ( a ) , S G ( b ) , S G ( c ) SG(a),SG(b),SG(c) SG(a),SG(b),SG(c),那么 S G ( x ) = m e x { S G ( a ) , S G ( b ) , S G ( c ) } SG(x) = mex\{ SG(a), SG(b), SG(c) \} SG(x)=mex{SG(a),SG(b),SG(c)}。

当x时终态时,后继状态为空, S G ( x ) = 0 SG(x) = 0 SG(x)=0,即为必败态。

有1堆n个的石子,每次只能取{ 1, 3, 4 }个石子,先取完石子者胜利,
那么各个数的SG值为多少?

SG(0) = 0, f[ ] = {1,3,4}

x = 1时,可取1个,剩余0个,SG(1) = mex{ SG(0) } = 1。
x = 2时,可取1个,剩余1个,SG(2) = mex{ SG(1) } = 0。
x = 3时,可取1个或3个,剩余2个或0个,SG(3) = mex{ SG(2), SG(0) } = 1。
x = 4时,可取1,3,4,剩余3,1,0,SG(4) = mex{ SG(3), SG(1), SG(0) } = 2。

可以发现,SG函数可以从小到大递推而来。

由上述实例我们就可以得到SG函数值求解步骤,那么计算1~n的SG函数值步骤如下:

  1. 使用 数组f 将 可改变当前状态 的方式记录下来。

  2. 然后我们使用 另一个数组 将当前状态x 的后继状态标记。

  3. 最后模拟mex运算,也就是我们在标记值中 搜索 未被标记值 的最小值,将其赋值给SG(x)。

  4. 我们不断的重复 2 - 3 的步骤,就完成了 计算1~n 的函数值。

一个游戏可以分解成两个子游戏a,b,那么即后继的状态为SG[a]^SG[b]的值

博弈论 sg函数 对于一个给定的组合游戏,其sg函数G(n)是一个非负整数,用于表示游戏位置n的"输赢状态";两个游戏位置的sg函数值相同,意味着从这两个位置开始,对于任何一个玩家来说,都存在相同的赢或输的策略。 阅读详情

相关推荐

博弈论 随记(SG函数)

博弈论 随记 博弈论 1. 简单博弈     正推/反推。纸上画画直观图(ven图,条形图等),找必胜区间和必败区间。一般此类问题都有同余的必胜点。 HDU4764 /**/ 2. Nim游戏     有若干堆石子,每堆石子的数量ai都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此

Strangedbly 5877

【博弈论】博弈论入门笔记(四类基础博弈+SG函数)

『博弈论定义』 博弈论又被称为对策论(Game Theory):是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论。博弈论是研究互动决策的理论。博弈可以分析自己与对手的利弊关系,从而确立自己在博弈中的优势,因此有不少博弈理论,可以帮助对弈者分析局势,从而采取相应策略,最终达到取胜的目的。 --------------------- 资料参考来自:http://...

Miserable_ccf的博客 4213

HDU 1848 浅谈组合游戏博弈论及SG函数MEX推导SG定理

世界真的很大 今天考试考了博弈论,发现对于博弈论除了原版的nim游戏之外就什么都不会了 对于作为其基础的SG函数及定理也是完全不了解,这样是不得行的 要通过不断地刷题,总结,得出一套博弈论的题的做题思路才好 看题先:description:任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; F(2)=2; F(n)=F(n

BerryKanry的博客 2169

博弈-sg函数的原理和优化(hdu-1536)

sg函数:sg函数是博弈中的确定一个position性质的一个函数,全称是sprague-grundy。 性质1:对于所有的p-position,都有sg = 0;对于所有的n-position都有sg != 0; 性质2:某点a的sg函数的值由它的后继的sg函数的值来决定,设后继为b, c, d, e……则sg(a) = mex(sg(a), sg(b), sg(c), sg(d), sg(

shuimu12345678的专栏 2830

博弈论 | 详解搞定组合博弈问题的SG函数

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天这篇是算法与数据结构专题的第27篇文章,我们继续深入博弈论问题。今天我们要介绍博弈论当中非常重要的一个定理和函数,通过它我们可以解决许多看起来杂乱无章的博弈问题,使得我们可以轻松地解决一大类博弈问题。 有了SG函数和SG定理,我们不再是单纯地通过构思、分析和找规律去解决问题了。并且我们之前学过的巴什博奕、威佐夫博弈以及Nim博弈都可以使用SG函数来解决,相当于我们找到了这一大类问题的通解。下面,我们来看几个基本定理和基本概念。 基本定理

TechFlow的博客 847

[USACO2023-JAN-Bronze] T2 Air Cownditioning II 题解

[USACO2023-JAN-Bronze] T2 Air Cownditioning II题解

1652

博弈论学习笔记

巴氏博弈eg:hdu2149,2156描述:只有一堆n个石子,每次能取1到m个物品,A先手,问谁能先取完石子思路:这种问题的关键就在于能否取到关键点,比如,这里只能能取到倒数m+2个石子,留下m+1个石子,则后者就必败。结论:如果初始石子是(m+1)的倍数,则先手必败,否则先手必胜。威佐夫博弈eg:hdu2177,hdu5754描述:有两堆物品,每堆都有若干物品。每次可以从一堆中取任意物品,也可以从

lyc1635566ty的博客 508

U盘安装单系统ubuntu10.04之全过程&拔掉U盘后系统无法启动

借助U盘把电脑装成ubuntu单系统之过程记录,以及遇到拔掉U盘后系统无法启动问题,电脑就显示: Non-System disk or disk error, replace and strike any key when ready

CXHPLY的专栏 8677

博弈论术语

博弈论四种博弈类型 完全信息情况下的静态博弈, 完全信息情况下的动态博弈, 不完全信息静态博弈, 不完全信息动态博弈 那什均衡 一套策略,每个玩家一个,没有玩家可以通过单方面改变策略来提高收益 子博弈 混合策略 在完全信息博弈中,如果在每个给定信息下,只能选择一种特定策略,这个策略为纯策略(pure strategy)。如果在每个给定信息下只以某种概率选择不同策略,称为混合策略(mixed s...

qq_37941474的博客 4813

打开LWIP_DEBUG的打印信息调试

在lwip 2.1.2的版本,打开的debug 调试的步骤: 1.在debug.h 文件中找到debug打印的定义 默认LWIP_DEBUG这个宏没有定义, 2.在lwipopt.h 文件中或者其他文件定义 一下LWIP_DEBUG这个宏, 3.在opt.h 中可以打开各种宏的调试信息, /* --------------------------------------- ---------- Debugging options ---------- ---------...

haidscs的博客 9878

FPGA实现电机转速PID控制

通过纯RTL实现电机转速PID控制,包括电机编码器值读取,电机速度、正反转控制,PID算法,卡尔曼滤波,最终实现对电机速度进行控制,使其能够渐近设定的编码器目标值。

STATEABC的博客 7479

2.18博弈论SG函数

总结来说,SG为0表示当前局面是一个必败态,而非0的SG值表示当前局面是一个必胜态。这是根据博弈论中SG函数的定义和理论推导得出的。自己走的是SG不为0的点,那么对手就必须从这个点开始往下继续走了,而不能重复了必败态的后继状态要么没有,即最底层,要么就是必胜态,因为不能连续走两步,必胜的后面必然是必败;同理,必胜的后面至少得有一个必败态,如果后面都是必胜态的话,那么此时为必败态就是底层叶子结点表示结尾,一定是必败态,往上紧邻的一定是必胜态。

m0_73553411的博客 2712

Ubuntu22.04下3分钟搞定GitHub加速:SwitchHosts+小鱼工具保姆级配置指南

本文提供Ubuntu22.04下快速解决GitHub下载超时问题的保姆级教程,通过SwitchHosts图形化工具和小鱼一键换源工具实现高效加速。详细步骤包括环境准备、工具安装配置及验证方法,帮助开发者轻松优化GitHub访问速度,提升工作效率。

weixin_29258297的博客 564

博弈论-SG函数和SG定理

1.SG函数和SG定理是一个十分神奇的东西,有了它,绝大部分的博弈都可以被统一到这个上面,都可以使用SG函数解决。是一种解决博弈问题的十分方便的手段。 2.首先给出一些基本的定义:mex运算,这个是作用在集合上的运算,具体的含义就是:找出不属于当前集合最小的非负整数,可能你有点晕,我们看几个例子。mex{1,2,3}=0;为什么?因为自然数从0开始,不属于这个集合最小的非负整数就是0了,再例如m...

YG爱木木 3568

麒麟V10服务器多硬盘安装与分区实战:告别自动分区,手动分配/boot、swap和/根目录

本文详细介绍了麒麟V10服务器在多硬盘环境下的手动分区策略,包括/boot、swap和/根目录的优化分配方案。通过SSD与HDD混合存储架构的合理规划,提升系统性能和运维效率,适用于企业级定制化系统部署需求。

weixin_26976635的博客 406

Android Audio录音——AudioRecord回声消除(九)

在语音通话或录音场景中,回声(Acoustic Echo)通常是指说话的声音从对方的扬声器播放出来,又被对方的麦克风拾取,然后有被传回来,导致我们听到了自己延迟了一段时间的重复声音。

小旭的专栏 1403

博弈论之SG函数

下面的所有知识均属博弈论范畴。 SG⁡\operatorname{SG}SG 函数 Nim⁡\operatorname{Nim}Nim 博弈 在介绍 SG⁡\operatorname{SG}SG 函数前,我们先介绍一种经典的博弈——Nim⁡\operatorname{Nim}Nim 博弈,并从中获得一定的启发。 问题:有 nnn 堆石子,第 iii 堆石子里面有 AiA_iAi​ 枚石子,每人每次可从任意且至多一堆石子里取出任意多枚石子扔掉,可以取完,不能不取,最后无石子可取的人判负。假如甲是先手,且

Recalling_Clouds的博客 1207

深度学习笔记——Transformer

本文详细介绍面试过程中可能遇到的Transformer知识点。

haopinglianlian的博客 1703

博弈论——SG函数

有向图游戏,SG函数,SG定理

m0_73693552的博客 503

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

博弈论详解 2(SG函数 和 SG定理)

博弈论详解后续,对通用的必胜策略和必胜条件进行分析,深入了解博弈论

2401_84512298的博客 2574

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

博弈论之sg函数

对于双堆的Nim游戏,设sg(n,m)表示剩余石子数分别为n和m的状态的sg值,则sg(0,0)=0,并且sg(n,0)=sg(0,n)=n。我们发现sg(1,1)=0,而sg(1,2)=sg(2,1)=1,sg(2,2)=0……继续探索可以猜测,当n=m时,sg(n,m)=0,否则sg(n,m)≠0。设sg(m)表示剩余石子数为m的状态的sg值,则显然sg(0)=0,那么sg(1)=1,sg(2)=2……归纳可证sg(n)=n。

imlsp12356的博客 1156

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

博弈论-SG函数

学习博弈论不得不提一哈SG函数 关于SG函数的一些概念就不多说了 说下我自己的理解 SG函数记录为0的是P状态 不为0记录的是N状态 也是相当于有个周期再循环 P N状态轮番出现 SG模板 #include<iostream> #include<cstring> #include<algorithm> #define maxn 1000 using nam...

Stydwn的博客 641

博弈论与SG函数

巴什博奕: 两个顶尖聪明的人在玩游戏,有n个石子,每人可以随便拿1−m个石子,不能拿的人为败者,问谁会胜利 结论: 设当前的石子数为\(n=k∗(m+1)\)即\(n%(m+1)==0\)时先手一定失败 HDU1846 #include<iostream> using namespace std; int main() { int C,N,M; scanf("...

agtvo48266的专栏 182

sg函数(博弈论)

sg函数

m0_50597984的博客 703
上一篇: 扩展欧几里得算法求解不定方程||中国剩余定理
下一篇: 【2019 南昌邀请赛 Match Stick Game】 火柴dp
Link_Ray
博客等级 码龄9年 44粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值