I recently did a complete rewrite of my graph-based A* pathfinder example because I received a lot of questions on how to implement path-finding using the new ds library. So here is the updated version which works with ds 1.32:

I’m transforming the point cloud with delaunay triangulation into a graph structure. Then the system computes and draws the shortest path between two selected points.

### Compile instructions

Running and examining the example is really easy:

- Use the automated installer to install haXe from http://haxe.org/download.
- Download the latest haXe nightly build and overwrite the existing ‘haxe.exe’ and ‘std’ folder with the downloaded version.
- Install the polygonal library by opening the command prompt and typing:
`haxelib install polygonal`

.

Sources should now be in {haxe_install_dir}/lib/polygonal/1,18/src/impl/sandbox/ds/astar, where {haxe_install_dir} is usually C:/Motion-Twin/haxe on Win7.

The demo can be compiled with:

`cd C:\Motion-Twin\haxe\lib\polygonal\1,18\build`

haxe.exe compile-ds-examples.hxml

### Extending the Graph class

You have basically two options to extend the functionality of the Graph object: by composition or inheritance. While I highly recommend to use composition whenever possible, I’ve also included a version using inheritance – just so you see the difference.

The composition version looks like this:

The *Graph* object manages *GraphNode* objects, and each *GraphNode* holds a *Waypoint* object, which defines the world position of the waypoint as well as intermediate data used by the A* algorithm. Notice that *GraphNode* and *Waypoint* are cross-referencing each other as a *Waypoint* object has to query the graph for adjacent nodes. As a result, you have a clean separation between the data structure (*Graph*, *GraphNode*) and the algorithm (*AStar*, *Waypoint*) and don’t need object casting, which is good news because casting is a rather slow operation.

Now let’s look at the version using inheritance:

Here, Waypoint directly subclasses GraphNode. Since the Graph is defined to work with GraphNode objects, we need a lot of (unsafe) down-casts to access the Waypoint class. Furthermore, the use of *haxe.rtti.Generic* will be very restricted or even impossible (implementing this marker interface generates unique classes for each type to avoiding dynamic).

Narrative graphs are a useful tool for charting out any narrative, but are especially useful for the development of game stories. This article overviews how this design tool can be used.

Running Large Graph Algorithms: Evaluation of Current State-Of-the-Art and Lessons Learned

Google Tech Talk February 11, 2010 ABSTRACT Presented by Dr. Andy Yoo, Lawrence Livermore National Laboratory. Graphs have gained a lot of attention in recent years and have been a focal point in many emerging disciplines such as web mining, computational biology, social network analysis, and national security, just to name a few. These so-called scale-free graphs in the real world have very complex structure and their sizes already have reached unprecedented scale. Furthermore, most of the popular graph algorithms are computationally very expensive, making scalable graph analysis even more challenging. To scale these graph algorithms, which have different run-time characteristics and resource requirements than traditional scientific and engineering applications, we may have to adopt vastly different computing techniques than the current state-of-art. In this talk, I will discuss some of the findings from our studies on the performance and scalability of graph algorithms on various computing environments at LLNL, hoping to shed some light on the challenges in scaling large graph algorithms. Andy Yoo is a computer scientist in the Center for Applied Scientific Computing (CASC). His current research interests are scalable graph algorithms, high performance computing, large-scale data management, and performance evaluation. He has worked on the large graph problems since 2004. In 2005, he developed a scalable graph search algorithm and demonstrated it by searching a graph <b>...</b>

From:

GoogleTechTalks

Views:

4915

23

ratings

Time:

50:37

More in

Science & Technology

- ACM
- Algebraic graph theory
- Algorithm
- Andy Yoo
- Center for Applied Scientific Computing
- Discrete mathematics
- Gordon Bell
- Graph
- graph algorithms
- graph algorithms
- Graph coloring
- graph search algorithm
- graph search algorithm
- Graph theory
- http://gdata.youtube.com/schemas/2007#video
- IBM
- IEEE Computer Society
- large graph algorithms
- Large Graph Algorithms
- large-scale data management
- Lawrence Livermore National Laboratory
- Mathematics
- performance computing
- SIAM
- Technology
- the Pennsylvania State University
- Theoretical computer science
- Topological graph theory
- web mining