101 lines
2.3 KiB
Plaintext
101 lines
2.3 KiB
Plaintext
|
|
# Experiments 26.4.2018
|
||
|
|
# Database arnsberg
|
||
|
|
|
||
|
|
delete inf
|
||
|
|
|
||
|
|
let inf = 1000000.0
|
||
|
|
|
||
|
|
query meminit(10000)
|
||
|
|
|
||
|
|
query memclear()
|
||
|
|
|
||
|
|
delete Nodes3
|
||
|
|
|
||
|
|
# filter[bbox(.NodePos) inside hombruch]
|
||
|
|
|
||
|
|
let Nodes3 =
|
||
|
|
Edges feed projectextend[; Node: .Source, NodePos: .SourcePos]
|
||
|
|
Edges feed projectextend[; Node: .Target, NodePos: .TargetPos]
|
||
|
|
concat
|
||
|
|
filter[bbox(.NodePos) inside hombruch]
|
||
|
|
sort rdup
|
||
|
|
extend[Value: inf]
|
||
|
|
consume
|
||
|
|
|
||
|
|
query Nodes3 count
|
||
|
|
|
||
|
|
# 517140 nodes
|
||
|
|
# 1785 in Hombruch
|
||
|
|
|
||
|
|
let NodesM = Nodes3 feed addid
|
||
|
|
projectextend[; NodeId: .Node, Node: .TID, NodePos: .NodePos, Value: .Value] mconsume
|
||
|
|
|
||
|
|
delete Edges3a
|
||
|
|
|
||
|
|
# filter[bbox(.SourcePos) inside hombruch]
|
||
|
|
|
||
|
|
let Edges3a = Edges feed
|
||
|
|
filter[bbox(.SourcePos) inside hombruch]
|
||
|
|
projectextend[Source, Target, SourcePos; Cost: size(gk(.Curve))]
|
||
|
|
filter[isdefined(.Cost)]
|
||
|
|
consume
|
||
|
|
|
||
|
|
# 1304503 edges
|
||
|
|
# 4566 in Hombruch
|
||
|
|
|
||
|
|
delete Edges3
|
||
|
|
|
||
|
|
let Edges3 =
|
||
|
|
Edges3a feed {e}
|
||
|
|
NodesM mfeed addid {source} itHashJoin[Source_e, NodeId_source]
|
||
|
|
NodesM mfeed addid {target} itHashJoin[Target_e, NodeId_target]
|
||
|
|
projectextend[; Source: tid2int(.Node_source), Target: tid2int(.Node_target),
|
||
|
|
Cost: .Cost_e]
|
||
|
|
consume
|
||
|
|
|
||
|
|
query Edges3 count
|
||
|
|
|
||
|
|
let EdgesMGraph = Edges3 feed createmgraph3[Source, Target, Cost, 517140]
|
||
|
|
|
||
|
|
# 2.3 seconds
|
||
|
|
|
||
|
|
delete Messages
|
||
|
|
|
||
|
|
let Messages = [const rel(tuple([MessageNode: tid, MessageValue: real])) value ( (470 0.0) )] feed mconsume
|
||
|
|
|
||
|
|
# reset
|
||
|
|
|
||
|
|
# query NodesM mfeed filter[.Value < inf] consume
|
||
|
|
|
||
|
|
# query NodesM mfeed filter[.Value < inf] NodesM mupdatedirect2[Node; Value: inf] consume
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
delete AllSPDistances
|
||
|
|
|
||
|
|
let AllSPDistances =
|
||
|
|
intstream(1, 100000)
|
||
|
|
namedtransformstream[Iteration]
|
||
|
|
extend[NoMessages:
|
||
|
|
Messages mfeed Messages mdeletedirect remove[TID]
|
||
|
|
loopjoin[fun(t: TUPLE) attr(t, MessageNode) feed NodesM gettuples]
|
||
|
|
filter[.MessageValue < .Value]
|
||
|
|
NodesM mupdatedirect2[MessageNode; Value: .MessageValue]
|
||
|
|
project[Node, Value]
|
||
|
|
loopjoin[EdgesMGraph mg3successors[tid2int(.Node)]]
|
||
|
|
projectextend[; MessageNode: int2tid(.Target), MessageValue: .Value + .Cost]
|
||
|
|
mblock
|
||
|
|
groupby2[MessageNode; MessageValue: fun(t2: TUPLE, r: real)
|
||
|
|
ifthenelse(attr(t2, MessageValue) < r, attr(t2, MessageValue), r) :: 1000000.0]
|
||
|
|
meminsert[Messages]
|
||
|
|
count]
|
||
|
|
printstream
|
||
|
|
cancel[.NoMessages = 0]
|
||
|
|
consume
|
||
|
|
|
||
|
|
# 1363 Iterations
|
||
|
|
# 96:11 minutes
|
||
|
|
|
||
|
|
|
||
|
|
|