360笔试题2013 (牧师和野人)

【人工智能】传教士和野人问题(M-C问题) 摘要 本题需要解决的是一般情况下的传教士和野人问题(M-C问题)。通过对问题的一般化,我们用一个三元组定义了问题的状态空间,并根据约束条件制定了一系列的操作规则,最后通过两个启发式函数,来优化搜索过程,并通过讨论,探究两个函数是否能够求解到最优解。导言 有N个传教士和N个野人来到河边渡河,河岸有一条船,每次至多可供k人乘渡。问传教士为了安全起见,应如何规划摆渡方案,使得任何时刻,河两岸以 阅读详情

原文:http://blog.youkuaiyun.com/huangxy10/article/details/8066408


编程题、传教士人数M,野人C,M≥C,开始都在岸左边,
①船只能载两人,传教士和野人都会划船,当然必须有人划船
②两岸边保证野人人数不能大于传教士人数   
把所有人都送过河,设计一方案,要求编程实现。 


思路:

深度搜索。

状态:左岸和右岸的人数+船的位置。

每一个状态下,会有5种状态可以转移,

即:

1,运送2个传教士到对岸;

2,运送2个野人到对岸;

3,运送1个传教士到对岸;

4,运送1个野人到对岸;

5,运送1个传教士和一个野人到对岸。


从初始状态开始搜,搜索这五种情况,

进入下一状态,判断该状态是否满足条件,

即两岸野人的个数是否比该岸的传教士多,

如果满足条件,则继续搜索该状态下的五种情况。

深度搜索下去,直到找到最后的解。


注意:

1,如果搜索的状态在之前已经出现过了,就不深入下去了,

否则会出现死循环,比如运两个野人过去,再运回来,状态复原了,

如果一直这么搜下去,就没玩没了了。

2,状态包括船的信息,如果两边的人数都是一样,但是船的位置不一样,

那么这是两种状态。

3,要搜索的目标状态是人都在对岸且船在对岸。


PS:

当M=C>3时,没有解。

当M>C时,有解。


  1. #include <iostream>  
  2. #include <vector>  
  3. #include <string>  
  4. #include <stdio.h>  
  5. using namespace std;  
  6.   
  7. bool flag = true; //true:表示在右岸  
  8. vector<string> visit; //记录已经访问过的状态  
  9.   
  10. bool dfs( int M, int C, int m, int c){  
  11.     if( M<0||C<0||m<0||c<0)   //非法  
  12.         return false;  
  13.     if( (M&&C>M) ||(m&&c>m))   //野人会吃牧师  
  14.         return false;  
  15.       
  16.     if( flag&&M==0&&C==0 ||(!flag&&m==0&&c==0))  //全部运输过去  
  17.         return true;  
  18.   
  19.     //检查该节点是否出现过  
  20.     char s[30];  
  21.     if( !flag )  
  22.         sprintf( s, "M=%d,C=%d,m=%d,c=%d,boat=left", M,C,m,c);  
  23.     else  
  24.         sprintf( s, "M=%d,C=%d,m=%d,c=%d,boat=right", m,c,M,C);  
  25.     string str(s);  
  26.     for( int i=0; i<visit.size(); i++)  
  27.         if( visit[i]==str)                     //该状态已经搜索过了  
  28.             return false;  
  29.   
  30.     visit.push_back(str);  
  31.     flag = !flag;  
  32.     if( dfs( m+2, c, M-2,C) ){  
  33.         printf("2,0\n");  
  34.         printf("%s\n",s);  
  35.         return true;  
  36.     }  
  37.     else if( dfs( m, c+2, M, C-2) ){  
  38.         printf("0,2\n");  
  39.         printf("%s\n",s);  
  40.         return true;  
  41.     }  
  42.     else if( dfs( m+1, c+1, M-1, C-1) ){  
  43.         printf("1,1\n");  
  44.         printf("%s\n",s);  
  45.         return true;  
  46.     }  
  47.     else if( dfs( m+1, c, M-1, C)){  
  48.         printf("1,0\n");  
  49.         printf("%s\n",s);  
  50.         return true;  
  51.     }  
  52.     else if( dfs( m, c+1, M, C-1)){  
  53.         printf("0,1\n");  
  54.         printf("%s\n",s);  
  55.         return true;  
  56.     }  
  57.     flag = !flag;  
  58.     visit.pop_back();  
  59.     return false;  
  60. }  
  61.   
  62. int main(){  
  63.     char s[30];  
  64.     int M=6,C=6,m=0,c=0;  
  65.     sprintf( s, "M=%d,C=%d,m=%d,c=%d,boat=left", M,C,m,c);  
  66.     printf("%s\n",s);  
  67.     if(!dfs(M,C,0,0))  
  68.         cout << "Can not find the solution."<<endl;  
  69.     return 0;  
  70. }  
传教士与野人过河问题(numpy、pandas) 传教士与野人过河问题(numpy、pandas) 可自定义输入 有完整代码 A*算法 阅读详情

相关推荐

野人与传教士——宽度优先搜索(完整报告,含全部代码)

野人与传教士渡河问题:3个野人与3个传教士打算乘一条船到对岸去,该船一次最多能运2个人,在任何时候野人人数超过传教士人数,野人就会把传教士吃掉,如何用这条船把所有人安全的送到对岸?在实现基本程序的基础上实现N个野人与N个传教士问题的所有解的求解,N由用户输入。

weixin_51854003的博客 8175

传教士和野人问题思考逻辑

野人和传教士问题求解

qq_41296039的博客 7804

离散数学:过河问题

过河问题(一)图论方法 农夫过河问题 问题描述 一个农夫带着一头狼、一头羊、一颗白菜过河。他面前只有一条船,只能容纳他和一件物品,只有农夫会划船。如果农夫不在场,狼会吃羊、羊会吃白菜,农夫在场则不会。求将所有物品运到对岸的方案。 解题思路 根据物品的位置定义状态,若在左岸记为1,右岸记为0,于是最终方案就是(1,1,1,1)-->(0,0,0,0)所经过的路径。 1、定义状态 2、列举所有状态(人、狼、羊、菜) 3、删除不合理的状态(狼和羊、羊和菜) 4、连边(模拟一次渡

smilejiasmile的博客 5970

360笔试题2013

编程题、传教士人数M,野人C,M≥C,开始都在岸左边, ①船只能载两人,传教士和野人都会划船,当然必须有人划船 ②两岸边保证野人人数不能大于传教士人数    把所有人都送过河,设计一方案,要求编程实现。  思路: 深度搜索。 状态:左岸和右岸的人数+船的位置。 每一个状态下,会有5种状态可以转移, 即: 1,运送2个传教士到对岸; 2,运送2个野人到对岸; 3,运

huangxy10的专栏 1万+

Java实现人工智能经典问题:野人传教士问题详解

野人传教士问题(也称为传教士和食人族问题)是一个经典的逻辑谜题,其核心思想是通过最少的移动次数将特定数量的传教士和野人从河的一岸安全运送到对岸。问题中包含了安全约束:任何时候,如果野人的数量超过传教士的数量(无论在船的哪一侧),野人就会吃掉传教士。为了求解野人传教士问题,首先需要定义问题的状态,并通过搜索算法逐步探索所有可能的状态。在探索过程中,适当的剪枝策略至关重要,它能显著减少搜索空间,提高搜索效率。此外,记忆化搜索可以进一步优化性能,减少不必要的重复搜索。

weixin_42561464的博客 909

传教士与野蛮人问题

用搜索算法求传教士与野蛮人问题,代码比较简洁易懂,有注释

传教士与野人过河问题(一)

代码转自http://blog.youkuaiyun.com/huangxy10/article/details/8066408 感谢 问题描述:

那日少年薄春衫、明月照银簪 1万+

传教士和野人问题(MC问题)的A*算法实现

问题:设有3个传教士和3个野人来到河边,打算乘一只船从右岸渡到左岸去。该船的负载能力为两人。在任何时候,如果野人人数超过传教士人数,那么野人就会把传教士吃掉。他们怎样才能用这条船安全地把所有人都渡过河去? 综合上述信息提取限制信息为: 1、修道士和野人都会划船,但船一次只能载2人; 2、在任何岸边,野人数不能超过修道士数,否则修道士将会被野人吃掉

食人者和传教士问题(python实现)

问题描述 当然,问题可以也拓展一下: 左岸有m个传教士,c个食人者,船上最多可以装k个乘客 反正解题思路是一样的。 解题方法 状态空间法 状态及相关量的含义表示 相关操作及使用条件 手动寻找解 代码思路 状态可以用元组表示 (m,c,b) 对状态结点展开所用到的open表和closed表,就用列表 open=[ ],closed=[ ] ...

via CHEng的博客 4689

Kindle电子书DRM破解全攻略:从下载到转换的完整流程(含最新DeDRM插件配置)

本文详细介绍了如何合法移除个人购买的Kindle电子书的DRM保护,实现跨设备阅读与备份。核心内容包括使用最新DeDRM插件(如noDRM分支)配合Calibre进行配置,并针对亚马逊最新的KFX加密格式提供了密钥提取与实战操作指南。文章强调该方法仅适用于个人合理使用,旨在帮助读者真正掌控自己的数字资产。

delta的博客 576

Echats-wordcloud 文字云图的踩坑点【Unknown series wordCloud】

一直都是报 【ECharts Unknown series wordCloud】这玩意可能要刷脸,祝你好运吧~

Sky_Bug的博客 2418

A*算法解决传教士—野人过河问题

A*算法解决传教士—野人过河问题 算法原理 1、A算法的基本原理分析; 在或图的一般搜索算法中,如果在搜索过程的步骤⑦利用估价函数f(n)=g(n)+h(n)对open表中的节点进行排序,则该搜索算法为A算法。 g(n):从初始节点到n的实际代价 因为n为当前节点,搜索已达到n点,所以g(n)可计算出。 h(n):启发函数,从n到目标节点的最佳路径的估计代价。 因为尚未找到解路径,所以h(n)仅仅是估计值。 对A算法中的g(n)和h(n)做出限制: g(n) >= g(n)(g*(n)为S0到n的最小

u013300280的博客 2万+

AI自主网络攻击技术深度解析:从LLM驱动到防御体系升级

网络安全领域正经历从自动化脚本到智能自主攻击的范式转变。其核心原理在于将大型语言模型(LLM)与自动化渗透测试框架深度融合,构建具备环境感知、决策规划和自适应能力的攻击系统。这种技术的核心价值在于实现了从预设步骤到目标驱动的质变,能自主完成信息收集、漏洞利用、横向移动等复杂攻击链。在应用场景上,它不仅能极大提升高级持续性威胁(APT)的攻击效率,也对渗透测试和红队演练技术提出了新的要求。面对此类由AI驱动的自主攻击,传统的基于签名的防御体系已显不足,必须转向以行为分析和零信任为核心的整体纵深防御。本次曝光的

weixin_34254464的博客 605

360笔试题2013:牧师(传道士)与野人过河问题

文章转自:点击打开链接。在开头写上原创是由于我觉得绿色的标题比转载的灰色标题显眼(个人爱好),如果有对原作者冒犯,在此道歉。 编程题、传教士人数M,野人C,M≥C,开始都在岸左边, ①船只能载两人,传教士和野人都会划船,当然必须有人划船 ②两岸边保证野人人数不能大于传教士人数    把所有人都送过河,设计一方案,要求编程实现。  根据以往的一些经验,比如:走楼梯问题(一次可以走一步或者两

优快云 6955

边缘AI硬件风向:从专用芯片到端侧大模型

边缘AI硬件正呈现五大发展趋势:专用AI加速芯片(如华为昇腾、谷歌EdgeTPU)凭借高能效比成为主流;端侧大模型催生支持Transformer架构的新硬件需求;存算一体技术突破内存墙限制;FPGA和可重构计算提供灵活性;异构集成与Chiplet技术实现模块化设计。这些发展需要配套软件工具链支持,未来边缘设备将演变成具备本地智能的"智能体",竞争焦点转向算力、能效、易用性和成本的多维平衡。

qq_37027335的博客 348

蓝桥杯FPGA赛道积分赛

代码如下: 按键驱动 代码如下 按键驱动 代码如下: 顶层文件 按键驱动 数码管驱动 声明:本代码借鉴网络资料,如有侵权和错误请联系作者删除。我是从寒假开始备赛的,由于我基础不行,备赛过程中也是混混呃呃的,备赛效率不高,总体来说备赛不认真,有点拖拉,但是最后我也坚持备赛到了今天,在备赛过程中,即复习了旧的东西,也学到了新的东西,总结起来还是有点收获的,后天北京、天津、河北地区就要进行省赛了,我会全力以赴,不管结果怎么样,尽力就好,最后祝大家都能

weixin_69804913的博客 1990

[360] 笔试题2012年最后一道大题

编程题、传教士人数M,野人C,M≥C,开始都在岸左边, ①船只能载两人,传教士和野人都会划船,当然必须有人划船 ②两岸边保证野人人数不能大于传教士人数    把所有人都送过河,设计一方案,要求编程实现。  思路: 深度搜索。 状态:左岸和右岸的人数+船的位置。 每一个状态下,会有5种状态可以转移, 即: 1,运送2个传教士到对岸; 2,运送2个野人到

知行天下 685

LeRobot X-VLA:首个适用于任意机器人、任意任务的软提示机器人基础模型

X-VLA是一种基于软提示的视觉-语言-动作模型,通过可学习嵌入向量编码不同机器人配置,实现跨平台统一控制。该框架采用两阶段训练:先在29万次多平台任务中学习通用策略,再通过微调少量参数(仅1%)适配新机器人。实验表明,0.9B参数的X-VLA在6个仿真和3个真实平台上表现优异,如LIBERO任务达93%成功率,布料折叠任务100%完成。其核心创新是将硬件差异视为"任务",用软提示引导Transformer处理异构数据,为机器人基础模型提供可扩展方案。

2506_90492529的博客 1241

人工智能原理实验1(2)——传教士与野人问题

python解决传教士与野人问题,附有详细运行结果解释

半岛铁盒里 1895

Java Swing教程-16. Swing中的图形绘制

这篇教程介绍了Java Swing中的图形绘制功能,主要内容包括: Graphics类的基本使用 - 介绍了如何重写paintComponent方法实现自定义绘制,以及基本图形绘制方法(线条、矩形、椭圆、多边形等) 文本与图片绘制 - 讲解了文本绘制方法、字体设置和图片加载绘制技术 颜色与字体设置 - 包括预定义颜色、RGB自定义颜色、透明色设置以及字体样式控制 案例实现 - 提供了一个简单绘图程序的框架,支持鼠标绘制不同图形、选择工具和自定义颜色等功能 教程通过代码示例详细演示了各种绘图操作,适合Java

无 233

RK3588适配Ubuntu系统

RKsdk上支持buildroot以及Debian系统,但是Ubuntu需要自己移植,有很多公司都移植好了可以直接用,这里就总结记录一下我制作Ubuntu的过程。

m0_60805802的博客 5361

传教士与食人者问题python

问题描述 在河的左岸有3个传教士、1条船和3个食人者,传教士们想用这条船将所有的成员运到河的右岸,但是受到以下条件的限制: (1)船每次最多只能装2个乘客(传教士和食人者都会划船)。 (2)在任何岸边,如果食人者数目超过传教士则传教士将被食人者吃掉。 (3)假定食人者会服从任何一种过河安排。编写宽度优先搜索算法程序,找出一个确保全部成员安全过河的解。 思路分析 采用列表status= []# 表示方式[ML, CL, MR, CR, B](左传教士、左野人、右传教士、右野人、船)来记录一次操作后的状态,参考

亮亮的博客 1760

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

传教士(牧师)与野人问题-模拟人工智能实验

目录题目:实验步骤:实现代码: 题目: 有n个牧师和n个野人准备渡河,但只有一条能容纳c个人的小船,为了防止野人侵犯牧师,要求无论在何处,牧师的人数不得少于野人的人数(除非牧师人数为0),且假定野人与牧师都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出小船来回次数最少的最佳方案。 实验步骤: 输入:牧师人数(即野人人数):n;小船一次最多载人量:c。 输出:若问题无解,则显示Failed,否则,显示Successed输出所有可行方案,并标注哪一组是最佳方案。用三元组(X1, X2, X3)表示渡

结缘缘的博客 4444

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 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")

上一篇: gdb调试
下一篇: sscanf函数与sscanf_s函数
labrary
博客等级 码龄15年 8粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值