当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>Visual C++教程

用Visual C++ 6.0模拟仿真生态系统

    引言

    近几年,人工生命AL(Artificial Life)的研究越来越显示出其重要性,并迅速成为对传统生物学研究的重要辅助手段。 地球上的生命是碳-链基的生命,而人工生命则是把这种真实的生命形式移植到实验室中,其实是试图建立一种人工环境,在此环境中,使用计算机对其进行仿真,使人们能更好的了解环绕着人们的整个世界。本文通过程序示例对人工生命的计算机仿真的基本思路、实现方法作了浅显的描述。

    人工生命的基本说明

    现在计算机已经进入仿真真实世界,对生态系统的的一个最简单而又最基本的仿真模型就是对初等计算同类细胞的仿真。早在二十世纪六十年代末Cambridge(England)大学的John Conway就对此做了研究,并根据简单的细胞规则研究细胞(cells)的"活"、"死"以及"出生".之后的Michael Palmiter也用程序对盛有细菌的盘中昆虫的生活情形进行了仿真。他的仿真比前者要复杂的多,最初昆虫可以随意在盘中移动,昆虫不断吃着在移动中所遇到的细菌,并由这些细菌为昆虫提供继续行走所需要的能量,当昆虫已足够成熟并有充足的能量,便会分裂产生两个新的昆虫。Michael Palmiter把这些所有的活动都以图形的方式显示在计算机屏幕上。

    上述两人的对现实生命的仿真都是通过程序来模仿真实生命的一些基本特性,以此来实现人工生命,人工生命使用的是bottom-up方法,这一点不同于其他的一些人工智能程序AI(Artificial Intelligence)所使用的top-down方法。当在程序里把人工生命的基本要素设定好之后,程序并不能预见到所产生的人工生命在此后的发展状态,甚至在不同的环境下都会产生不同的发展结果。

    程序的设计实现

    本文仿照John Conway的细胞模型对细胞群的生命状态作了仿真模拟,并通过视图将细胞群的生命变化状态实时的显示到计算机屏幕上。我们仿真的对象是一个350*350的细胞群,在屏幕上用像素来表示细胞群中的每个细胞,并用不同的颜色来表示细胞的不同的生命状态。该细胞群体中的每个细胞的生命状态简单的归结为四个基本条件,即当某个细胞的周围(指前后左右四个方向)没有其他的细胞存在,则该细胞由于失去了群体的支援而将死亡;当其周围有一个细胞存在时,则会继续维持下去;当周围的细胞数达到两个时,则有足够的细胞数和能量足以产生一个新的细胞;而一旦周围的细胞超过三个时则会因为生存空间的过分拥挤而导致此细胞的死亡。根据上述规则我们就可以对其生命状态进行仿真了,我们在程序中只能根据其个体的生死基本条件来决定该个体的生或死,但我们对于这个群体在今后某个时刻的生命状态却无法进行预测。

共3页 首页 上一页 1 2 3 下一页 尾页 跳转到
相关内容
赞助商链接