Exemplo n.º 1
0
Arquivo: vf.py Projeto: yaolili/VF2
    def main(self, f1, f2):
        '''
        output = sys.stdout
        outputfile=open(f3,'w+')
        sys.stdout=outputfile
        '''
        self.__origin = GraphSet(f1)
        self.__sub = GraphSet(f2)
        '''
        #test usage!
        print "in main() subVSet: ", self.__sub.curVSet(0)
        print "in main() graphVSet: ", self.__origin.curVSet(0)       
        print "in main() subVESet: ", self.__sub.curVESet(0)
        print "in main() gVESet: ", self.__origin.curVESet(0)
        '''

        subLen = len(self.__sub.graphSet())
        gLen = len(self.__origin.graphSet())

        for i in range(subLen):
            for j in range(gLen):
                result = {}
                result = self.dfsMatch(i, j, result)
                if len(result) == len(self.__sub.curVSet(i)):
                    print "Match! %s %d-th graph isomorphism %s %d-th graph!" % (
                        f2, i, f1, j)
                    print result
                    print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                else:
                    print "Mismatch! %s %d-th graph isomerism %s %d-th graph!" % (
                        f2, i, f1, j)
                    print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
Exemplo n.º 2
0
Arquivo: vf.py Projeto: AleksMa/VF2
    def main(self, g1, g2, now, seconds):
        # output = sys.stdout
        '''
        output = sys.stdout
        outputfile=open(f3,'w+')
        sys.stdout=outputfile
        '''

        self.__origin = GraphSet(g1)
        self.__sub = GraphSet(g2)

        # #test usage!
        # print "in main() subVSet: ", self.__sub.curVSet(0)
        # print "in main() graphVSet: ", self.__origin.curVSet(0)
        # print "in main() subVESet: ", self.__sub.curVESet(0)
        # print "in main() gVESet: ", self.__origin.curVESet(0)

        subLen = len(self.__sub.graphSet())
        gLen = len(self.__origin.graphSet())

        for i in range(subLen):
            for j in range(gLen):
                if time.time() - now > seconds:
                    return {}
                result = {}
                result = self.dfsMatch(i, j, result, now, seconds)
                if len(result) == len(self.__sub.curVSet(i)):
                    return result
                else:
                    return {}
Exemplo n.º 3
0
# -*- coding:utf-8 -*-
from graph import GraphSet
from Candidate import candidate
from NSContain import Contain
from PathChick import path_candidate
from Next_Insstantiation import Instantiation
from RecurSearch import recurMatch
from generateNS import N_Signature

input_fileq = '/Users/gy/PycharmProjects/SpathIso/Data/Q2'
input_fileg = '/Users/gy/PycharmProjects/SpathIso/Data/G3'

Q = GraphSet(input_fileq)
G = GraphSet(input_fileg)

offset = 0

A_Q, A_G = Q.Adjmatrix(offset), G.Adjmatrix(offset)

NSQ, NS_CQ = N_Signature(3, Q.curVSet(offset), A_Q, Q.curLabelSet(offset))
NSG, NS_CG = N_Signature(3, G.curVSet(offset), A_G, G.curLabelSet(offset))

CandidatesInG = candidate(Q.curVSet(offset), G.curVSet(offset))
#print CandidatesInG

VQ_num = len(Q.curVSet(offset))

CandidatesInG_final = [[] for i in range(VQ_num)]

minid = 0
for i in range(VQ_num):
Exemplo n.º 4
0
#-*- coding:utf-8 -*-
# AUTHOR:   yaolili
# FILE:     test.py
# ROLE:     TODO (some explanation)
# CREATED:  2015-11-28 20:55:11
# MODIFIED: 2015-11-30 20:10:39

import os
import sys
from graph import GraphSet
from map import Map

if __name__ == '__main__':
    if len(sys.argv) < 3:
        print "sys.argv[1]: Graph file"
        print "sys.argv[2]: subGraph file"
        exit()
       
    input = GraphSet(sys.argv[1])
    #print input.curGraph(1)
    print "VSet: ", input.curVSet(1)
    print "ESet: ", input.curESet(1)
    print "VESet: ", input.curVESet(1)
    print "graph neighbor: ", input.neighbor(1, 1)
    result = {}
    curMap = Map(result)
    print "isCovered: ", curMap.isCovered(input.curVESet(1))
    neighbor = curMap.neighbor(1, input, 1)
    print "map neighbor: ",neighbor