欢迎光临散文网 会员登陆 & 注册

《复杂》如何赋予你计算机生命(系列第三期)

2023-02-19 21:22 作者:啥都可以会一点  | 我要投稿

各位请坐,我们书接上回,继续来探讨<复杂>一书,之前的视频中有一些简单生动的例子介绍了复杂系统到底是什么,更方便理解,当然也对理解本期视频影响不大,好,我们正式开始.

大家觉得,生命的要素是什么,换句话说就是,需要具备什么条件才能算是生命.复杂系统到是对此有一些研究,

如果你问生物学家生命的要素是什么,得到的答案都不太一样,但可能大部分都包括,自主,新陈代谢,自我复制,生存本能,进化和适应.那我们能不能用计算机来实现这些过程呢,  目前许多人都认为这是绝对不可能的,理由诸如,  计算机只能执行程序指令,计算机本身什么都做不了,也就没办法自主.      计算机无法像生物一样从环境中获取能量进行新陈代谢.  计算机不能复制自身,就像DNA复制那样,DNA中包含有描述自身的信息用于复制,而计算机不行     计算机不关心自己能不能生存是不是成功,     计算机本身无法进化或适应,它只能严格依照程序员预先设定的方式变化,

虽然很多人相信这些观点,但是它们都在人工生命领域被各种方式否定了,这里我们先来看计算机中的自我复制,   有管观点认为计算机中的自我复制会导致无穷反复

举个例子   一个程序的第一句是  

hello world

我们要复制出这个程序的第一句就要再加一句

print("hello,world")

意思就是把hello,world打印出来,这样的话我们这一个程序中就有了两行程序,可我嘛呢要将这个程序完整复制出来,第一句已经复制,那我们就还要打印出第二句

print("print("hello,world")")

现在的确第一和第二句都打印复制了出来,可又出现了第三行,恐怕这么下去,我们就要一直套娃下去了.

而冯·诺伊曼,最早设计电子计算机的人之一,他在生命的最后岁月致力于解决机器如何才能复制自身的问题,并给出了一个自我复制的机器的完整设计,本书的作者受"自复制自动机"启发展示了一段自复制计算机程序阐述其基本原则.我在此也写了一段程序供大家理解,下面来看代码

#include<bits/stdc++.h>
using namespace std;
int main(){
   freopen("cc1.cpp","r",stdin);    //表示从cc1.cpp文件中读取信息,也就是本文件
   freopen("out.cpp","w",stdout);   //表示将复制的结果输出到out.cpp文件中
   string a;                        //定义一个变量用作零时储存

   //以下的循环结构开始读取本文件信息并输出,直到将程序完整复制输出
   do{
       getline(cin,a);              
       cout<<a;
       if(a!="}"){cout<<endl;}
   }
   while(a!="}");

   return 0;
}

而此程序自我复制的本质,就在于,刚刚程序的代码,既作为程序的指令,又作为这些指令使用的数据,从而规避了之前程序无限套娃的情形.  也成为"自指",字面意思理解就好.

而对用这种信息的双重使用,就顺带一提  哥德尔悖论, 他的自指句"这个命题是不可证的"体现的就是这一点.  

即  我说  "这个命题是不可证的".   那么这句话本身就需要是可证明的.    可如果证明了"这个命题是不可证的".  根据这句话便可得知   这个命题是不可证的.  如此套娃,就是  哥德尔悖论的核心.

我们切回正题,对于刚刚的自复制程序,学过计算机的朋友可能知道,执行这个程序的时候,并不是这个程序自己便能自动执行,执行的过程是在编译好程序后由要操作系统来完成的,也就是说执行器完全外在于程序本身.    然而对于DNA来说,DNA不仅包含了自复制的"程序",同时也编码了它自己的解释器,从而能够执行自己的自复制"程序"

冯·诺伊曼的自复制自动机(当然他给出了数学描述,没有真正建造).也是与DNA一样,既包含自我复制的程序,也包含解释自身程序的机制,是完整的自我复制机器.比我所演示的自复制程序要复杂的多.  冯·诺伊曼设计的自复制自动机是人工生命科学真正的先驱之一,从原则上证明了自我复制机器的确是可能的,而后来也证明了其于生物的自我复制机制惊人的相似.

而目前也有许多文章描述了自复制纳米机器人的可能性.当然,也还都没有应验.  不过<复杂>此书写于多年以前,我在写文稿的时候查询的一些资料,好像已经有一些能够进行自复制的人造生命体了,感兴趣的话大家可以自行查询.

本期视频主要讲解了计算即生命进化的可行性及其自复制自动机的基本原则.下期我们来看看计算机中的遗传,遗传算法. 之后的视频呢可能会做一些书中的试验或是进行探讨.感兴趣的朋友可以见评论区置顶,好,我们下期再见.


《复杂》如何赋予你计算机生命(系列第三期)的评论 (共 条)

分享到微博请遵守国家法律