cmaclell / concept_formation

Python implementations of TRESTLE, COBWEB/3, and COBWEB
MIT License
61 stars 18 forks source link

Consider constraining possible structure matches #50

Open cmaclell opened 7 years ago

cmaclell commented 7 years ago

Just had a thought reading through some of Forbus's work on constraining possible structure matches.

The general idea is that we only consider matching two objects if there is a non-zero benefit of a singleton match (i.e., a match without any other objects being matched). This idea could be extended to partial matches (assuming there are no unary relations).

For example, if we had the following instance and concept:

Instance: (block ?b1): True (block ?b2): True (table ?t1): True (On ?b1 ?t1): True (On ?b2 ?t1): True

Concept: (block ?o1): True -- frequency = 1/1

We could only consider mapping ?b1 or ?b2 to ?o1 because they are the only objects in the instance that have a non-zero singleton match. Currently, we consider matching all objects (?b1, ?b2 ,and ?t1) to ?o1. In situations where there are a lot of objects this could drastically reduce the complexity of the matching problem.