《Java遗传算法编程》笔记

之前读完了《Java遗传算法编程》。感觉上这本书并不是很注重程序的设计及效率问题,但确实将遗传算法讲解清晰了。这里就记录一些不是很熟悉的概念。

 

一、选择

1.1 竞标赛

从种群中随机选取一定量的个体,选择其中适应度较高的个体。锦标赛作用在于,个体适应度越高,被选中进行杂交的几率越大。

锦标赛规模过大影响效率,且更容易抽中适应度较高的个体,导致多样性下降。而过小的规模会减小选择压力,减慢算法进展。

 

二、交叉

2.1 均匀交叉

每个基因都均有50%的概率来自双亲的其中一方。

 

2.2 单点交叉

在基因组中随机选取一个位[……]

继续阅读

TCP真的可以打洞?

今天又尝试了使用TCP协议打洞实现P2P。结论是:办不到!!!

网上搜索到的文章转载来转载去,都不知道这些文章是什么时候发布的。而且大多数没有给源代码,却说了一堆有的没得。有代码的也不好使,还有让服务器做中转的代码。

按照文章里说的给socket设置SO_REUSEPORT确实可以多个socket绑定相同端口。但最后一步,两个客户端相互连接,客户端A发送的SYN的时候,我家移动的线路上最外层的路由会给你一个RST,电信的线路上发出去后杳无音信,多次重发之后连接失败。。。同时,客户端B发起连接的时候情况同样。最后两边都连接失败。

说好的比UDP打洞复杂一点的呢。。。

网上[……]

继续阅读

验证条失效的问题

今天才发现文章底部评论时要拖拽的验证条拖到最右侧居然没反应。。。

看了下开发者工具,发送了一个请求得到了403。。。

又查了查网站.htaccess,果然是我以前配置了禁止wp-content下php脚本。。。

稍微改了下规则,现在没问题了。。。

肯定是因为这个才至今没有评论的(严肃脸)[……]

继续阅读

为博客添加了SSL证书

三四年前就听说了可以获得Let’s Encrypt签发的免费的SSL证书。但以前不怎么需要,也就没怎么折腾。不过现在博客开这么久了,也该上HTTPS了。这里就简单记述一下过程。

 

获得SSL证书

到Github上克隆了certbot项目。运行一下tools/venv.py创建一个虚拟的Python环境。(virtualenv)

git clone https://github.com/certbot/certbot.git
python tools/venv.py

运行完后,产生的venv目录就是包含certbot依赖的包的Python环境。运行venv/bin/a[……]

继续阅读

为crayon代码高亮插件添加Kotlin支持

2021-01-31

crayon语法高亮插件实在太久没更新了,升级WordPress后有兼容性问题,已经卸载。因此,文中的一段使用crayon插件样式的代码将不会正常显示。

虽然换了 Enlighter 插件,但目前还没找到令人完全满意的代码高亮插件。

crayon插件(aramk/crayon-syntax-highlighter)算是比较老的一个wordpress插件了。其第一个版本发布于2012年,最后一次release在2016年,直到2018年有人开了个issue告诉作者wordpress把这个插件标记为弃用才改了几行、提交了一次,而且没有发布release。也就是说差不[……]

继续阅读