12. A method for solving a main problem, the method comprising: constructing a plurality of abstract graphs each comprising nodes, wherein each abstract graph represents one of a plurality of sub-problems, wherein the plurality of sub-problems taken together represent the main problem pertaining to an environment; decomposing at least one node of an abstract graph into at least two nodes; associating a subset of the nodes, the associating comprising: (i) selecting a first node of a first one of the abstract graphs representing a first one of the sub-problems; (ii) selecting one or more second nodes of other abstract graphs representing a second one of the sub-problems; and (iii) creating an association between the first and second nodes in which information pertaining to the first node of the first abstract graph is associated to the one or more nodes of the other abstract graphs; further decomposing one or more of the other abstract graphs using the associated information and resolving least one of the other abstract graphs; and iterating the steps of associating nodes for different nodes and further decomposing to obtain a solution for the main problem.
14. The method of claim 12 , wherein at least one of the abstract graphs has a type that differs from another one of the abstract graphs.