CSP? Whats a good representation?
I am looking for any suggestions on sub-fields of AI to look into for techniques at handling a problem as efficiently as possible. Currently, I am looking at contraint solving, but it seems like its focus differs significantly enough that there may be a better play to look.
Essentially, I want have an initial state and terminal state defined in terms of a set of variables. I have a set of transitions defined in terms of the addition, removal, exclusion, and inclusion of particular variables in a domain. The domains do not over lap.
Given a fairly small set of transitions, a linear search testing each of the transitions for validity is possible, though it does not scale well. I am looking for the ''best way'' (speed and space both matter) to determine which, if any, transitions apply.
Properties Domains:
X0 = { x0a, x0b, ..., x0n }
X1 = { x1a, x1b, ..., x1n }
...
XN = { xna, xnb, ..., xnn }
Transition Patterns, defined in terms of a series of transitions:
Initial - Must be in the initial state
Added - Must not be in the initial, must be in the terminal
Removed - Must be in the initial, must not be in the terminal
Not - Must not be in the initial or terminal
Here is an example:
Movement = { M_None, M_Run, M_Walk }
Posture = { P_None, P_Stand, P_Sit, P_Crouch }
RunToStop I{ M_Run P_Stand } A{ } R{ M_Run } N{ M_Walk}
StandToSit I{ P_Stand } A{ } R{ P_Sit } N{ M_Run M_Walk }
Given initial and final states, a transition must be determined, if one exists:
S0 = { M_Run, P_Stand }
S0 = { M_None, P_Sit }
? T => StandToSit
Now, with 10 groups, each with 3 to 100 properties, the search space is pretty big, especially when a transition is defined in terms of two sets (meaning 20 groups).
So, any suggestions? If part of this didn''t make any sense, or if additional examples would help, let me know and I will try to fill it in.
Thanks!
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement