示例#1
0
def computeNeighborhood(p, setPoints, typeDistance, minPoints, eps):
    pointsOfCluster = []
    for q in setPoints:
        if typeDistance == 0:
            if p.is_in_neighborhoodByEUSimple(q, eps):
                pointsOfCluster.append(q)
        elif typeDistance == 1:
            if p.is_in_neighborhoodEURelativeSpeed(q, eps):
                pointsOfCluster.append(q)
    if len(pointsOfCluster) < minPoints:
        return None
    else:
        return Cluster(None, pointsOfCluster)
def dbscan(setPoints, eps, minPoints):
    clusters = []
    noises = []
    IDs = []
    classifications = {}
    for pt in setPoints:
        IDs.append(pt.id)
        classifications[pt.id] = 0

    for pt in setPoints:
        if classifications[pt.id] == 0:
            points = _expand_cluster(setPoints, pt, classifications, noises,
                                     eps, minPoints)
            if points:
                clusters.append(Cluster(None, points))
    # s=""
    # for p in noises:
    #     s+=p.toString()+' '
    # print(s)
    # s=""
    # for c in clusters:
    #     s += c.toString()+'\n'
    # print(s)
    return [clusters, noises, IDs]
示例#3
0
import sys
sys.path.append("../src")
from simulator import Simulator
from model import Cluster

#import stacktracer
#stacktracer.trace_start("trace.html",interval=5,auto=True) # Set auto flag to always update file!

model = Cluster(2)

sim = Simulator(model)
sim.setVerbose(None)
#sim.setTerminationTime(10.0)
sim.setStateSaving("custom")
sim.simulate()