|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectalgorithm.psgm.PSGM
public class PSGM
An implementation of the skeleton based matching algorithm proposed in Path Similarity Graph Matching.
The goal is to match salient nodes (more specifically: skeleton end nodes) in two objects in that way, that these end nodes are the most similar as possible and therefore, the costs to match the objects get as less as possible. The cheaper the matching, the more similar are the objects. The results thus is a one-to-one assignment of end nodes of the two skeletons, and as well the total costs of these assignments.
Here is an overview of the algorithm:
SkeletonPath) in
both skeleton objects in M equidistant points. For each of these points,
store the distance to the boundary in an array, called the skeleton path
vector.HungarianAlgorithm) which establishes a one-to-one correspondence
between all end nodes in G and G'.
| Field Summary | |
|---|---|
private org.apache.log4j.Logger |
logger
logger instance |
private SkeletonObject |
so1
first skeleton object |
private SkeletonObject |
so2
second skeleton object |
| Constructor Summary | |
|---|---|
PSGM(SkeletonObject so1,
SkeletonObject so2)
Constructor. |
|
| Method Summary | |
|---|---|
SkeletonObject |
getSo1()
Get the first skeleton object. |
SkeletonObject |
getSo2()
Get the second skeleton object. |
MatchList |
go(Config config)
Execute the algorithm. |
private void |
setSkeletons(SkeletonObject so1,
SkeletonObject so2)
set the skeletons to be matched. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private final org.apache.log4j.Logger logger
private SkeletonObject so1
private SkeletonObject so2
| Constructor Detail |
|---|
public PSGM(SkeletonObject so1,
SkeletonObject so2)
throws WrongUsageOfAlgorithmException
SkeletonObjects to be matched.
so1 - the first skeleton object to be matched. Note that the two
skeletons might get reordered.so2 - the second skeleton object to be matched. Note that the two
skeletons might get reordered.
WrongUsageOfAlgorithmException| Method Detail |
|---|
public MatchList go(Config config)
throws InvalidSkeletonException,
InvalidWeightFunctionGivenException,
InvalidConfigParameterException
config - The configuration parameters for the algorithm
InvalidSkeletonException - if one of the skeleton seems to be broken
InvalidWeightFunctionGivenException - if no valid weight function could be extracted for Hungarian
Algorithm
InvalidConfigParameterExceptionpublic SkeletonObject getSo1()
public SkeletonObject getSo2()
private void setSkeletons(SkeletonObject so1,
SkeletonObject so2)
throws WrongUsageOfAlgorithmException
the algorithm demands later that the "first" skeleton is the one with lesser endnodes, so we make sure this condition is fullfilled now.
so1 - skeletonobject to be matchedso2 - skeleton object to be matched
WrongUsageOfAlgorithmException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||