| 1 |
package |
|---|
| 2 |
{ |
|---|
| 3 |
import flash.display.Sprite; |
|---|
| 4 |
import flash.utils.getTimer; |
|---|
| 5 |
|
|---|
| 6 |
import jp.dip.hael.gameai.graph.Graph; |
|---|
| 7 |
import jp.dip.hael.gameai.graph.Node; |
|---|
| 8 |
import jp.dip.hael.gameai.graph.WeightedEdge; |
|---|
| 9 |
import jp.dip.hael.gameai.graph.searcher.BFS; |
|---|
| 10 |
import jp.dip.hael.gameai.graph.searcher.Dijkstra; |
|---|
| 11 |
import jp.dip.hael.gameai.util.PriorityQueueDsc; |
|---|
| 12 |
import jp.dip.hael.gameai.util.Rand; |
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 |
/** |
|---|
| 16 |
* @private |
|---|
| 17 |
*/ |
|---|
| 18 |
public class GraphTest extends Sprite |
|---|
| 19 |
{ |
|---|
| 20 |
public function GraphTest() |
|---|
| 21 |
{ |
|---|
| 22 |
|
|---|
| 23 |
var g:Graph = new Graph(); |
|---|
| 24 |
g.addNode(new Node(1)); |
|---|
| 25 |
g.addNode(new Node(2)); |
|---|
| 26 |
g.addNode(new Node(3)); |
|---|
| 27 |
g.addNode(new Node(4)); |
|---|
| 28 |
g.addNode(new Node(5)); |
|---|
| 29 |
g.addNode(new Node(6)); |
|---|
| 30 |
g.addEdge(new WeightedEdge(5, 2, 19)); |
|---|
| 31 |
g.addEdge(new WeightedEdge(5, 6, 30)); |
|---|
| 32 |
g.addEdge(new WeightedEdge(1, 5, 29)); |
|---|
| 33 |
g.addEdge(new WeightedEdge(1, 6, 10)); |
|---|
| 34 |
g.addEdge(new WeightedEdge(3, 5, 8)); |
|---|
| 35 |
g.addEdge(new WeightedEdge(6, 4, 11)); |
|---|
| 36 |
g.addEdge(new WeightedEdge(4, 3, 37)); |
|---|
| 37 |
g.addEdge(new WeightedEdge(2, 3, 31)); |
|---|
| 38 |
|
|---|
| 39 |
var d:Dijkstra = new Dijkstra(g); |
|---|
| 40 |
var t:int = getTimer(); |
|---|
| 41 |
for(var i:int = 0; i < 1000; i++){ |
|---|
| 42 |
d.search(5, 3); |
|---|
| 43 |
} |
|---|
| 44 |
trace(getTimer() - t); |
|---|
| 45 |
// for each(var e:Edge in d.pathRef){ |
|---|
| 46 |
// trace(e.src + "->" + e.dst); |
|---|
| 47 |
// } |
|---|
| 48 |
var b:BFS = new BFS(g); |
|---|
| 49 |
t = getTimer(); |
|---|
| 50 |
for(i = 0; i < 1000; i++){ |
|---|
| 51 |
b.search(5, 3); |
|---|
| 52 |
} |
|---|
| 53 |
trace(getTimer() - t); |
|---|
| 54 |
// for each(var e:Edge in b.pathRef){ |
|---|
| 55 |
// trace(e.src + "->" + e.dst); |
|---|
| 56 |
// } |
|---|
| 57 |
|
|---|
| 58 |
|
|---|
| 59 |
// var pq:PriorityQueueDsc = new PriorityQueueDsc(); |
|---|
| 60 |
// t = getTimer(); |
|---|
| 61 |
// for(i = 0; i < 10000; i++){ |
|---|
| 62 |
// pq.insert(i, Rand.intRange(0, 100)); |
|---|
| 63 |
// } |
|---|
| 64 |
// trace(getTimer() - t); |
|---|
| 65 |
// var pq2:PriorityQueueDsc2 = new PriorityQueueDsc2(); |
|---|
| 66 |
// t = getTimer(); |
|---|
| 67 |
// for(i = 0; i < 10000; i++){ |
|---|
| 68 |
// pq2.insert(i, Rand.intRange(0, 100)); |
|---|
| 69 |
// } |
|---|
| 70 |
// trace(getTimer() - t); |
|---|
| 71 |
} |
|---|
| 72 |
|
|---|
| 73 |
} |
|---|
| 74 |
} |
|---|