ABSTRACT

CONTENTS 8.1 Introduction and Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

8.1.1 Computational Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 8.2 The Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

8.2.1 The Order Cars Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 8.3 Implementing the BML Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

8.3.1 Creating the Initial Grid Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 8.3.2 Testing the Grid Creation Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 8.3.3 Displaying the Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 8.3.4 Visualizing the Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 8.3.5 Simple and Convenient Object-Oriented Programming . . . . . . . . . . . . . . . 325 8.3.6 Moving the Cars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

8.4 Evaluating the Performance of the Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 8.5 Implementing the BML Model in C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

8.5.1 The Algorithm in C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 8.5.2 Compiling, Loading, and Calling the C Code . . . . . . . . . . . . . . . . . . . . . . . . . 355

8.6 Running the Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 8.6.1 Exploring Car Velocity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

8.7 Experimental Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

8.1 Introduction and Motivation In this chapter, we will explore a very simple dynamic system. It exhibits two interesting characteristics – a phase transition and self-organization.