来介绍个源码阅读理解神器-deepwiki
上次简单介绍了openmanus的使用,但是它究竟是怎么个原理还是一知半解的,如果想要能比较深入的理解,最直接粗暴的就是阅读源码了,然而对于很多人包括我来说阅读源码不是件简单的事情,有时候会陷入局部细节,不得要领
正好这次我发现了有个理解项目的神器,这次不加双引号是因
via Nicksxs's Blog
上次简单介绍了openmanus的使用,但是它究竟是怎么个原理还是一知半解的,如果想要能比较深入的理解,最直接粗暴的就是阅读源码了,然而对于很多人包括我来说阅读源码不是件简单的事情,有时候会陷入局部细节,不得要领
正好这次我发现了有个理解项目的神器,这次不加双引号是因
via Nicksxs's Blog
您的手机并没有偷偷监听您,但事实却更令人不安
如果我们想象 Facebook 只是偷听到了你昨天与朋友的谈话,那么就更容易理解它是如何为你提供那则先知先觉的广告的。但就像生活中的许多事情一样,事实恰恰要复杂得多、高深莫测得多、令人不安得多。
via TecHug (author: techug)
如果我们想象 Facebook 只是偷听到了你昨天与朋友的谈话,那么就更容易理解它是如何为你提供那则先知先觉的广告的。但就像生活中的许多事情一样,事实恰恰要复杂得多、高深莫测得多、令人不安得多。
via TecHug (author: techug)
我为什么把大部分资产换成比特币
首先不想把大量资产以人民币的形式放在银行。
一方面预期人民币的汇率会降低,如果美国的关税进一步提高,人民币的汇率变动会很大。哪怕没有政策因素的影响,长期来看,人民币的价值也是不如美元的。
另一方面,放在银行的钱实际上不是你自己的钱,是国家的钱。再者如果因为异常交易被冻卡了,处理起来也是很麻烦的,有钱花不了。所以把钱存在银行不是一个安全的选择。
那么人民币之外的选择,就只有黄金、股票、加密货币。
黄金的话,在国内敢买实体黄金?印象里银行不离柜的黄金,都有生锈的先例,所以这个东西咱不懂,怕买到假的,不太靠谱。尤其是国内民风淳朴,咱是了解的。
至于股票,国内的股票就别买了。国外的股票,我没有账户去买,不知道怎么买。
然后就是加密货币。加密货币只有两个选择,BTC 和 USDC。
稳定币里,在 USDT 和 USDC 之间做选择的话,还是 USDC 靠谱。
加密货币之间,山寨币就不要考虑了,ETH 可以稍微玩一玩,比 ETH 还山寨的,别想着重仓。
那么 BTC 和 USDC 做对比的话,BTC 的好处是,BTC 是一种加密货币,是纯粹的去中心化 coin,不是某一家公司发行的,不受控制,不会突然消失。坏处是,价格波动太大。
UDSC 的好处是,稳定币,价值稳定,不会跌。坏处是,比如在以太坊链上发行的 USDC,那以太坊要是没了怎么办?
所以 BTC 和 USDC 选择性的分配资产上去。
via smallyu的博客
首先不想把大量资产以人民币的形式放在银行。
一方面预期人民币的汇率会降低,如果美国的关税进一步提高,人民币的汇率变动会很大。哪怕没有政策因素的影响,长期来看,人民币的价值也是不如美元的。
另一方面,放在银行的钱实际上不是你自己的钱,是国家的钱。再者如果因为异常交易被冻卡了,处理起来也是很麻烦的,有钱花不了。所以把钱存在银行不是一个安全的选择。
那么人民币之外的选择,就只有黄金、股票、加密货币。
黄金的话,在国内敢买实体黄金?印象里银行不离柜的黄金,都有生锈的先例,所以这个东西咱不懂,怕买到假的,不太靠谱。尤其是国内民风淳朴,咱是了解的。
至于股票,国内的股票就别买了。国外的股票,我没有账户去买,不知道怎么买。
然后就是加密货币。加密货币只有两个选择,BTC 和 USDC。
稳定币里,在 USDT 和 USDC 之间做选择的话,还是 USDC 靠谱。
加密货币之间,山寨币就不要考虑了,ETH 可以稍微玩一玩,比 ETH 还山寨的,别想着重仓。
那么 BTC 和 USDC 做对比的话,BTC 的好处是,BTC 是一种加密货币,是纯粹的去中心化 coin,不是某一家公司发行的,不受控制,不会突然消失。坏处是,价格波动太大。
UDSC 的好处是,稳定币,价值稳定,不会跌。坏处是,比如在以太坊链上发行的 USDC,那以太坊要是没了怎么办?
所以 BTC 和 USDC 选择性的分配资产上去。
via smallyu的博客
《奇想·天动》《流俗地》读后感
《奇想·天动》
读过岛田庄司的《占星术杀人魔法》和《异邦骑士》,觉得都挺好,很佩服作者的想象力和故事编排的能力。这次看的《奇想·天动》同样好看,每一处的设定都有它的道理,情节前后呼应、环环相扣,故事逻辑严密。
这部小说和《占星术杀人魔法》比较像的地方,都是调查几十年前的事件,幸亏当时的记录都还存在、人物都还活着,不然调查起来肯定会困难重重。
岛田庄司擅长设计诡异的作案手法,笔下的小说总是弥漫一种阴森的氛围,看着让人提心吊胆,不敢往下看,却又被谜底吸引,又想继续看下去。
这部小说除了面粉爆炸和用绳子拉尸体有些牵强外,总体设计得都很完美,语言简洁,叙述没有拖泥带水,节奏适中,跟随主人公的调查一步一步接近谜底,观看的过程很享受。
不过,我觉得岛田庄司这几部小说的书名都不怎么样,看完后也不能十分理解。
《流俗地》
这本书看了一百多页,看不下去了,纵使有豆瓣9.2评分的加持,我也不想看了。我觉得一本书如果过了一百页还是抓不住我,那就是我与它无缘了。
我很佩服这本书的作者,身处异国他乡,在匮乏中文环境的条件下创作出这么多文字的长篇小说,实在难得。小说中的文化和故事虽不精彩,但很有特色。只是我不习惯和喜欢作者的语言风格,看的时候总是会顿一下,一点都不流畅自然,总觉得她在卖弄技巧。可能是我刚看过「那不勒斯四部曲」的缘故,我喜欢自然的语言,流畅的叙述方式,读起来舒服享受。这本书明显不是。
相关文章:
1. 岛田庄司《异邦骑士》读后感
2. 岛田庄司《占星术杀人魔法》读后感
via 静风说 (author: Hillway)
《奇想·天动》
读过岛田庄司的《占星术杀人魔法》和《异邦骑士》,觉得都挺好,很佩服作者的想象力和故事编排的能力。这次看的《奇想·天动》同样好看,每一处的设定都有它的道理,情节前后呼应、环环相扣,故事逻辑严密。
这部小说和《占星术杀人魔法》比较像的地方,都是调查几十年前的事件,幸亏当时的记录都还存在、人物都还活着,不然调查起来肯定会困难重重。
岛田庄司擅长设计诡异的作案手法,笔下的小说总是弥漫一种阴森的氛围,看着让人提心吊胆,不敢往下看,却又被谜底吸引,又想继续看下去。
这部小说除了面粉爆炸和用绳子拉尸体有些牵强外,总体设计得都很完美,语言简洁,叙述没有拖泥带水,节奏适中,跟随主人公的调查一步一步接近谜底,观看的过程很享受。
不过,我觉得岛田庄司这几部小说的书名都不怎么样,看完后也不能十分理解。
《流俗地》
这本书看了一百多页,看不下去了,纵使有豆瓣9.2评分的加持,我也不想看了。我觉得一本书如果过了一百页还是抓不住我,那就是我与它无缘了。
我很佩服这本书的作者,身处异国他乡,在匮乏中文环境的条件下创作出这么多文字的长篇小说,实在难得。小说中的文化和故事虽不精彩,但很有特色。只是我不习惯和喜欢作者的语言风格,看的时候总是会顿一下,一点都不流畅自然,总觉得她在卖弄技巧。可能是我刚看过「那不勒斯四部曲」的缘故,我喜欢自然的语言,流畅的叙述方式,读起来舒服享受。这本书明显不是。
相关文章:
1. 岛田庄司《异邦骑士》读后感
2. 岛田庄司《占星术杀人魔法》读后感
via 静风说 (author: Hillway)
简单地使用 Caddy 实现 CORS 配置
其实可以在后端实现 CORS 配置,但是在后端实现 CORS不算是很方便管理。既然已经使用了 Caddy,那为什么不利用强大的 Caddy 实现CORS 配置?
查阅文档发现 Caddy 本身不支持直接写 CORS 的配置,但是 CORS基本上是使用 HTTP Header来实现的[0],所以我们应该只需要写对应的HTTP Header 就行了:
然后我发现了个更奇妙的写法:Caddy 有snippet[1],利用 snippet一样可以做到这样的效果并且可移植性更好(大概?)
下面这段粘贴复制出去就可以用了,非常方便
然后在站点配置里如下引用:
----------------------
1. 0.MDN↩︎
2. 1.Caddysnippet ↩︎
via Krysztal的书桌
其实可以在后端实现 CORS 配置,但是在后端实现 CORS不算是很方便管理。既然已经使用了 Caddy,那为什么不利用强大的 Caddy 实现CORS 配置?
查阅文档发现 Caddy 本身不支持直接写 CORS 的配置,但是 CORS基本上是使用 HTTP Header来实现的[0],所以我们应该只需要写对应的HTTP Header 就行了:
1
2
3
4
5
6
7
8
:80{
header {
Access-Control-Allow-Origin *
Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE"
Access-Control-Allow-Headers "Content-Type"
}
...
}
然后我发现了个更奇妙的写法:Caddy 有snippet[1],利用 snippet一样可以做到这样的效果并且可移植性更好(大概?)
下面这段粘贴复制出去就可以用了,非常方便
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(cors) {
@cors_preflight method OPTIONS
@cors header Origin {args.0}
handle @cors_preflight {
header Access-Control-Allow-Origin "{args.0}"
header Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE"
header Access-Control-Allow-Headers "Content-Type"
header Access-Control-Max-Age "3600"
respond "" 204
}
handle @cors {
header Access-Control-Allow-Origin "{args.0}"
header Access-Control-Expose-Headers "Link"
}
}
然后在站点配置里如下引用:
1
2
3
4
5
6
7
:80 {
import cors *
handle_path /* {
reverse_proxy localhost:8080
}
}
----------------------
1. 0.MDN↩︎
2. 1.Caddysnippet ↩︎
via Krysztal的书桌
1954年《mathematics and plausible reasoning》“对教师的话”摘录
G. Polya 《Mathematics and Plausible Reasoning》1954 年初版。Volume II Patterns of Plausible Inference, 最后第 XVI 章,Plausible Reasoning in Invention and Instruction > 9. A few words to the teacher.
----------------------
Mathematics (下简称 math) has many aspects. To many students, I am afraid, math appears as a set of rigid rules … To some instructors, math appears as a system of rigorous proofs …
To a mathematician, who is active in research, mathematics may appear sometimes as a guessing game: you have to guess a math theorem before you prove it, you have to guess the idea of the proof before you carry through the details.
It may appear a little more surprising to the layman that the mathematician is also guessing. The result of the math’s creative work is demonstrative reasoning, a proof, but the proof is discovered by plausible reasoning, by guessing.
…there should be a place for guessing in the teaching of math. Instruction should prepare for, or at least give a little taste of, invention. At all events, the instruction should not suppress the germs of invention in the student.
The teacher should show that guesses in the math domain may be reasonalbe, respectable, responsible.
I address myself to teachers of math of all grades and say: Let us teach guessing!
On the contrary, we should teach both proving and guessing, both kinds of reasoning, demonstrative and plausible. More valuable than any particular math fact or trick, theorem, or technique, is for the student to learn two things:
● First, to distinguish a valid demonstration from an invalid attempt, a proof from a guess.
● Second, to distinguish a more reasonable guess from a less reasonable guess.
… I would say that talented students of engineering are usually more accessible to, and more grateful for, well-presented plausible grounds than for strict proofs.
In the meantime, I reiterate my hope that this book, as it is, may be useful to some teachers, at least to those teachers who have some genuine experience in problem-solving. The trouble is that there are so few teachers of math who have such experience. And even the best School of Education has not yet succeeded in producing the marvellous teacher who has such an excellent training in teaching methods that he can make his students understand even those things that he does not understand himself.
后感
娃天生会猜,大人需要引导这种天性,让娃认识到,哪些方面更值得猜、如何更有效地猜。
不仅数学。
via 用中文编程
G. Polya 《Mathematics and Plausible Reasoning》1954 年初版。Volume II Patterns of Plausible Inference, 最后第 XVI 章,Plausible Reasoning in Invention and Instruction > 9. A few words to the teacher.
----------------------
Mathematics (下简称 math) has many aspects. To many students, I am afraid, math appears as a set of rigid rules … To some instructors, math appears as a system of rigorous proofs …
To a mathematician, who is active in research, mathematics may appear sometimes as a guessing game: you have to guess a math theorem before you prove it, you have to guess the idea of the proof before you carry through the details.
It may appear a little more surprising to the layman that the mathematician is also guessing. The result of the math’s creative work is demonstrative reasoning, a proof, but the proof is discovered by plausible reasoning, by guessing.
…there should be a place for guessing in the teaching of math. Instruction should prepare for, or at least give a little taste of, invention. At all events, the instruction should not suppress the germs of invention in the student.
The teacher should show that guesses in the math domain may be reasonalbe, respectable, responsible.
I address myself to teachers of math of all grades and say: Let us teach guessing!
On the contrary, we should teach both proving and guessing, both kinds of reasoning, demonstrative and plausible. More valuable than any particular math fact or trick, theorem, or technique, is for the student to learn two things:
● First, to distinguish a valid demonstration from an invalid attempt, a proof from a guess.
● Second, to distinguish a more reasonable guess from a less reasonable guess.
… I would say that talented students of engineering are usually more accessible to, and more grateful for, well-presented plausible grounds than for strict proofs.
In the meantime, I reiterate my hope that this book, as it is, may be useful to some teachers, at least to those teachers who have some genuine experience in problem-solving. The trouble is that there are so few teachers of math who have such experience. And even the best School of Education has not yet succeeded in producing the marvellous teacher who has such an excellent training in teaching methods that he can make his students understand even those things that he does not understand himself.
后感
娃天生会猜,大人需要引导这种天性,让娃认识到,哪些方面更值得猜、如何更有效地猜。
不仅数学。
via 用中文编程
怎么样教育孩子不跟风不从众不随大流,不会被煽动情绪,不会轻易相信别人说的任何信息,学会有自己的判断?
https://www.zhihu.com/question/660298860/answer/1894666322194981393
从数学教育看,一个缺失是:让娃自己写定理。
刚看wiki,中文版里开头第二句瞩目:
当然,美国数学中小学教育的学案也暂时没看到对学生自行编写定理的提及。
定理完全可以是形形色色而且可以基于学生各阶段的认识,比如’自身求和与自身求积相等的自然数有哪些‘。
这直接锻炼娃对规律的发现归纳总结证明和各种联想,也会对他人发现的规律进行审视即基于公理的推导或推翻,或者加限定条件使之成立。
这些能力都可用于对‘听起来有理’的论断进行独立分析。
也许更重要的是,娃会知道:定理是人定的。
希望自动定理证明工具早日用于教学,尤其是辅助学生编写定理。
via 用中文编程
https://www.zhihu.com/question/660298860/answer/1894666322194981393
从数学教育看,一个缺失是:让娃自己写定理。
刚看wiki,中文版里开头第二句瞩目:
定理(英语:Theorem)是经过受逻辑限制的证明为真的陈述。一般来说,在数学中,只有重要或有趣的陈述才叫定理。作为对比,英文版里根本不提什么’重要或有趣‘。
当然,美国数学中小学教育的学案也暂时没看到对学生自行编写定理的提及。
定理完全可以是形形色色而且可以基于学生各阶段的认识,比如’自身求和与自身求积相等的自然数有哪些‘。
这直接锻炼娃对规律的发现归纳总结证明和各种联想,也会对他人发现的规律进行审视即基于公理的推导或推翻,或者加限定条件使之成立。
这些能力都可用于对‘听起来有理’的论断进行独立分析。
也许更重要的是,娃会知道:定理是人定的。
希望自动定理证明工具早日用于教学,尤其是辅助学生编写定理。
via 用中文编程
用 clips 模拟生态第0步:单体永生
如 上个月打算,用 CLIPS 改写 生态模拟。
单个体,年龄加一
从最基本的开始 1.clp:
load.bat:
运行效果:
单个体永生
将 1.clp 去掉 (halt) 后,估计就能自行递增了。
运行后,输出「开天辟地」后未显示提示符,看起来是在无限循环了。
打开 Debug -> Fact Browser,可以看到该个体的年龄在不断递增,挺方便:
CPU 占用 100%。IDE 右上角的 Pause 按下后,递增即暂停,放开 Pause 继续。
完全停止运行 Environment 可 Halt Execution。
via 用中文编程
如 上个月打算,用 CLIPS 改写 生态模拟。
单个体,年龄加一
从最基本的开始 1.clp:
(deftemplate 某种
(slot 年龄))
(defrule 开始
=>
(println "开天辟地")
(assert (某种 (年龄 0))))
(defrule 时间流逝
?个体 <- (某种 (年龄 ?年龄))
=>
(modify ?个体 (年龄 (+ ?年龄 1)))
(halt))
load.bat:
(unwatch all)
(clear)
(load 2.clp)
(reset)
运行效果:
CLIPS> (batch* load.bat)
%**
TRUE
CLIPS> (run)
开天辟地
CLIPS> (facts)
f-1 (某种 (年龄 1))
For a total of 1 fact.
单个体永生
将 1.clp 去掉 (halt) 后,估计就能自行递增了。
运行后,输出「开天辟地」后未显示提示符,看起来是在无限循环了。
打开 Debug -> Fact Browser,可以看到该个体的年龄在不断递增,挺方便:
CPU 占用 100%。IDE 右上角的 Pause 按下后,递增即暂停,放开 Pause 继续。
完全停止运行 Environment 可 Halt Execution。
via 用中文编程
用 clips 模拟生态第0.1步:单种繁衍
续 上文,加条规则年龄到10繁衍:
仍旧只有一个个体递增年龄。加了 暂停,仍无效:
尝试各种发现,如果把规则编写先后反过来,就生成了第二个个体:
想起 入门时看到的规则优先级 ,看来在优先级相同时排序靠前的先执行?
于是加高优先级(顺便:salience 这句好像必须是第一句):
即便规则放在后面也可触发了。但是,去掉 (halt) 后,又只有单体年龄递增,不见第二个单体生成。
加大繁衍年龄:
从事实(Facts)浏览器发现,fact 1 的年龄到千万时,会产生 fact 2,而且 fact 2中的年龄开始递增而 1 的年龄暂停,待 fact 2 的年龄到千万时,fact 2 消失,fact 1 从千万开始继续递增。
因此之前繁衍年龄小时,fact 2 一闪而过因此看不到。
至于年龄相同时为何消失,也许和 这里 的重复事实有关。
于是为区别单体添加编号:
现在每个单体递增到繁衍年龄时,就会增加一个编号递增的单体,部分成功。剩下就是解决繁衍后的单体的年龄不再递增的问题。
从议程(agenda)看,所有的单体都在排队,应该只有排在最先的最新单体的年龄递增得到执行:
在 论坛发问 后,确认需加其他条件实现比如年龄同步。
鉴于模拟环境中新生单体的年龄不同,决定试用另一思路,即不在个体中保留年龄信息,而改为保存出生时间:
运行后,可见世界时间戳递增,初始单体在时间戳 10000000 时,生成第二个单体,时间戳 20000000 时生成第三个,符合预期。
接下去添加能量值。
via 用中文编程
续 上文,加条规则年龄到10繁衍:
(defrule 繁衍
(某种 (年龄 10))
=>
(assert (某种 (年龄 0)))
)
仍旧只有一个个体递增年龄。加了 暂停,仍无效:
(defrule 繁衍
(某种 (年龄 10))
=>
(assert (某种 (年龄 0)))
(halt)
)
尝试各种发现,如果把规则编写先后反过来,就生成了第二个个体:
(defrule 繁衍
(某种 (年龄 10))
=>
(assert (某种 (年龄 0)))
(halt)
)
(defrule 时间流逝
?个体 <- (某种 (年龄 ?年龄))
=>
(modify ?个体 (年龄 (+ ?年龄 1))))
想起 入门时看到的规则优先级 ,看来在优先级相同时排序靠前的先执行?
于是加高优先级(顺便:salience 这句好像必须是第一句):
(defrule 繁衍
(declare (salience 10))
...
即便规则放在后面也可触发了。但是,去掉 (halt) 后,又只有单体年龄递增,不见第二个单体生成。
加大繁衍年龄:
(defrule 繁衍
(declare (salience 10))
(某种 (年龄 10000000))
=>
(assert (某种 (年龄 0)))
)
从事实(Facts)浏览器发现,fact 1 的年龄到千万时,会产生 fact 2,而且 fact 2中的年龄开始递增而 1 的年龄暂停,待 fact 2 的年龄到千万时,fact 2 消失,fact 1 从千万开始继续递增。
因此之前繁衍年龄小时,fact 2 一闪而过因此看不到。
至于年龄相同时为何消失,也许和 这里 的重复事实有关。
于是为区别单体添加编号:
(deftemplate 某种
(slot 编号)
(slot 年龄))
(defrule 开始
=>
(println "开天辟地")
(assert (某种 (编号 0) (年龄 0))))
(defrule 时间流逝
?个体 <- (某种 (编号 ?编号) (年龄 ?年龄))
=>
(modify ?个体 (年龄 (+ ?年龄 1))))
(defrule 繁衍
(declare (salience 10))
(某种 (编号 ?编号) (年龄 10000000))
=>
(assert (某种 (编号 (+ 1 ?编号)) (年龄 0)))
)
现在每个单体递增到繁衍年龄时,就会增加一个编号递增的单体,部分成功。剩下就是解决繁衍后的单体的年龄不再递增的问题。
从议程(agenda)看,所有的单体都在排队,应该只有排在最先的最新单体的年龄递增得到执行:
CLIPS> (agenda)
0 时间流逝: f-11
0 时间流逝: f-10
0 时间流逝: f-9
0 时间流逝: f-8
0 时间流逝: f-7
0 时间流逝: f-6
0 时间流逝: f-5
0 时间流逝: f-4
0 时间流逝: f-3
0 时间流逝: f-2
0 时间流逝: f-1
在 论坛发问 后,确认需加其他条件实现比如年龄同步。
鉴于模拟环境中新生单体的年龄不同,决定试用另一思路,即不在个体中保留年龄信息,而改为保存出生时间:
(deftemplate 某种
(slot 编号)
(slot 出生时间))
(deftemplate 世界
(slot 时间)
)
(defrule 开始
=>
(println "开天辟地")
(assert (世界 (时间 0)))
(assert (某种 (编号 0) (出生时间 0))))
; 当无优先级声明时,规则编写顺序决定了执行的优先级!
(defrule 时间流逝
?环境 <- (世界 (时间 ?时间))
=>
(modify ?环境 (时间 (+ ?时间 1)))
)
(defrule 繁衍
(declare (salience 10))
(世界 (时间 ?时间))
(某种 (编号 ?编号) (出生时间 ?出生时间))
(test (= 10000000 (- ?时间 ?出生时间)))
=>
(assert (某种 (编号 (+ 1 ?编号)) (出生时间 ?时间)))
)
运行后,可见世界时间戳递增,初始单体在时间戳 10000000 时,生成第二个单体,时间戳 20000000 时生成第三个,符合预期。
接下去添加能量值。
via 用中文编程
用 clips 模拟生态第0.2步:随机觅食
刚开始用随机函数增减能量时,就发现 这个费解问题。
简言之,使用 modify 时,如果新值和旧值相等,则无任何操作、原事实不变且不再次触发匹配的规则,即不等于 retract加assert。以后要小心这个坑。
于是暂时用只增加能量
之后添加规则:当能量大于某值时,能量重置为0并产生新个体。但发现仅有新生成的个体进行觅食,之前的个体停止更新能量,应该是觅食规则一直被新个体对应的事实激活的缘故。
想到 之前请教的回复,把之前的
感觉
写文章的时候发现有
腾出3G内存后,screenshot app录屏产生mov,https://cloudconvert.com/mov-to-gif 生成gif
via 用中文编程
刚开始用随机函数增减能量时,就发现 这个费解问题。
简言之,使用 modify 时,如果新值和旧值相等,则无任何操作、原事实不变且不再次触发匹配的规则,即不等于 retract加assert。以后要小心这个坑。
于是暂时用只增加能量
(+ ?能量 (random 1 3)),来规避(+ ?能量 (random -3 3))时随机到增量为0导致停止觅食的情况。之后添加规则:当能量大于某值时,能量重置为0并产生新个体。但发现仅有新生成的个体进行觅食,之前的个体停止更新能量,应该是觅食规则一直被新个体对应的事实激活的缘故。
想到 之前请教的回复,把之前的
出生时间改为了经历时间并让所有个体同步‘觅食’。(deftemplate 某种
(slot 编号)
(slot 能量)
(slot 经历时间))
(deftemplate 世界
(slot 时间)
)
(defrule 开始
=>
(println "开天辟地")
(assert (世界 (时间 0)))
(assert (某种 (编号 0) (能量 0) (经历时间 0))))
; 当无优先级声明时,规则编写顺序决定了执行的优先级!
(defrule 时间流逝
?环境 <- (世界 (时间 ?时间))
=>
(modify ?环境 (时间 (+ ?时间 1)))
)
(defrule 觅食
(declare (salience 5))
(世界 (时间 ?时间))
?个体 <- (某种 (能量 ?能量) (经历时间 ?经历时间&:(< ?经历时间 ?时间)))
=>
(modify ?个体 (能量 (+ ?能量 (random 1 3))) (经历时间 (+ 1 ?经历时间)))
)
; 待解决:新生命的 fact index 从2跳到几千
(defrule 繁衍
(declare (salience 10))
(世界 (时间 ?时间))
?长辈 <- (某种 (编号 ?编号) (能量 ?能量&:(> ?能量 10000)))
=>
(modify ?长辈 (能量 0))
; 编号可能重复
(assert (某种 (编号 (+ 1 ?编号)) (能量 0) (经历时间 ?时间)))
)
感觉
(世界 (时间 ?时间))这种写法有点累赘。考虑在命名上作些改进。写文章的时候发现有
经历时间属性的修改,即便能量加0也不会和原事实相同,于是改为(random -3 3)后,果然可行,但仍有个体消失的情况发生如下(能量阈值改用 1000)。也许是编号重复后与其他事实内容完全相同导致的,但为何事实会消失呢?待研究。腾出3G内存后,screenshot app录屏产生mov,https://cloudconvert.com/mov-to-gif 生成gif
via 用中文编程
Chrome 会成为 OpenAI 的下一个目标? - 肘子的 Swift 周报 #81
美国司法部(DOJ)与谷歌之间的反垄断诉讼近期取得了重大进展。法院认定,谷歌通过将其广告服务器与广告交易平台捆绑销售,以及操控广告拍卖机制等行为,排挤了竞争对手,损害了出版商和消费者的利益。作为补救措施的讨论之一,美国司法部正在考虑建议强制谷歌出售其 Chrome 浏览器,并终止与设备制造商的默认搜索引擎协议。继传闻将以 30 亿美金收购 WindSurf 后,OpenAI 在上述判决之后立刻表达了对 Chrome 的收购兴趣。
Subscribe English RSS
阅读全文
via 肘子的 Swift 记事本 | Fatbobman's Blog
美国司法部(DOJ)与谷歌之间的反垄断诉讼近期取得了重大进展。法院认定,谷歌通过将其广告服务器与广告交易平台捆绑销售,以及操控广告拍卖机制等行为,排挤了竞争对手,损害了出版商和消费者的利益。作为补救措施的讨论之一,美国司法部正在考虑建议强制谷歌出售其 Chrome 浏览器,并终止与设备制造商的默认搜索引擎协议。继传闻将以 30 亿美金收购 WindSurf 后,OpenAI 在上述判决之后立刻表达了对 Chrome 的收购兴趣。
Subscribe English RSS
阅读全文
via 肘子的 Swift 记事本 | Fatbobman's Blog