网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月13日漏签0天
人工智能吧 关注:115,964贴子:507,844
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 3 下一页 尾页
  • 40回复贴,共3页
  • ,跳到 页  
<<返回人工智能吧
>0< 加载中...

如何实现自编程序?

  • 取消只看楼主
  • 收藏

  • 回复
  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  我以前曾经用很多主题讨论自编程序问题和“自编程序算法”,现在我们可以研究它的母程序和小程序如何编写了。
  通过对具体演示程序的编写,我们可以确信“自编程序算法”的可行性


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  作者: 218.82.29.* 2008-5-5 21:35
  随机生成二进制代码,也可以叫做是自编程序算法。 
  请问老rui 你的自编程 效率有多高? 
  分析过吗? 
  用多少时间能取得什么样的效果?
----------------------------------
  把“随机生成二进制代码”作为指令,会造成我在“自主和需要”一主题了谈到的“CPU错认程序性的死机”(该主题第9楼)。是不能那么做的。
  如何提高自编程序的效率?正是本主题要研究、讨论的重点。


2025-07-13 05:50:27
广告
  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  一、“自编程序算法”的一些特点。
  1、“自编程序算法”相当于在原来语言中提供一个新语言。
  编程必须有程序语言。
  但是“自编程序算法”可以在任何计算机语言中,为我们提供一个新的计算机语言。这也是这种语言可以实现自编程的关键。

  此话怎么讲?
  它就是说,我们可以把任何一种计算机语言编写的程序,看成是一种编译软件,使它能够自编并运行自编的程序。或者说,它可以把任何一种计算机语言编写的程序,看成是一个虚拟机,自编并运行自编的程序。

  但是,由“自编程序算法”提供的“计算机语言”已经不是原来的计算机语言,它有自己的词汇和语法。
  “自编程序算法”就是规定这种“计算机语言”的词汇和语法的方式。


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  2、“自编程序算法”的运行平台——“母程序”
  “母程序”是“自编程序算法”的一个运行平台,它按照该算法原理,由人来编写。因此“母程序”是一个“人编程序”,是一个提供自编程序能力的“人编程序”。
  这意味着什么?
  它意味着“自编程序”必须依赖一个“人编程序”来工作。计算机的“自编程序能力”,由“人编程序”中获得。没有这个“母程序”的支持,让计算机自编程序是不可能的!

  让计算机自己编写程序,有很多方法。其中,支持自编的程序的智能越高,编写出的程序会越与人编写的程序接近。
  但是我偏偏不选择高智能程序来支持自编,我选择的是无智能的程序来支持自编。
  在很多人看来,编写程序本身就是高智能的工作,无智能自编程序,几乎不可能。而我从动物和人的“尝试错误学习”(自主学习)中看到了无智能自编程序的可能。
  它无非就是一个先胡乱组编,再通过一个外界检验的循环反馈过程对程序进行选择,最后确定成功程序的过程。这中间没有不需要自编系统有任何智能,只要它“耐心的”接受外界的检验就是了。

  这就是我的“母程序”的特色。这个“母程序”的结构我将在稍后介绍。


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  3、“自编程序算法”如何确定词汇的。
  首先要明确:因为原则上,“自编程序算法”可以在任何计算机语言中使用,因此它不是给原来的计算机语言提供词汇。它是为“以原来语言为基础的新语言”提供词汇。

  “自编程序算法”提供的词汇不是别的,而是在原来语言基础上运行成功的若干“小程序”。
  也就是说在新语言中,没有什么常量、变量、运算符号、表达式之类的词汇。也没有语句、函数等词汇组合。它们都由原来的语言表达。新语言只有唯一种类的词汇——小程序。

  这种唯一种类词汇的设置,保证了在使用语言上,各个小程序是平等的。因此用胡乱组编的方式组织程序,也不会出现死机问题。
  由无智能的“母程序”来自编程序,唯一的危险。就是会因不了解语言规则,而是程序不停机,即死机。而计算机本身又无法判别自身的停机问题。
  我们这样的设置,就避免了自编出的程序,运行时出现死机现象。

  “自编程序算法”还规定:自编的成功程序,也可以作为小程序,即作为新语言的程序语言,由“母程序”用来编写新的程序。
  也就是说,原始的“小程序”不必很多,随着自编程序的编写,新的“小程序”会不断出现,编程可依据的词汇也就会不断增多。


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  4、新语言的语法规则。
  自编程序在使用“小程序”为词汇的基础上,仅仅由一条语法规则:那就是顺序连接,构成自编程序。

  它与一般计算机语言的最大区别就是:它没有循环和转向的语句格式,因此也就没有相应的语法规则。

  这不意味着,自编程序绝对不存在循环和转向,在自编程序需要循环和转向时,循环和转向操作由“母程序”控制,因此就避免了因无智能编程,造成循环、转向的错误,造成程序死机。

  所以说,“自编程序算法”在设置语言和语法时,由于排除了死机产生的可能,因此防止了死机问题的发生。


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  作者: 218.24.205.* 2008-7-22 11:19
  自编程不应是随机的,应根据现有的规则,现有的程序,或通过网络,发展完善的程序。但这个程序不能成为这台机器的操作系统,可以成为他的解决问题的办法。
---------------------------------
  这是我十几年前的思路,那时我想编写一个能够理解机器码语言的自编程序软件,用了差不多一年半的时间写程序,但是后来发现,具有这种理解能力的系统,对它的智能要且太高,当时的机器智能水平根本无法达到。
  从那时起,我开始考虑无智能自编程序方案。

  高智能自编程序系统,仅仅能够起到代替人类编程的作用。

  而无智能自编程序系统,可以构成一个可学习、可发展的自组织系统,它可以在一定外界条件下,由无智能系统发展为高智能系统。
  因此,无智能自编程序系统比高智能自编系统的意义更大。


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  作者: 218.24.205.* 2008-7-23 08:08
  楼上的,难道要求你的芯片具有生物活性,进化个几亿年。 
  我估计,你是看不到了。
-------------------------------
  自编程序的基本学习模式,产生于心理学家桑代克的迷笼(迷津)实验,又叫做“尝试错误学习”(在我的设计中叫做“自主学习”)。建议你看懂那个实验以后再来参与讨论。

  “自编程序算法”是桑代克实验的计算机模拟和扩展。
  它既不需要生物芯片,又不需要几亿年的时间。

  它仅仅使用普通的计算机就可以模拟,甚至较为古老的386型机都可以模拟。
  桑代克实验培养一只猫学会打开笼子(自编出开笼程序),不超过一个月。我们的计算机学习自编一个程序,不会超过一天。

  而且自编程序还有一个更为简单的学习方式,那就是模仿学习方式。用模仿学习方式,学习自编一个程序,不会超过一个小时。


2025-07-13 05:44:27
广告
  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  作者: 218.24.205.* 2008-7-23 11:56
  如果成功那么智能机械人早出来了。
------------------------------
  智能机器人当然早就出来了。只是它的智能与人类智能还有很大差距而已


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  接第二十三楼
  5、“母程序”的基本任务。
  母程序:母程序是自编程序算法的关键。它负责的工作很多。下面是它的基本任务。
  A、它是人编程序。
  B、它负责实现自编程序。
  C、它负责检验自编程序的正确性。确认成功的程序。
  D、它负责保存成功程序,并为之编号,以便调用。
  E、它负责记录失败的程序,以便检查自编程序是否已经编过。
  F、它负责控制自编程序的循环、分支等转向工作。


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  接第三十八楼 
  6、“母程序”的基本结构。
  母程序主要部分是自编程序部分。还有一些完成其它任务的部分。我们首先讨论其主要部分。
  自编程序部分是一个循环反馈的结构。它先由需要机制发动自编程序操作,由连接小程序组编出自编程序来,再由运行程序运行自编程序并向外界输出运行结果,由外界确定运行是否成功,外界确定信息再反馈回母程序,由需要机制确定“需要是否被满足”。
  如果需要被满足,自编程序被记录下来,并可以被以后的运行调用。
  如果需要不能被满足,再做新的小程序连接,组编出新的自编程序来,再次循环。

  对于“母程序”的其它结构,我先不作介绍。以使文字简便一些。


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  接第四十一楼 

  7、“小程序”的来源。
  “自编程序算法”不仅可以用来编写智能程序,也可以用来编写其它程序。
  其自编程序的用途差别,由“小程序”的性能决定。原则上,任何一些可以单独运行的小程序,都可以用作自编程序的“小程序”。但是如果几个“小程序”的运行对象无关,它们即便是连接起来运行,也不会有什么明显的作用。
  因此,“小程序”一定要有合理的相关性,才能够连接起来组织出自编程序。

  我在最初编写的“自编程序算法”演示程序中,“小程序”并不选择为产生智能的“小程序”,仅仅选择一些能够有明显演示效果的“小程序”。
  这些演示程序仅仅是为了证明“自编程序算法”的可行性。

  至于编写强人工智能程序的“小程序”,还需要继续提炼、摸索。
  我目前进行的大量功能模拟性的智能程序编写。就是要通过这些功能模拟程序,模拟、提炼最适合形成强人工智能的“小程序”。


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  二、自编程序的技术要点。
  1、自编程席的技术难点。
  自编程序要依靠人编写的“母程序”工作。而编写“母程序”又往往是在高级计算机语言中编写的。

  于是一个人们忽视的关键问题出现了:高级计算机语言编写的程序,要通过翻译为机器码才能够执行,也就是要通过编译软件编译后才能工作。

  这个关键问题就是:如何用高级语言表达出“未来可能出现”的新程序?

  可能还有人理解不了这个问题的含义。我进一步解说一下:
  自编程序,是计算机在机器码状态下执行程序是编写的,它一定是用机器码写的。如果它是用高级语言写的,那么在执行新程序时,还需要把新程序在编译后才能执行。这就使得“母程序”无法脱离编译软件而单独工作。因此新程序一定使用机器码写成的,才可以使“母程序”脱离编译软件单独工作。
  但是我们再用高级语言编写“母程序”时,还需要把自编程序的形式、自编程序的调用方法等都描述清楚,“母程序”才能够更好地完成自编程序的任务。
  如何做到这一点?就是我上面所说的关键问题。

  目前,我在C语言和C++语言范围内、在汇编语言范围内,找到了解决这个技术难点的方法。


  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  2、用函数指针表达小程序。
  C语言和C++语言提供了函数指针,并可以用函数指针数组组织起函数指针。
  这个特征为我解决自编程序的技术难题,提供了解决方案。

  在这个解决方案中,一个函数指针,可以表示一个“小程序”,也可以表示一个语句。把它们放到一个函数指针数组中,依数组标号顺序执行,就能够在脱离“编译软件”的时候,由机器码写和运行自编程序了。

  有了这个解决方案。它可以在高级语言下编写“母程序”,在机器语言下编写自编程序,执行自编程序。实现由“母程序”自编程序的目标,就基本“水到渠成”了!


2025-07-13 05:38:27
广告
  • ruiaijun
  • T1000
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  3、使用函数指针的演示程序。
  需要说明的是:下一个程序与自编程序无关,也与智能无关。它仅仅是用函数指针组织成程序的演示。我们用这个演示程序,来说明“函数指针”编程的基本原理。

#include <stdio.h>
#include <iostream.h>
#include <string.h>
int static s[4];
void (*aaa[10])();
void zhixing()
{
cout<<"请输入两个加数"<<endl;
}
void zhixing1()
{
cin>>s[0];
}
void zhixing2()
{
cin>>s[1];
}
void zhixing3()
{
s[2]=s[0]+s[1];
}
void zhixing4()
{
cout<<s[0]<<"+"<<s[1]<<"="<<s[2]<<endl;
}
void fuzhi()
{
aaa[0]=zhixing;aaa[1]=zhixing1;aaa[2]=zhixing2;
aaa[3]=zhixing3;aaa[4]=zhixing4;
}
void main()
{
fuzhi();aaa[0]();aaa[1]();aaa[2]();aaa[3]();aaa[4]();
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 下一页 尾页
  • 40回复贴,共3页
  • ,跳到 页  
<<返回人工智能吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示