Crowd Dynamics AI Engine w/ PSO By: Keith Ainsworth Pd. 5.

Slides:



Advertisements
Similar presentations
1 Code Optimization Code produced by compilation algorithms can often be improved (ideally optimized) in terms of run-time speed and the amount of memory.
Advertisements

Teaching with Greenfoot
Puzzle Image Processing Sam Bair (Group Leader) Nick Halliday Nathan Malkin Joe Wang.
Motion Planning CS 6160, Spring 2010 By Gene Peterson 5/4/2010.
Properties and Attributes of Polygons
Geometry Chapter Polygons. Convex Polygon – a polygon with a line containing a side with a point in the interior of the polygon.
Lesson 1.6 Classify Polygons. Objective Classify Polygons.
Wombats Creating Games with Greenfoot The Walker School – Games and Simulations
Search and Escape in “The Snorks World” Guillaume Poncin Gregory Kron Monday, June 9 th 2003.
1 An introduction to programming concepts with Scratch.
Level 2 Mobile and Games Programming Modules Cathy French K233.
Palletizing the Easy Way
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Antigone Engine Kevin Kassing – Period
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Getting Started With Alice. Why Learn about Programming computers. Learning to program a computer does not turn you into a nerd We will use Alice which.
Polygons Polygons. Polygon Any shape where every segment intersects exactly two others at its endpoints.
Swarm Intelligence 虞台文.
Raytracing and Global Illumination Intro. to Computer Graphics, CS180, Fall 2008 UC Santa Barbara.
Review IMGD Engine Architecture Types Broadly, what are the two architecture types discussed for game engines? What are the differences?
School of Computer Science & Information Technology G6DICP - Lecture 17 GUI (Graphical User Interface) Programming.
Developing An Educational Rigid Body Dynamics Physics Engine By Neal Milstein.
Adrian Treuille, Seth Cooper, Zoran Popović 2006 Walter Kerrebijn
Computer Graphics Chapter 6 Andreas Savva. 2 Interactive Graphics Graphics provides one of the most natural means of communicating with a computer. Interactive.
Design of a 2D Graphics Engine By Joe Hallahan. What is an Engine? Software engine: core of the program Internal as opposed to visible Others (physics,
6.1 Polygons.
8.1 Classifying Polygons. Polygon Review  Characteristics of a Polygon All sides are lines Closed figure No side intersects more than 1 other side at.
1.6 Classify Polygons. A polygon is convex if no line that contains a side of the polygon contains a point in the interior of the polygon. A polygon that.
Games Development 2 Entity Update & Rendering CO3301 Week 2, Part 1.
Object Oriented Analysis & Design Game Patterns. Contents  What patterns are  Delegation  Game Loop  Scene Graph  Double Buffering  Component 
Super Pong Andrew S. Dunsmore CSC436 August 2004.
Particle Swarm Optimization † Spencer Vogel † This presentation contains cheesy graphics and animations and they will be awesome.
Lesson 6 – Libraries & APIs Libraries & APIs. Objective: We will explore how to take advantage of the huge number of pre-made classes provided with Java.
Games Development 1 Review / Revision CO2301 Games Development 1 Semester 2.
Computer Game Design ActionScript is… Object-oriented programming Everything you do in ActionScript does something to some object* Some objects.
Havok FX Physics on NVIDIA GPUs. Copyright © NVIDIA Corporation 2004 What is Effects Physics? Physics-based effects on a massive scale 10,000s of objects.
Developing An Educational Rigid Body Dynamics Physics Engine By Neal Milstein.
1 Motion Fuzzy Controller Structure(1/7) In this part, we start design the fuzzy logic controller aimed at producing the velocities of the robot right.
Variables and Random Numbers Computer App Session 4.
Random Numbers Random numbers are extremely useful: especially for games, and also for calculating experimental probabilities. Formula for generating random.
Chapter 1-6 (Classify Polygons)  What is a polygon?  A closed plane figure formed by 3 or more line segments, with no two sides being collinear.
§10.1 Polygons  Definitions:  Polygon  A plane figure that…  Is formed by _________________________ called sides and… ..each side intersects ___________.
Advanced Games Development Game Physics CO2301 Games Development 1 Week 19.
Introduction to Game Programming & Design III Lecture III.
Computer Systems Lab TJHSST Current Projects In-House, pt 2.
Review IMGD Engine Architecture Types Broadly, what are the two architecture types discussed for game engines? What are the differences?
Swarm Intelligence. Content Overview Swarm Particle Optimization (PSO) – Example Ant Colony Optimization (ACO)
Crowds (and research in computer animation and games)
Code Optimization Code produced by compilation algorithms can often be improved (ideally optimized) in terms of run-time speed and the amount of memory.
Rigid Body Dynamics Simulation
Section 11.1 Class Variables and Methods
Performing a Computer Simulation using C++
Genetic Algorithms and TSP
Crowds (and research in computer animation and games)
Review for Test1.
التسعير الفصل الرابع عشر.
A closed plane figure with at least 3 sides.
UMBC Graphics for Games
Swarm School: Distributed Averaging
Review for Test1.
M4 and Parallel Programming
Advanced Games Development Game Physics
Computer Graphics Lecture 15.
Run-Time LOD Run-time algorithms may use static or dynamic LOD models:
Games Development 1 Review / Revision
What Are Performance Counters?
Particle Swarm Optimization and Social Interaction Between Agents
GPAT – Chapter 7 Physics.
Crowd Dynamics AI in C++
Presentation transcript:

Crowd Dynamics AI Engine w/ PSO By: Keith Ainsworth Pd. 5

Crowd Dynamics AI in C++ ● Using a game for demonstration ● C++ with Object Oriented Programming ● SDL for graphical Display (might become OpenGL)

The AI: ● Crowd Dynamics ● Simulates the motion, movement, behavior of groups ● Conventional games do it individually ● Simple example: A group of people finding a target ● Particle Swarm Optimization

PSO ● A method to optimize the behavior of “swarms” ● Conventionally used in anthill simulations ● This only optimizes half of my AI engine ● Optimizes the movement calculations ● Does not optimize the communication aspect

Current Class Structure: Person PNetworkWorld weight_list

● Looping, array-based, fixed-size container ● 2 lists, one for data, one for weighting in summation ● Summation functions, which return the average value of the list (taking weighting into consideration) ● Used by the PNetwork to pick a direction for a person to travel after receiving a bunch of tips from the other people

Pnetwork ● Instantiated with a list of people as the group ● Each time the step() method is called it  Calls the “communicator” method of each person  Adds them all into a weight_list for each person (differentiated by the weightings given)  Instructs the persons to travel in the direction of the summation of their weight_list

Simulation: ● Shows Regular Simulation

Subclassing Structure ● Program Built around base libraries which can be subclassed ● Classes include:  World (subclass: ngon_world)  Std_Person (subclass:theta_person, subclass of person)

ngon and ngon_world ● ngon is a class that essentially stores a polygon of n sides through the boundary points ● Can be concave, convex, even internally intersecting ● ngon_world is a subclass of world, which maintains the “global” variables to the simulation ● The subclass allows for obstructions in sight and movement of agents in the form of ngons

R_Limit.hpp ● The simulation wasn’t regular in it’s behavior in human/computer interaction ● Different computers = Different Difficulties ● This is a rate limiting library  Utilizes time.h system functions for maximum portability and accuracy  Two methods, queue() and hold(). Queue is called before the frame’s codes, hold is called at the end and holds if necessary to maintain a rate.  Slows a simulation to a rate but cannot speed it up to a rate it isn’t maintaining.

ngon_world