当前位置:编程学习 > VB >>

程序设计

 我要做的是一个人类群体的复杂网络模型,模型已经建好,大概描述如下:5.2人类群体复杂感知网络的进化模型的基本模型5.2.1环境   人所处的仿真环境为L*L的二维平面区域。所有的人在这样一个区域中行走,也就是说产生的个体在这个环境里移动,每个个体都呆在其中的一个方格里。在这里,我假设环境是150×150的大小,一共要产生80个个体,个体是随机生成的。

    环境具有以下属性:    1 环境的宽度(WorldX);    2.环境的高度(WorldY)。5.2.2  主体(即个体)及其行为规则    模型中定义了一个主体:人主体。(每个人是一个个体)     1) 人主体的静态属性     a) 主体编号(id)。 环境中每一个人的唯一标识,对应到每一个主体。     b) 性格属性。根据本课题对人类性格特征所做的划分,把主体所符合的性格特征的代号写入性格属性中。     2)人主体的动态属性     b) 年龄。 每个仿真周期年龄增加一岁。     c)交互。人与人之间的来往,不论采取何种方式来往,只要每来往一次,就把交互的两个人的交互记录做一次更改,把他们彼此的交互次数加1。     d)活动范围。  就是人主体可以感知和影响到的区域。活动范围是根据个体生存能力的改变而不断变化的。     e)位置(x,y)。用来确定主体当前在环境中的位置,用所在单元格的坐标表示。     3)主体的行为规则    a)邻近性规则    首先说地域距离临近的表示方法,每个主体在环境中都有一个位置,来表明主体所处的位置,地域距离临近考虑在环境中他周围的8个位置,看有没有个体,如果有,就把这两个个体之间建立联系。    其次,再说功能性距离的邻近。为了说明功能性距离的邻近,本课题在主体属性中加入了交互属性,所谓功能性距离的邻近主要是指主体之间交互性的多少,在一定时间内交互次数较多的主体之间,功能性距离较近。    两个主体每交互一次,就在交互属性中做一个记录。为了方便,本课题对交互属性做如下定义。    对于每一个主体,首先,它具有主体编号属性,依据这个属性,每个主体都有一个相对应的编号,本课题称这个编号为它的id号,在此基础上,本课题把主体的交互属性定义为数组int jiaohu[];下标表示和谁的交互次数。比如id 6的交互数组jiaohu[  ]就表示个体6和某个个体的交互次数。对于id 6,它的交互数组中的jiaohu[120]就表示个体6与个体120的交互次数。规定在每个周期中,若两个主体的交互次数多于10次(包括10次),则认为两个主体的功能性距离是邻近的。    b) 同类相吸原则    本课题对人的特性做了如下划分。     1开朗,2内向,3能言善辩,4沉默寡言,5喜好历史,6喜好体育,7喜好天文地理,8 喜好玄学 9喜好文艺,10求知欲强, 11 懒散 ,12 勤快。    为了适应本课题的研究,本课题把这些人类的特性归入一个库,并把每一种性格编上编号。并且,在人主体的属性中加入性格属性,并把性格属性定义为数组,每符合一项,把这项的数值加入性格属性的数组中。两个个体相遇,则比较数组中的值,若有两项或者更多项的值相同,则认为这两个个体属于同类。c)需求原则    说起这个原则,首先要提到马斯洛需求层次的理论。马斯洛需求层次的理论是心理学中的一个重要理论,在这个理论中阐述了人们的需求层次是从衣食住行这些简单的生存需要到认知,审美,自我实现等需要逐层递进的,其实就是说人的生存有各种各样的需求。从这里可以想到人与人的交互其实也就是对人们某种需求进行满足的过程和行为。    想想看,在与人交往的过程中,如果发现某个社会群体或者个人会给我们自己带来回报,满足我们的某种需求,我们就会把他列为交往对象。比如说,一个人长的很漂亮,我们就会觉得愿意跟他来往,其实是因为他满足了我们的审美需求。当我们遇见某个人的时候,我们总是根据自己的需要审视这个人,如果这个人能满足我们的某种需求,比如我们正好遇到了某种困难,而有个人可以帮我们解决,那么这个人就是我们比较愿意结交的对象,我们会选择与他交往。    事实上,另外一种情况在人们的日常生活中常见的,那就是人们总是根据自己目前的需要去选择那些自己目前需要的人,然后主动想办法与之结交,产生联系。比如,有个女孩子脸上长了青春痘,影响了美观,那么她此时就有一种祛痘的需求,她就会想办法认识那些能帮助她的人。可以说这是人们交往的基础,所以本课题采用了这样一个规则。下面把本课题采用的规则做下面的介绍。    为了表示这种需求原则,给各个主体一个权值,权值大的吸引力比较高,那么剩下的工作就是权值的设定,这取决于人们更愿意结交什么样的对象。本课题采用下面的看法。    首先本课题认为权贵之人或者权贵家庭的成员是人们首选结交的对象,因为权贵之人总是可以满足人们更多的需要,在人们遇见困难的时候可以提供更多的帮助,可以为朋友提供更多的发展机会。对于人们来讲,能够直接结交权贵之人更好,如果不能,能够和他的家人确定良好的关系,也是有很大帮助的。所以本课题采取这样的设定: 如果这个人出生权贵之家,权值加1,如果这个主体本身是权贵之人,权值加2。    其次,不论是人们的衣食住行这些基本的生活需求,即使是一个人想要实现自身的价值,成就某些事业,也都离不开金钱的支持。不是每个人都可以有钱去开创自己的事业,而在生活中,人们金钱的主要途径就是从朋友处借钱,如果能有几个有钱的朋友,无疑在生活以及事业上都会有很大帮助。基于这些,本课题采用这种看法,认为如果这个人出生于富贵之家,权值加1;若主体本身掌握着大量财富,权值加2。    除此之外,在人们的生活有了保障之后,人们还有精神层次的需求,人们都有求知欲,俗语说:“听君一席话,胜读十年书。”如果一个人博学多才,他的朋友就可以从他那里学到很多东西,进而自己的水平也会得到提高,所以本课题认为一个人如果博学多才,权值加1;如果一个人睿智,那么他在朋友遇到困难的时候就可以给出合理化建议,平时也会影响朋友的思想,使之提高,这种人同样会成为人们愿意结交的对象,课题中,这种人同样权值加1。    再就是人们的审美需求,所以决定了如果一个人外形漂亮,同样是受欢迎的,这种人权值加1。    权值设定之后,人们在选择结交对象的那个时候优先选择结交那些权重比较大的个体。 
    上面这些就是一个主体在环境中运动所遵循的规则,现在把运动的基本方式简述如下。    一个活动的主体,当他在环境中游走的时候,首先根据自己的位置属性找到与自己地理位置临近的个体与之产生交互,建立联系,并且把所产生的联系写入人际关系的资源量,然后根据交互属性的记录,找到与自己功能性距离较近的个体,与之建立联系,同时更改人际关系资源量的属性。再就是,令个体以一个随机的速度在环境中走动,对所遇到的个体,查看他的性格属性,并与自己的比对,如果是同类,就与之产生交互,建立联系,同时更改交互属性和人际关系资源量属性。如若不是同类,则查看他的权值,只要权值不为0,则与之建立联系。     我现在对于编程的考虑:     首先建一个150×150的二维数组,数组的位置与个体生成的时候在环境中的位置相一致,也就是说当生成一个个体的时候,如果他生成的位置是(55,66),则把数组的array[55,66]的值赋为1,表示在环境里(55,66)这个位置有个体存在。个体的生成位置是随机的,我用的Math.random函数。     在实现第一个规则,即邻近性原则的时候,地理性临近只考虑他周边的8个位置,如当前点在(55,66)这个位置,那么就考察(54,66),(56,66),(54,65),(55,65),(56,65),(54,67),(55,67)(56,67).8个位置,若某个位置上有个体,则把这个个体与当前个体建立联系。     其余的除了模型描述的内容,我还没有更进一步的想法。



请问大虾们,如何程序实现以上内容???? --------------------编程问答-------------------- 接分!!! --------------------编程问答-------------------- 楼主看来是要做个游戏啊,不错,顶一把,除了最后那一句. --------------------编程问答-------------------- ding~ --------------------编程问答-------------------- 浩大的工程。。。。UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,