编写一个“密室寻宝”算法(以下简称算法),这个算法能够对给定的地图求得一个路径,使得通过该路径可以得到的物品总价值最大。 算法能够获取的信息有 地图的大小。 路径长度的最大值。 地图上每个坐标处的信息。
上传时间: 2017-05-04
上传用户:wmwai1314
其中的usb端口通信已经作为一个模块来使用,用户只需用以下函数就可以对usb端口进行方便地读写: unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len, unsigned char * buf) 此为usb端点输出函数,endp是要进行通信的端点,取值为3(普通端点,最大可一次传输16byte)或5(主端点,最大可一次传输64byte);len为一次输出数据长度;*buf为数据所在位置。 usb端点数据的读操作是由底层函数自动完成的(相关函数为unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf); 相应端点为2和4),所读到的数据存于GenEpBuf[](普通端点)、MainEpBuf[]或EpBuf[](主端点)中,用户可以直接读取使用。
上传时间: 2013-11-30
上传用户:jennyzai
本代码为编码开关代码,编码开关也就是数字音响中的 360度旋转的数字音量以及显示器上用的(单键飞梭开 关)等类似鼠标滚轮的手动计数输入设备。 我使用的编码开关为5个引脚的,其中2个引脚为按下 转轮开关(也就相当于鼠标中键)。另外3个引脚用来 检测旋转方向以及旋转步数的检测端。引脚分别为a,b,c b接地a,c分别接到P2.0和P2.1口并分别接两个10K上拉 电阻,并且a,c需要分别对地接一个104的电容,否则 因为编码开关的触点抖动会引起轻微误动作。本程序不 使用定时器,不占用中断,不使用延时代码,并对每个 细分步数进行判断,避免一切误动作,性能超级稳定。 我使用的编码器是APLS的EC11B可以参照附件的时序图 编码器控制流水灯最能说明问题,下面是以一段流水 灯来演示。
上传时间: 2017-07-03
上传用户:gaojiao1999
将一个数进行阶乘结果会是一个很大的数,在c语言里double型也最大只能存一个两位数的整数的阶乘。本算法是对大数进行阶乘计算。
标签:
上传时间: 2013-12-15
上传用户:ggwz258
【问题描述】 在一个N*N的点阵中,如N=4,你现在站在(1,1),出口在(4,4)。你可以通过上、下、左、右四种移动方法,在迷宫内行走,但是同一个位置不可以访问两次,亦不可以越界。表格最上面的一行加黑数字A[1..4]分别表示迷宫第I列中需要访问并仅可以访问的格子数。右边一行加下划线数字B[1..4]则表示迷宫第I行需要访问并仅可以访问的格子数。如图中带括号红色数字就是一条符合条件的路线。 给定N,A[1..N] B[1..N]。输出一条符合条件的路线,若无解,输出NO ANSWER。(使用U,D,L,R分别表示上、下、左、右。) 2 2 1 2 (4,4) 1 (2,3) (3,3) (4,3) 3 (1,2) (2,2) 2 (1,1) 1 【输入格式】 第一行是数m (n < 6 )。第二行有n个数,表示a[1]..a[n]。第三行有n个数,表示b[1]..b[n]。 【输出格式】 仅有一行。若有解则输出一条可行路线,否则输出“NO ANSWER”。
标签: 点阵
上传时间: 2014-06-21
上传用户:llandlu
一个的文本分割程序,采用了改变的最大长度切分结合统计分词方法。
上传时间: 2014-01-04
上传用户:woshiayin
实现了蚁群算法求解TSP问题。注释详细 function[R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(C,NC_max,m,Alpha,Beta,Rho,Q) ------------------------------------------------------------------------- 主要符号说明 C n个城市的坐标,n×2的矩阵 NC_max最大迭代次数 m蚂蚁个数 Alpha表征信息素重要程度的参数 Beta表征启发式因子重要程度的参数 Rho信息素蒸发系数 Q信息素增加强度系数 R_best各代最佳路线 L_best各代最佳路线的长度 =========================================================================
标签: Shortest_Length Shortest_Route function R_best
上传时间: 2014-01-17
上传用户:lunshaomo
tsp问题的群蚁算法实现,其中c为测试矩阵,代表各点的相对坐标,NC_max 最大迭代次数 ,m蚂蚁个数,Alpha 表征信息素重要程度的参数,Beta 表征启发式因子重要程度的参数,Rho 信息素蒸发系数,Q 信息素增加强度系数,R_best 各代最佳路线,L_best 各代最佳路线的长度,运行后得到最佳路线和收敛曲线
上传时间: 2013-12-27
上传用户:ippler8
遗传算法为群体优化算法,也就是从多个初始解开始进行优化,每个解称为一个染色体,各染色体之间通过竞争、合作、单独变异,不断进化。 优化时先要将实际问题转换到遗传空间,就是把实际问题的解用染色体表示,称为编码,反过程为解码,因为优化后要进行评价,所以要返回问题空间,故要进行解码。SGA采用二进制编码,染色体就是二进制位串,每一位可称为一个基因;解码时应注意将染色体解码到问题可行域内。 遗传算法模拟“适者生存,优胜劣汰”的进化机制,染色体适应生存环境的能力用适应度函数衡量。对于优化问题,适应度函数由目标函数变换而来。一般遗传算法求解最大值问题,如果是最小值问题,则通过取倒数或者加负号处理。SGA要求适应度函数>0,对于<0的问题,要通过加一个足够大的正数来解决。这样,适应度函数值大的染色体生存能力强。 遗传算法有三个进化算子:选择(复制)、交叉和变异。 SGA中,选择采用轮盘赌方法,也就是将染色体分布在一个圆盘上,每个染色体占据一定的扇形区域,扇形区域的面积大小和染色体的适应度大小成正比。如果轮盘中心装一个可以转动的指针的话,旋转指针,指针停下来时会指向某一个区域,则该区域对应的染色体被选中。显然适应度高的染色体由于所占的扇形区域大,因此被选中的几率高,可能被选中多次,而适应度低的可能一次也选不中,从而被淘汰。算法实现时采用随机数方法,先将每个染色体的适应度除以所有染色体适应度的和,再累加,使他们根据适应度的大小分布于0-1之间,适应度大的占的区域大,然后随机生成一个0-1之间的随机数,随机数落到哪个区域,对应的染色体就被选中。重复操作,选出群体规模规定数目的染色体。这个操作就是“优胜劣汰,适者生存”,但没有产生新个体。 交叉模拟有性繁殖,由两个染色体共同作用产生后代,SGA采用单点交叉。由于SGA为二进制编码,所以染色体为二进制位串,随机生成一个小于位串长度的随机整数,交换两个染色体该点后的那部分位串。参与交叉的染色体是轮盘赌选出来的个体,并且还要根据选择概率来确定是否进行交叉(生成0-1之间随机数,看随机数是否小于规定的交叉概率),否则直接进入变异操作。这个操作是产生新个体的主要方法,不过基因都来自父辈个体。 变异采用位点变异,对于二进制位串,0变为1,1变为0就是变异。采用概率确定变异位,对每一位生成一个0-1之间的随机数,看是否小于规定的变异概率,小于的变异,否则保持原状。这个操作能够使个体不同于父辈而具有自己独立的特征基因,主要用于跳出局部极值。 遗传算法认为生物由低级到高级进化,后代比前一代强,但实际操作中可能有退化现象,所以采用最佳个体保留法,也就是曾经出现的最好个体,一定要保证生存下来,使后代至少不差于前一代。大致有两种类型,一种是把出现的最优个体单独保存,最后输出,不影响原来的进化过程;一种是将最优个体保存入子群,也进行选择、交叉、变异,这样能充分利用模式,但也可能导致过早收敛。 由于是基本遗传算法,所以优化能力一般,解决简单问题尚可,高维、复杂问题就需要进行改进了。 下面为代码。函数最大值为3905.9262,此时两个参数均为-2.0480,有时会出现局部极值,此时一个参数为-2.0480,一个为2.0480。算法中变异概率pm=0.05,交叉概率pc=0.8。如果不采用最优模式保留,结果会更丰富些,也就是算法最后不一定收敛于极值点,当然局部收敛现象也会有所减少,但最终寻得的解不一定是本次执行中曾找到过的最好解。
标签: 遗传算法
上传时间: 2015-06-04
上传用户:芃溱溱123
健康是全部是去加空姐大你们 好好地 还i 啊喝水都会 啊积极扩大 阿含经 阿霍德 哈吉 大家卡卡 奥 啊
标签: 餐饮
上传时间: 2015-11-05
上传用户:huxin