-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsearch.xml
More file actions
36 lines (36 loc) · 4.61 KB
/
search.xml
File metadata and controls
36 lines (36 loc) · 4.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title><![CDATA[数学基础知识摘要]]></title>
<url>%2F%E4%B8%80%E4%BA%9B%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.html</url>
<content type="text"><![CDATA[ 最近在看郑捷的《机器学习算法原理与编程实践》,觉得第一章写的一些数学知识非常有用,于是将其中部分摘录下来,方便查看 数学基础知识摘要.pdf]]></content>
<categories>
<category>Basic material</category>
</categories>
<tags>
<tag>数学</tag>
</tags>
</entry>
<entry>
<title><![CDATA[解决Matlab(R2016a) Sheffield GATBX遗传工具箱的一些问题]]></title>
<url>%2F%E8%A7%A3%E5%86%B3Matlab-R2016a-Sheffield-GATBX%E9%81%97%E4%BC%A0%E5%B7%A5%E5%85%B7%E7%AE%B1%E7%9A%84%E4%B8%80%E4%BA%9B%E9%97%AE%E9%A2%98.html</url>
<content type="text"><![CDATA[简介:学习遗传算法并用Matlab实现算法的时候碰到了如下问题: 解决办法:Google了一下解决办法,就是说Matlab自带的Toolbox里面的是GA(另一个),所以我们用的gadst没用balabala…然后呢,当然就是去下载Sheffield的GATBX工具箱咯。然而,下好再配置好后测试一下,又报错: 打开文件夹看看: 纳尼 ????WTF!!!!!!! 虽然Matlab给出了解决办法(要更改文件扩展名,请将目录改变为文件的文件夹,键入: movefile crtbp.M crtbp.m_bad; movefile crtbp.m_bad crtbp.m,然后改变目录返回。),但是这么多文件怎么改呢??好吧,我直接给改好后的文件吧。重新添加一下路径,然后让我们来测试一下吧! 目标是求 y = x.cos(5pi*x) + 3.5 在[-1,2.5]区间上的最大值。 目标函数文件: fun_sigv.m1234% filename: fun_sigv.mfunction y = fun_sigv(x)y = x.*cos(5*pi*x) + 3.5;end 算法实现脚本文件:yichuan.m1234567891011121314151617181920212223242526272829303132333435363738394041% filename: yichuan.m% 遗传算法的测试opt_minmax = 1; %目标优化类型:1 最大化, -1最小化num_ppu = 50; %种群规模:个体个数num_gen = 60; %最大遗传代数len_ch = 20; %基因长度gap = 0.9; % 代沟sub = -1; %变量取值下限up = 2.5; %变量取值上限cd_gray = 1; % 是否选择格雷编码方式: 1 是; 0 否sc_log = 0; % 是否选择对数标度: 1 是; 0 否trace = zeros(num_gen, 2); % 遗传迭代性能跟踪器fieldd = [len_ch; sub; up; 1-cd_gray; sc_log; 1; 1]; %区域描述器chrom = crtbp(num_ppu, len_ch); % 初始化生成种群k_gen = 0;x = bs2rv(chrom, fieldd); % 翻译初始化种群为十进制fun_v = fun_sigv(x); % 计算目标函数值tx = sub:.01:up;plot(tx, fun_sigv(tx)), xlabel('x'), ylabel('y'), title('一元函数优化结果'), hold on;while k_gen < num_gen fit_v = ranking(-opt_minmax*fun_v); % 计算目标函数的适应度(基于秩的适应度计算) selchrom = select('rws', chrom, fit_v, gap); % 使用轮盘赌方式选择 selchrom = recombin('xovsp', selchrom); % 交叉(单点交叉) selchrom = mut(selchrom); % 变异(离散变异) x = bs2rv(selchrom, fieldd); % 子代个体翻译 fun_v_sel = fun_sigv(x); % 计算子代个体对应目标函数值 [chrom, fun_v] = reins(chrom, selchrom, 1, 1, opt_minmax*fun_v,... opt_minmax*fun_v_sel); % 根据目标函数值将子代个体插入新群种 [f, id] = max(fun_v); % 寻找当前种群最优解 x = bs2rv(chrom, fieldd); %二进制串到实值的转换 f = f* opt_minmax; fun_v = fun_v * opt_minmax; k_gen = k_gen + 1; trace(k_gen, 1) = f; % 矩阵的秩,即对角元素之和 trace(k_gen, 2) = mean(fun_v);endplot(x(id), f, 'r*'), figure, plot(trace(:, 1), 'r-*'), hold on;plot(trace(:, 2), 'b-o'), legend('各子代种群最优解', '各子代种群平均值'),... xlabel('迭代次数'), ylabel('目标函数优化情况'), title('一元函数优化过程'); 在命令行里面输入yichuan.m,就会出现结果: 问题终于解决了!]]></content>
<categories>
<category>Matlab</category>
</categories>
<tags>
<tag>Problem fixing</tag>
</tags>
</entry>
<entry>
<title><![CDATA[从前慢]]></title>
<url>%2F%E4%BB%8E%E5%89%8D%E6%85%A2.html</url>
<content type="text"><![CDATA[从前慢 记得早先少年时大家诚诚恳恳说一句 是一句 清早上火车站长街黑暗无行人卖豆浆的小店冒着热气 从前的日色变得慢车,马,邮件都慢一生只够爱一个人 从前的锁也好看钥匙精美有样子你锁了 人家就懂了 ——木心]]></content>
<categories>
<category>生活</category>
</categories>
<tags>
<tag>随心</tag>
</tags>
</entry>
</search>