(The Darwin's Theory of The Artificial Intelligence) 作者:罗瑶光 联系邮箱:yaoguang@clunet.edu 作品: 人工智能的达尔文进化思想(The Darwin's Theory of The Artificial Intelligence) 最新的知识工程结构中,传统的专家系统占据着主导的地位,可是世界的需求体系处在一个多变的运行环境,所以数据持久化理论是一个 为之奋斗的目标。人工智能软件也一样,逃避不了自然的更新所带来的种种弊端。 人工智能何去何从,自然会规划它,正如达尔文的生物进化论一样,新的智能体系标准都是被需求自然选择出来,这就是我要表达的中心思想。 过去50年里,一些经典的软件逃不过需求的抉择,最终枯黄暗淡,当然一些企业将产品拼命的重写升级,因为核心开发者的年龄老化,新的改 造者无法掌握原始开发思想和理论,最后产品的品质遭受巨大的冲击,损失惨重,一种新的软件开发理论需要被人所证实,这也就是我的思想。 软件也一样,需要有自我的人工选择的进化体系。 通过最近的 UNICORN AI软件的构造,设计和编码测试中,我发现了许多因空想而创造的计算机理论在实际的编程分析中有巨大的差异, 我用的是JAVA为主的语言,我就发现JAVA的继承没有达到具有进化思想的语言标准,但是JAVA在这个初期的进化标准测试中其方法论远 远胜出C/C++ ,我用C风格写JAVA程序并没有给我的实际编程带来种种麻烦,但是JAVA仍然需要改进,比如你抽象了一个父类,而你的 子类的变量函数还是需要在“OBJECT 父类=(子类)父类” 这样的写法中的才能做出子类运算。如果孙类又继承子类,怎么让OBJECT 得到孙类?(我的用的是OBJECT 子类继承父类,然后OBJECT 子类=(孙类)子类 。这样孙类得到了运算),可是这就是一个动态内 存结构分配的大问题!设计的相当繁琐。JAVA还停留在初级语言进化级别,没有具备高级的进化思想。其次, 子类如果有多个孙类,也只 有子类可以运算,父类就被无法作出相应的运算。这也是一个诟病,难道再加上OBJECT 子类=(孙类)子类 ,OBJECT 父类=(子类) 父类 来实现?这就更加繁琐了。 通过上面的描述,我有自己的看法,可是我还是选择了JAVA, 即使繁琐,但是没有任何错误,因为用底层语言来实现就会更加繁琐。陷阱更多。 人工智能选择了JAVA是一个自然的抉择。JAVA和C#都是高层语言,可是JAVA的个性就是天生对数据来处理的,因为JAVA早期是一个 WEB语言,WEB处理数据信息有独特的优势,这是JAVA进化为数据分析语言的一个真实的例子。C#在这个问题里一直在改进自己,类似 JAVA一样,甚至和JAVA一样,可是没有一个体系来评估它。早期应用JAVA的WEB数据工程师也不会转移到C#.所以C#的最大优势还是 仅仅在WINDOWS上的控件应用。 通过这段的描述,仅仅证明任何一种语言的最大优势也仅仅体现在它诞生之初的创造理论和思想。所以JAVA和C#根本就没有什么可比性。 因为他们最原始的创造理论,体系和思想结构就不一样。如果真的JAVA和C#不倒,最后,通过进化的思想预测,JAVA最后走图形,大数据 分析,WEB,方向, 而C# 应该走界面,控件,WINDOWS设备集成方向。 人工智能软件的进化主要分为父类的更新,子类的变异和继承。现在的许多人工智能软件因为需求关系的制约,导致创造思想的缺乏,父类被 写死了,无法得到应有的适应扩展,比如ORACLE的数据库ETL,仅仅在处理数据仓库领域有巨大价值,无法扩展到数据可视化,并行运算 等领域。德国的KNIME也是因为父类的写死,结果插件很多API都不支持,实例证明,我用SWT写插件界面,就无法实现。我在节点里面导 入自己的数据库API,它就要我在软件的配置选项里面去导入,这就是父类写死的诟病。 当然有很多细节的问题,ORACLE ETL和KNIME DM 都不失为成功大作。上面提到的是父类写死没有得到进化论的思想。然后评论一下子类变异。 JAVA处理子类函数是比较完美的,用过JAVA开发大型项目的人都相当有经验处理接口和继承。可是 JAVA有没有变异的特性呢?可以说无, 比如我举个例子,当父类PUBLIC 属性1=0;,子类就无法在PUBLIC 属性1=1了,这就是一个变异失效的问题。JAVA 很灵活,但是 不够脚本语言灵活。其次我要说的是JAVA的变异是带引号的变异,其特点就是子类修改父类函数,JAVA的子类是可以修改父类的同名函数处 理过程的。不过你要让子类和父类的函数名一样,这是一个 JAVA默认的机制,先执行父类同名,再执行子类同名。然后返回到父类,然后返回 的过程。所以同名函数可以在子类里得到修改,保证了参数变异。这样,软件在实际的编写过程中也非常的灵活和独到。 最后通过上述的语言进化思想,程序进化思想的表述,我有一个很深的体会。每一种语言要根深蒂固,需要有它的需求,它的功能在需求中要有 选择的得到进化。不然,这就是语言被淘汰的最大原因,我不喜欢看到当今世界上各种语言层出不穷,这就是许多语言没有得到进化,体现不了 需求的最大诟病。 其次,语言需要扩展,高级语言的API类库和一些架构体系的出现是一个很好的扩展证明。最后是变异,类似脚本语言,灵活,方便。 那么软件呢?软件也一样,选择一门适应自己需求的语言来设计尤为重要。 其次,软件的架构要有松耦度,类似于OSGI,FELIX那样,进行组 件持久化,KNIME的OSGI思想和LIFERAY的OSGI思想是一致的,虽然API设计风格不一样,但是效果都很笃厚。 生物需要有达尔文思想,人工智能同样也存在,这是需求持久化的基础。这也是我研发UNICORN AI平台的基本条件。 (写完后在网上搜索关键字,国际类似论文就有5,6篇。。。又白想了。。不过别人的论文都是对算法和机制做分析,我的这篇是对需求和软 件设计做分析,略有不同)