软件简介

人工生命 v1.0

这是一个以“造人”为终极目标的项目,并不是一个实用的、可以马上在实际中使用的项目,目前还处于初始阶段,作者本人也处于探索中,希望有兴趣者能加入,早日在码云上创造出一个真正意义上的人工生命。

简介 | Introduce 

目前人工智能的研究主要集中在算法上,下面这张图看了有什么感觉:

绝对是四个字:  一脸懵逼。(原贴位于[这里]) 
对于普通程序员来说,是不可能学会上述知识树的所有、甚至是一小部分的知识的,但好在目前神经网络研究还有另一条路可以走,就是模拟大自然,利用优胜夯汰、随机变异、用进废退这三大原则,用计算机的高速度来让电脑自动生成最优神经网络脑模型,而不是手工从算法着手来模拟人脑,这是一个捷径,因为不用花太多时间去研究算法(模式识别的成果可以引用,但仅限于此,人类的算法不应该干涉电脑生成的网络模型),只需要花时间在模拟环境和编制简单的用进废退逻辑即可,这是程序员所擅长的。大自然从来就不懂什么是算法,聪明如我等程序员,难道还不如蠢笨的大自然? 从单细胞进化到多细胞、从青蛙进化到人类,这是一个漫长的、随机的进化过程,但在超级电脑上跑可能只要几天时间,就可能得到一个相当不错的脑模型。当然电脑速度越快、容量越大、环境模拟的越真实,则优胜夯汰后形成的脑结构就越复杂,错的脑模型都被自然淘汰掉了。 从算法着手搭建,还是从模拟环境着手自动进化,这是创建人工生命的两个大方向,第一个方向可以说是一条死路,因为它不具备算法自改进、变异、遗传(算法的压缩)功能。模拟环境的难点在于环境本身必须足够复杂、正确。而且必须循序渐进,与脑的进化同步,如果把一群青蛙扔到猴子的模拟环境中,则所有青蛙都会被自然淘汰掉,项目就无法进行下去了。 目前的项目只是搭建了一个框架,语言为Java,利用Swing作图环境,构建一个500x500象素点的虚拟环境、并模拟一群草履虫的优胜夯汰,来获取第一个具备自进化功能的人工生命体,具体脑(即电脑生成的神经网络)的实现算法还需要以后加入。现诚心邀请有兴趣加入的同学一起来加入,完成第一个初步目标:造出一个真正意义上的人工生命:草履虫。

短期目标 | Sort-term Goals

第一个初步目标:造出一个真正意义上的人工生命:草履虫。它必须具备以下前四个特点:

  • 脑结构由电脑生成:神经网络由电脑算法生成,但是电脑算法仅限于模拟环境,而不是直接参与搭建神经网络,就好象大自然只负责拍死不合格的生命,它从不主动参与设计大脑。 

  • 脑结构可遗传:类似于生物的DNA,电脑生成的脑结构(神经网络),可通过简单的算法规则描述,并且此算法规则可以压缩成较短的片段存储,并参与到下一代草履虫的构建。

  • 脑结构可变异:算法规则可以变异,下一代生成的草履虫在脑结构上与上一代总体相似,但存在部分变异。

  • 适应环境:草履虫能够在模拟的虚拟环境下存活下来,环境有微小的变化,能够自适应环境,并一代代生存将适应这种环境的能力遗传下来。

  • 用进废退:这是一个假想,对于生物来说,存在这样一种现象,就是用的多的器官,容易发生变异(例如经常嚼槟榔,容易发生口腔癌变),有理由相信这不是偶然现象,而是生物在进化过程中的一个有用的功能,以便于更快地变异,以适应环境,并很可能这种变异会通过遗传细胞(变异的算法规则)影响到下一代。 

理论 | Theory

为什么明明是个电脑程序,只要满足上述四个特点就可以称之为"真正"的人工生命? 这一点我不想多说,大家可以百度一下"zhangrex 人工生命"就知道我的观点了:意识从来就不存在,意识只是一种现象。风吹、树动和风吹、添衣,都只是一种现象而已,生命本质上是一种现象,换句话说,只要表现出生命现象的事物,就可以称其为生命了,不管它是高等还是低等,不管它的物质存在基础是怎样的。作为一个二十年前就思考人工智能(可能比在座的各位年龄都长)者的话,请仔细思考一下这个观点。哲学上、理论上对智能、意识的研究是很无聊的,相当于在研究“无”到底是什么,不必多纠缠在理论和算法上。是的,用模拟环境得到的人工神经网络模型,我们确实无法掌控它的算法是怎样生成的,但是我们知道,这符合大自然创造生命的规律。

项目架构 | Architecture

这是一个Java项目,分为Application、Env、Frog三个模块: 
Application模块: 用于项目的启动、关闭等基础服务。 
Env模块: 目前是一个500x500象素点的虚拟空间,由Swing生成画像,这是程序员唯一可以控制的区域。
Frog: 这是人工生命的主体,目前起名叫青蛙,其实叫什么都一样。它具备以下器官:
    Leg: 与运动神经元相连,Leg的激活将导致Frog移动,Leg有五个方向:上下左右停
    Mouth: 只有一个动作:eat 用来食用虚拟空间出现的虚拟食物,它是一个感觉器官,而不是一个运动器官,Frog本身具有一个能量字段,进食后能量字段会增加,运动或随时间流逝能量将减少,能量耗尽则Frog死亡。
    Brain: 有眼、脑细胞、脑区、基因等对象   

文档 | Documentation

见项目主页

作者其它开源项目 | Other Project

期望 | Futures

欢迎发issue提出更好的意见或提交PR,帮助完善人工生命项目。

版权 | License

Apache 2.0

关注我 | About Me

GitHub 
码云  

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (69)

加载中
虽然看不懂,但不影响我说流批
前天 15:15
回复
举报
感觉挺有趣的,支持
01/06 17:32
回复
举报
我表示这个图看着就懵逼了
2020/11/17 09:45
回复
举报
这是一个靠 tree new bee 上榜的项目?
2020/11/13 06:51
回复
举报
看起来很厉害的样子,一个脑洞大开的项目,点个赞。
2020/10/27 16:47
回复
举报
虽然有点懵逼 先支持下再说。。
2020/10/23 14:39
回复
举报
赞,支持
2020/06/06 17:02
回复
举报
不明觉厉,支持了
2019/12/02 11:43
回复
举报
《云球》了解一下。想法挺好,但是落地实施计划太笼统了,要将一个学术型的研究变成一个落地项目,这之间的差距还是挺大的,不多想法是好的。
2019/11/29 15:32
回复
举报
yong9981软件作者
一个人力量是渺小的,但做起来总比不做好。我希望能吸引更多的聪明人投入这个方向。
2019/12/07 08:04
回复
举报
人工智能可以,但要真是研究出了程序生命,当它意识到人类和自己是两个不同物种,觉醒了自我意识的时候,那也就是灾难的开始了。 同为人类的我们,还在为生存而资源厮杀,纳粹可以对犹太人进行集中销毁,清兵可以杀的汉人十室九空,你告诉我只要有制造工厂就可以无限自我复制的智能生命冰冷机器会对人类如何残忍?
2019/11/20 22:01
回复
举报
yong9981软件作者
如果是我主导,会先致力于推广人工智能保护法,最终结果很大可能就是机器人社会将代替人类社会,但人类不会被灭绝。如果是Google之类美国公司主导,可能在美国政府压力下直接用于军事领域,这与我提倡的人工智能保护法思路相违背,最终会给人类带来灭绝的危险。 人工智能伦理研究的重要性不亚于技术本身,但没有技术也没有发言权,所以我们要抢在Google之前在人工生命(即通用人工智能)上取得技术上的进展。
2019/12/07 08:03
回复
举报
更多评论
发表了资讯
05/16 00:37

人工生命 2.0.4 更新:语言的诞生和细胞分裂画小蛇

Frog | 人工生命 (https://gitee.com/drinkjava2/frog) 码云上唯一个一个把往生咒写在源码里的开源项目又更新啦,这次更新主要是完成了两个小开发任务,有兴趣的同学们可以看一看。 2.0.4版更新内容一:语言的诞生 2020-09-13任务发布和描述:见下图,如果有兴趣的同学可以尝试一下看能不能做出来: 说明:详见图片,通过模拟一个虚拟的环境来淘汰青蛙,只有当青蛙进化出能够在震心的位置发出叫声,其它的青蛙能听到这个叫声跳在...

2
5
发表于服务端专区
2020/06/27 09:53

人工生命 2.0.3 更新,两条腿的青蛙和吃青蛙的蛇

Frog | 人工生命 (https://gitee.com/drinkjava2/frog) 这是一个人工生命试验项目,最终目标是创建“有自我意识表现”的模拟生命体,技术架构基于02年提出的 一个人工脑模型。 这个项目永远没有结束的时候,开始于模拟一个简单的生命体,然后是青蛙、狗......, 结束于有“自我意识表现”的人工脑,或者说,结束于被机器人代替人类的那一天。 (接上回 模拟体全息存贮的模式识别),以下为本次项目更新流水账: 2019-12-27 开始设立...

13
11
发表于大前端专区
2019/11/12 05:57

人工生命 2.0.2 更新,模拟体全息存贮的模式识别

Frog | 人工生命 (https://gitee.com/drinkjava2/frog) 这是一个人工生命试验项目,最终目标是创建“有自我意识表现”的模拟生命体,技术架构基于02年提出的 一个人工脑模型。 这个项目永远没有结束的时候,开始于模拟一个简单的生命体,然后是青蛙、狗......, 结束于有“自我意识表现”的人工脑,或者说,结束于被机器人代替人类的那一天。 (接上回 给青蛙找个工作:走跷跷板),以下为本次项目更新内容 : 2019-11-11 第一版字...

16
20
发表于AI & 大数据专区
2019/08/06 10:35

人工生命 2.0.1 版发布,给青蛙找个工作:走跷跷板

Frog | 人工生命 (https://gitee.com/drinkjava2/frog) 这是一个人工生命试验项目,最终目标是创建“有自我意识表现”的模拟生命体,技术架构基于02年提出的 一个人工脑模型。 这个项目永远没有结束的时候,开始于模拟一个简单的生命体,然后是青蛙、狗......, 结束于有“自我意识表现”的人工脑,或者说,结束于被机器人代替人类的那一天。 (接上回 给青蛙添个眼睛),以下为本次项目更新内容 (为一系列提交的汇总,按时间顺序)...

27
37
发表于大前端专区
2019/06/13 16:05

人工生命 v2.0.0 发布,给青蛙添个眼睛

Frog | 人工生命 https://gitee.com/drinkjava2/frog 这是一个人工生命试验项目,最终目标是创建“有自我意识表现”的模拟生命体,技术架构基于02年提出的 一个人工脑模型。 这个项目永远没有结束的时候,开始于模拟一个简单的生命体,然后是青蛙、狗......, 结束于有“自我意识表现”的人工脑。 本次更新内容为几个提交内容的总和,因为这个项目本身的特点,决定了它不可能是个“有用”的程序,就好象你如果真的拿到一只青蛙,...

24
48
发表于大前端专区
2019/03/12 10:38

人工生命 1.0.0 版发布,第一个人工生命诞生

Frog | 人工生命 License: Apache 2.0 最近不务正业,撸了个蛙——这是一个人工生命试验项目,最终目标是创建“有自我意识表现”的模拟生命体,技术架构起源于02年提出的 一个人工脑模型构思。 这个项目永远没有结束的时候,开始于模拟一个简单的生命体,然后是青蛙、狗......, 结束于有“自我意识表现”的人工脑,或者说,结束于被机器人代替人类的那一天。 项目主页见:https://gitee.com/drinkjava2/frog 缘起 | Origin 目前...

49
86
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/10/19 11:21

403. Frog Jump

#### Description Tag:Dynamic Programming Difficulty:Hard A frog is crossing a river. The river is divided into x units and at each unit there may or may not exist a stone. The frog can jump on a stone, but it must not jump into the water. Given a list of stones' positions (in units) in sorted ascending order, determine if the frog is able to cross the river by landing on the last stone. Initi...

0
0
发表了博客
2018/01/20 02:22

LeetCode Frog Jump

原题链接在这里:https://leetcode.com/problems/frog-jump/description/ 题目: A frog is crossing a river. The river is divided into x units and at each unit there may or may not exist a stone. The frog can jump on a stone, but it must not jump into the water. Given a list of stones' positions (in units) in sorted ascending order, determine if the frog is able to cross the river by landing on the...

0
0
发表了博客
2018/02/26 18:51

某考试T2 frog

题目背景 无 题目描述 数轴上有 n 只青蛙,分别编号为 1 到 n。青蛙 i 的初始位置的坐标为 xi。 它们准备进行如下形式的移动:每轮包括 m 次跳跃,第 i 次跳跃由青蛙 ai(1 < ai < n) 执行。青蛙 ai 会从青蛙 ai − 1 和青蛙 ai + 1 中等概率地选一 只,假设选出的青蛙所在的位置为 p,那么青蛙 ai 会跳到它当前位置关于 p 的 对称点。 青蛙们会连续进行 k 轮这样的移动。请你对每只青蛙,求出它最终坐标的 期望值。 输入输出格式...

0
0
发表了博客
2018/07/17 19:41

P3509 [POI2010]ZAB-Frog

题目描述 On the bed of one particularly long and straight Byteotian brook there lie rocks jutting above the water level. Their distances from the brook's spring are respectively. A small frog sitting on one of these is about to begin its leaping training. Each time the frog leaps to the rock that is the -th closest to the one it is sitting on. Specifically, if the frog is sitting on the rock at...

0
0
发表了博客
2018/07/02 16:27

【CF625E】Frog Fights(模拟)

#【CF625E】Frog Fights(模拟) ##题面 CF 洛谷 翻译: 有$n$只青蛙在一个被分为了$m$等分的圆上,对于每份顺时针依次标号。 初始时每只青蛙所在的位置是$p_i$,速度是$a_i$。 然后从$1$号青蛙开始,顺次移动,每只青蛙顺时针移动$a_i$个格子。 途中碰到的所有青蛙都会被他淘汰。 如果它淘汰了$x$只青蛙,那么它的速度会变为$a_i-x$ 求最终剩下的青蛙数量以及编号。 ##题解 发现在没有淘汰的情况下,所有青蛙的相对位置是不会发...

0
0
发表了博客
2018/11/17 16:44

Frog and Portal(思维好题)

Frog and Portal https://hihocoder.com/problemset/problem/1873 时间限制:1000ms 单点时限:1000ms 内存限制:512MB 描述 A small frog wants to get to the other side of a river. The frog is initially located at one bank of the river (position 0) and wants to get to the other bank (position 200). Luckily, there are 199 leaves (from position 1 to position 199) on the river, and the frog can jump between...

0
0
发表了博客
2019/01/09 22:52

atcoder A - Frog 1(DP)

A - Frog 1 Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100 points Problem Statement There are NN stones, numbered 1,2,…,N1,2,…,N. For each ii (1≤i≤N1≤i≤N), the height of Stone ii is hihi. There is a frog who is initially on Stone 11. He will repeat the following action some number of times to reach Stone NN: If the frog is currently on Stone ii, jump to Stone i+1i+1 or Stone i+2...

0
0
发表了博客
2018/05/17 08:58

Mr. Frog’s Game(模拟连连看)

Description One day, Mr. Frog is playing Link Game (Lian Lian Kan in Chinese). In this game, if you can draw at most three horizontal or vertical head-and-tail-connected lines over the empty grids(the lines can be out of the whole board) to connect two non-empty grids with the same symbol or the two non-empty grids with the same symbol are adjacent, then you can change these two grids into empt...

0
0
发表了博客
2018/11/20 18:10

CodeForces Round #521 (Div.3) A. Frog Jumping

http://codeforces.com/contest/1077/problem/A A frog is currently at the point 00 on a coordinate axis OxOx. It jumps by the following algorithm: the first jump is aa units to the right, the second jump is bb units to the left, the third jump is aa units to the right, the fourth jump is bb units to the left, and so on. Formally: if the frog has jumped an even number of times (before the current ...

0
0
发表了博客
2019/01/09 23:20

atcoder B - Frog 2 (DP)

B - Frog 2 Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100 points Problem Statement There are NN stones, numbered 1,2,…,N1,2,…,N. For each ii (1≤i≤N1≤i≤N), the height of Stone ii is hihi. There is a frog who is initially on Stone 11. He will repeat the following action some number of times to reach Stone NN: If the frog is currently on Stone ii, jump to one of the following: Sto...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
69 评论
236 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部