2016-01-22 20:56:07 -05:00
|
|
|
* Overview
|
|
|
|
|
2016-03-21 00:31:28 -04:00
|
|
|
This package provides a rollout-based graphical data structure. Its intended use
|
2016-02-14 20:38:38 -05:00
|
|
|
is building game state graphs for general game-playing or similar AI tasks.
|
2016-01-22 20:56:07 -05:00
|
|
|
|
|
|
|
Vertices correspond to game states. They are addressed by unique game states
|
|
|
|
(which may be de-duplicated as if by transposition table by implementing
|
|
|
|
=std::hash::Hash= and =std::cmp::Eq= appropriately for your game state type).
|
|
|
|
|
|
|
|
Edges correspond to game-modifying moves. They are bidirectional, so paths may
|
|
|
|
be traced up and down the graph.
|
|
|
|
|
|
|
|
The structure is /rollout-based/ in that edges are expanded lazily. This should
|
|
|
|
make it easy to implement planning algorithms like A* and Monte Carlo tree
|
2016-02-14 20:38:38 -05:00
|
|
|
search on top of the graph structure.
|
2016-01-22 20:56:07 -05:00
|
|
|
|
|
|
|
At present, the graph topology may be grown but not pruned. Vertex and edge
|
|
|
|
deletion may be supported in a future version.
|
|
|
|
|
|
|
|
* Copyright
|
|
|
|
|
|
|
|
Copyright 2015-2016, Donald S. Black.
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the “License”); you may not use
|
|
|
|
this file except in compliance with the License. You may obtain a copy of the
|
|
|
|
License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software distributed
|
|
|
|
under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR
|
|
|
|
CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
|
|
specific language governing permissions and limitations under the License.
|