This presentation is the property of its rightful owner.
Sponsored Links
1 / 213

复杂系统 的 计算机模拟 PowerPoint PPT Presentation


  • 72 Views
  • Uploaded on
  • Presentation posted in: General

复杂系统 的 计算机模拟. 探索复杂性的模型方法 方美琪 [email protected] 复杂. —— 诞生于秩序与混沌边缘的科学 一场激动人心的科学观念的革命 瞬间照亮了各个学科领域,其中的原则和思想影响是如此地深远和广泛,以至于绝大多数学科都卷入其中!. 过去我们用 数学 给出世界完美的描述,我们很陶醉,以为我们已经认识了世界。但近来我们发现世界其实很复杂,并不确定,偶然的小情况可能放大为决定性的事件,影响了整个历史进程复杂地发展。 原来组成系统的个体是有适应性的。个体的适应性就产生了系统的 复杂性。

Download Presentation

复杂系统 的 计算机模拟

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


3561727

[email protected]


3561727


3561727

..


3561727


3561727


3561727

  • SWARM

  • STARLOGO


3561727

  • I


3561727

I !


3561727


3561727


3561727

  • = =


3561727

  • 1963


3561727


3561727


3561727


3561727

,

?


3561727

  • .

  • =


3561727

  • new age


3561727

II


3561727


3561727


3561727


3561727

  • : windows,,windows

  • DD


3561727


3561727

  • vs

    [] Sheldrake


3561727


3561727


3561727

3.


3561727


3561727


3561727


3561727

  • 20025Nanoarchaeum equitansDNA501000500500


3561727


3561727


3561727

Franceso Sylos Labini


3561727

CAS

  • CAS

  • [1], 2000 P252


3561727


3561727

  • CAS


3561727

  • 1860 Delaunay Charles Eugene Delaunay1816-1872,

  • 1970, ,20,, Delaunay

  • :

  • :


3561727

  • Sugar scape


3561727

Swarm Repast Ascape Satrlogo Dynamo


3561727


3561727


3561727


3561727

()

,


3561727


3561727

1

2


3561727

3

4


3561727


3561727


3561727


3561727


3561727

  • CAS(Complex Adaptive System)

  • (Adaptive Agent)


3561727


3561727


Agent based modelling

Agent-Based Modelling

  • ABM


3561727

CAS

1994

(Adaptive Agent),


3561727

CAS:

A)(Adaptive Agent)CAS

B)()CAS


3561727

CAS:

C)

D)


Cas 6

CAS6:


Cas 61

CAS6:


Cas 62

CAS6:


Cas 7

CAS7

  • 1(Aggregation)

    • meta-agent

  • 2(Tag)


3561727

3(Non-linearity)

4(Flow)

CAS


3561727

5(Diversity)

CASCASniche

CAS

CASCAS


3561727

  • 6Internal Model

  • 7. (Building Blocks

    • CAS


3561727

  • SWARM

  • STARLOGO


3561727

CAS


3561727

/


3561727


3561727


3561727


3561727

1

2

3

4


3561727


3561727

  • :


3561727

1

2

3

4


3561727


3561727


3561727


3561727


3561727


3561727


3561727


3561727

CAS


3561727


3561727


3561727


3561727


3561727


3561727

-

  • PC

  • ,

  • email

  • agentagent

  • PC


3561727


3561727


3561727


3561727


3561727

CAS complex adaptive system

  • MAS Multi-Agent System

  • ABM Agent based Model

  • ACE Agent based Computional Economy


3561727

  • 1

  • 2


3561727

  • 3

  • 4,


3561727

1000


3561727

  • 5


3561727

  • 6

  • 7


3561727


3561727


3561727

Swarm

Starlogo


Swarm

SWARM

1

2Swarm

3

4 Swarm

5Swarm

6Swarm


3561727

1

  • Swarm


3561727

2Swarm

Swarm

Swarm

SwarmObjective CObjective CCTcl/Tk

UnixWindows 95/98/NT


3561727

Swarm SUN JDK 1.2Jbuilder3Visual Cafe 4JavaSwarm

Unix

1JavaSwarmJavaUnixKaffehttp://www.alphaworks.ibm.com/tech/jikesBlackdown JDKhttp://www.Blackdown.orgSUN JDKhttp://java.sun.com/products/jdk/1.2/

2emacsemacsGNU


3561727

3SWARM

object


3561727


3561727

    • .


3561727


3561727

4Swarm

SwarmSwarm

Swarm

Swarm


3561727

get parameters

initialize

for 1 to timesteps do:

for 1 to num_agents do:

agent-i-do-something

end for

show state

end for

quit


3561727

Swarm

Swarm


3561727

  • swarm

  • SWARMswarm

  • swarmswarm

  • SWARM

  • swarm


3561727

  • swarm

  • swarmSWARMswarmswarm

  • Swarm

  • ;

swarmSwarm


3561727

Swarm

Sub-Swarm

Sub-sub-Swarm


3561727

  • Swarm

  • ,

=10.2


3561727

GUI)


3561727

GUI)

    • Digraphs


3561727

GUI)


3561727

  • Swarm


3561727

Swarm(bottom-up)


3561727

5Swarm

Heatbugs

Swarm


3561727


3561727


3561727

  • swarm

  • swarmHeatbugModelSwarm

    • interface HeatbugModelSwarm : Swarm {

    • int numBugs; // simulation parameters

    • double evaporationRate;

    • double diffuseConstant;

    • int worldXSize, worldYSize;

    • int minIdealTemp, maxIdealTemp;

    • int minOutputHeat, maxOutputHeat;

    • double randomMoveProbability;

    • id modelActions; // scheduling data structures

    • id modelSchedule;

    • id heatbugList; // list of all the heatbugs

    • Grid2d * world; // objects representing

    • HeatSpace * heat; // the world

    • }

    -getHeatbugList; // access methods into the

    -(Grid2d *) getWorld; // model swarm. These methods

    -(HeatSpace *) getHeat; // allow the model swarm to be observed.

    +createBegin: aZone; // extra methods you

    -createEnd; // provide for Swarms

    -buildObjects;

    -buildActions;

    -activateIn: swarmContext;


    3561727

  • heatbug

  • - setWorld: (Grid2d *) w Heat: (HeatSpace *) h; // which world are we in

    -createEnd;

    -(double) getUnhappiness;

    -setIdealTemperature: (HeatValue) i;

    -setOutputHeat: (HeatValue) o;

    -setRandomMoveProbability: (float) p;

    -setX: (int) x Y: (int) y; // bug's position

    -setBugColor: (Color) c; // bug's colour (display)

    -step;

    -drawSelfOn: (id <Raster>) r;

    interface Heatbug: SwarmObject {

    double unhappiness; // my current unhappiness

    int x, y; // my spatial coordinates

    HeatValue idealTemperature; // my ideal

    temperature

    HeatValue outputHeat; // how much heat I put out

    float randomMoveProbability; // chance of moving

    randomly

    Grid2d * world; // the world I live in

    int worldXSize, worldYSize; // how big that world is

    HeatSpace * heat; // the heat for the world

    Color bugColor; // my colour (display)

    }


    3561727

  • HeatbugswarmHeatbugModelSwarm

  • buildObjects

  • for (i = 0; i < numBugs; i++)

    {

    Heatbug * hbug;

    int idealTemp, outputHeat;

    // Choose a random ideal temperature, output heat from the specified

    idealTemp = [uniformRandom rMin: minIdealTemp Max: maxIdealTemp];

    outputHeat = [uniformRandom rMin: minOutputHeat Max: maxOutputHeat];

    // Create the heatbug, set the creation time variables

    hbug = [Heatbug createBegin: [self getZone]];

    [hbug setWorld: world Heat: heat];

    hbug = [hbug createEnd];

    // Add the bug to the end of the list.

    [heatbugList addLast: hbug];

    // Now initialize the rest of the heatbug's state.

    [hbug setIdealTemperature: idealTemp];

    [hbug setOutputHeat: outputHeat];

    [hbug setX: [uniformRandom rMax: worldXSize] // random position

    Y: [uniformRandom rMax: worldYSize]];

    }


    3561727

  • swarmHeatbugswarmspaceHeatbugModelSwarmbuildObjects

  • heat = [HeatSpace createBegin: [self getZone]];

    [heat setSizeX: worldXSize Y: worldYSize];

    [heat setDiffusionConstant: diffuseConstant];

    [heat setEvaporationRate: evaporationRate];

    heat = [heat createEnd];


    3561727

    • swarm

  • buildObjectsbuildActions

  • modelActions = [ActionGroup create: [self getZone]];

    [modelActions createActionTo: heat message: M(stepRule)];

    [modelActions createActionForEach: heatbugList message: M(step)];

    [modelActions createActionTo: heat message: M(updateLattice)];

    modelSchedule = [Schedule createBegin: [self getZone]];

    [modelSchedule setRepeatInterval: 1];

    modelSchedule = [modelSchedule createEnd];

    [modelSchedule at: 0 createAction: modelActions];


    3561727

  • swarmswarmHeatbugHeatbugObserverSwarmswarmswarm

  • interface HeatbugObserverSwarm : GUISwarm {

    int displayFrequency; // one parameter: update freq

    id displayActions; // schedule data structs

    id displaySchedule;

    HeatbugModelSwarm * heatbugModelSwarm; // the Swarm we're observing

    // Lots of display objects. First, widgets

    XColormap * colormap; // allocate colours

    ZoomRaster * worldRaster; // 2d display widget

    EZGraph * unhappyGraph; // graphing widget

    // Now, higher order display and data objects

    Value2dDisplay * heatDisplay; // display the heat

    Object2dDisplay * heatbugDisplay; // display the heatbugs

    }


    3561727

  • HeatbugObserverSwarm

  • // Create the graph widget to display unhappiness.

    unhappyGraph = [EZGraph createBegin: [self getZone]];

    [unhappyGraph setTitle: "Unhappiness of bugs vs. time"];

    [unhappyGraph setAxisLabelsX: "time" Y: "unhappiness"];

    unhappyGraph = [unhappyGraph createEnd] ;

    [unhappyGraph createAverageSequence: "unhappiness"

    withFeedFrom: [heatbugModelSwarm getHeatbugList]

    andSelector: M(getUnhappiness)] ;


    3561727

  • main()

  • [theTopLevelSwarm buildObjects];

    [theTopLevelSwarm buildActions];

    [theTopLevelSwarm activateIn: nil];

    [theTopLevelSwarm go];

    // theTopLevelSwarm has finished processing, so it's time to quit.

    return 0;

    }

    int main(int argc, const char** argv)

    {

    id theTopLevelSwarm ;

    // Swarm initialization: all Swarm apps must call this first.

    initSwarm(argc, argv);

    // swarmGUIMode is set in initSwarm(). It's set to be 0 if you

    // typed `heatbugs --batchmode' or `heatbugs -b', Otherwise, it's set to

    // 1.

    if (swarmGUIMode == 1)

    // We've got graphics, so make a full ObserverSwarm to get GUI objects

    theTopLevelSwarm = [HeatbugObserverSwarm create: globalZone];

    else

    // No graphics - make a batchmode swarm and run it.

    theTopLevelSwarm = [HeatbugBatchSwarm create: globalZone];


    3561727

    6 Swarm

    • SwarmSwarm

    swarmobject swarmSwarmobject SwarmModelSwarmObserverSwarm

    Swarmobject

    activity

    simtools

    Simtools


    3561727

    Collection

    ListArraySetSwarm

    defobj

    Objective-CSwarm

    random

    Space Grid2D

    Space


    3561727

    ganeuro

    SwarmJuan J.Merelo


    Starlogo

    Starlogo

    CAS


    Starlogo1

    Starlogo

    • StarLogo

    • StarLogoStarLogo


    3561727

    • StarLogo is developed at Media Laboratory, MIT, Cambridge, Massachusetts, with support from the National Science Foundation and the LEGO group.


    3561727

    • Starlogo(turtle)(patch)(canvas), , , Starlogo

    • Starlogo(breeds )


    3561727

    • (canvas)

    • +

      +


    3561727


    3561727


    3561727


    3561727

    • (monitor)

    • output print


    3561727

    • speedspeedobserverturtles timer

    • ( Who)

    • 14


    3561727


    3561727


    3561727

    • Starlogo

    • set


    3561727

    • -at, -to , -towards


    3561727

    • let


    3561727

    list

    • list sentence[ ]Starlogo

    • Pick []

    • copy-list []

    • Median-of-list[]

    • Mode-of-list[]

    • Setitem number[] thing numberthing


    3561727

    • Output

    • Plot

    • Info


    3561727

    • diffuse variable percentage

      variablepercentage(0 1)

      00color1390go20%

      diffuse4 variable percentage diffusediffuse4


    Diffuse

    Diffuse

    12

    27

    output

    colordiffuse


    3561727

    • fd, step, jump, leap

      fdstepstep10step=10*stepjumpleapstep10step=stepjumpleapleap jumpfdstepfdnumber step


    3561727

    to go

    ask-turtle 1 [resett fd 10 print timer]

    ask-turtle 2 [resett jump 10 print timer]

    ask-turtle 3 [resett leap 10 print timer]

    ask-turtle 0 [resett repeat 10 [step] print timer]

    end

    • output

    Turtle #1: 0.831

    Turtle #2: 0.14

    Turtle #3: 0.14

    Turtle #0: 0.811


    3561727

    • Akerlof

    • ACE


    3561727

    1


    3561727

    • NumTicket = p * predictDay

    • /


    3561727


    3561727

    • 1

      2


    3561727


    3561727

    2


    3561727


    3561727

    • OBJECT


    3561727


    3561727


    3561727

    3


    4 ace

    SWARM

    4ACE

    1.

    2.

    3.


    3561727

    1.

    1.1

    1.2

    1.3


    3561727

    1.1


    3561727

    1.1

    • 1

      2


    3561727

    nn xR

    R ( x . p ) = px c ( x ) pc ( x )


    3561727

    p = p ( n X )n XX pxxp = c( x )


    3561727

    x*=argmaxxR(x,p)=g(p)

    argmaxxp = p ( n X )x

    x=g(p(nX))=h(X)


    3561727

    X=h(X)Xx=X=h(X)


    3561727


    3561727

    1.2

    1

    2

    3

    1

    2


    3561727

    1.2


    3561727

    1.2

    • T

    • 2410001010010010

      log(N) = log(K)-slog(c)

      N=K=1000,c=s1


    3561727

    1.3


    3561727

    2.

    • Agent-based Computational EconomicsACE

    • ACE


    3561727

    2.

    2.1

    2.2

    2.3

    2.4

    2.5

    2.6


    3561727

    2.1

    • Computational Economics


    3561727

    2.2

    Artificial Intelligence

    1992


    3561727

    2.2


    3561727

    2.2

    • Neural Networks


    3561727

    2.3

    • ACE

    • ACEOO

    • ACE


    3561727

    2.3

    • Model Economy


    3561727

    2.3

    YoungShubikHenrichChattoe

    2001Journal of Economic Dynamics and ControlComputation EconomicsIEEE Transaction on Evolutionary Computation


    3561727

    2.4

    Holland 1975Genetic Algorithms


    3561727

    2.4

    • Holland1986Classifier Systems

    • 3

      1

      2

      3


    3561727

    2.4

    IF<>THEN<><>


    3561727

    2.5

    • 1

      2

      3

      4


    3561727

    2.5


    3561727

    2.6

    • CL(computational laboratory )

    • CL

    • CL

    • CLCL


    3561727

    2.6

    • Trade Network GameTNGLab (C++ /Visual Basic

    • SimBioSysCL

    • SwarmAscape (Java)RePast (Java)

    • MAMLMulti-Agent Modelling Language) MATLAB SDML (The Strictly Declarative Modelling Language ) StarLogo StarlogoT


    3561727

    3.

    3.1 ACE

    3.2 ACE

    3.3 Thomas Schelling

    3.4

    3.5 ACE


    3 1 ace

    3.1 ACE

    1989KiyotakiWright1989

    KiyotakiWrightMarimon1900

    Vriend1995

    Epstein2001


    3 2 ace

    3.2 ACE

    • Santa Fe

    • Tesfasion


    3 2 ace1

    3.2 ACE

    • KirmanVriend2001


    3 3 thomas schelling

    3.3 Thomas Schelling

    • 1.

      Schelling

    • 2.


    3 5 ace

    3.5 ACE

    • ACE

    • ACE


    3 5 ace1

    3.5 ACE

    • ACE


    3561727


    Matlab

    MATLAB

    • http://www.mathworks.com/


    3561727

    • 1

    • 2

    • 3


    3561727


  • Login