21 package org.matsim.core.network.algorithms;
23 import org.apache.logging.log4j.LogManager;
24 import org.apache.logging.log4j.Logger;
57 log.info(
" running " + this.getClass().getName() +
" algorithm...");
59 Queue<Node> nodes =
new LinkedList<>(network.
getNodes().values());
60 while (nodes.peek() != null) {
61 Node n = nodes.poll();
62 HashMap<Id<Node>, List<Link>> toNodesMap =
new HashMap<>();
64 List<Link> links = toNodesMap.get(l.getToNode().getId());
68 links =
new ArrayList<>();
70 toNodesMap.put(l.getToNode().getId(), links);
73 if (toNodesMap.size() > 0) {
78 log.info(
"handled: ");
79 log.info(
"\t" + this.dblLinks +
" dblLinks.");
80 log.info(
"\t" + this.trblLinks +
" trblLinks.");
81 log.info(
"\t" + this.qtblLinks +
" qtblLinks.");
82 log.info(
"\t" + this.ntblLinks +
" ntblLinks.");
87 for (List<Link> vec : toNodesMap.values()) {
104 for (
int i = 1; i < vec.size(); i++) {
118 this.network.
addNode(medianNode);
136 Random r =
new Random();
138 while (this.network.
getLinks().get(
id) != null) {
139 id =
Id.
create(r.nextInt(Integer.MAX_VALUE),
Link.class);
145 Random r =
new Random();
147 while (this.network.
getNodes().get(
id) != null) {
148 id =
Id.
create(r.nextInt(Integer.MAX_VALUE),
Node.class);
void setNumberOfLanes(double lanes)
Map< Id< Node >, ? extends Node > getNodes()
void setFreespeed(double freespeed)
Link removeLink(final Id< Link > linkId)
void handleDblLinks(HashMap< Id< Node >, List< Link >> toNodesMap)
NetworkFactory getFactory()
static< T > Id< T > create(final long key, final Class< T > type)
Id< Node > getNewNodeId()
Link createLink(final Id< Link > id, final Node fromNode, final Node toNode)
void setLength(double length)
double getNumberOfLanes()
Map< Id< Link >, ? extends Link > getLinks()
Node createNode(final Id< Node > id, final Coord coord)
void splitLink(Link link)
Id< Link > getNewLinkId()
Map< Id< Link >, ? extends Link > getOutLinks()
void setCapacity(double capacity)
void run(final Network network)