/* amodeus - Copyright (c) 2018, ETH Zurich, Institute for Dynamic Systems and Control */ package amodeus.amodeus; import org.matsim.amodeus.config.AmodeusModeConfig; import org.matsim.amodeus.dvrp.request.AmodeusRequest; import org.matsim.api.core.v01.Coord; import org.matsim.api.core.v01.Id; import org.matsim.api.core.v01.network.Link; import org.matsim.api.core.v01.network.Network; import org.matsim.api.core.v01.network.Node; import org.matsim.contrib.dvrp.optimizer.Request; import org.matsim.core.config.Config; import org.matsim.core.network.NetworkUtils; public class ArtificialScenarioCreator { public final Node node1; public final Node node2; public final Node node3; public final Node node4; public final Node depot; public final Link linkUp; public final Link linkRight; public final Link linkDown; public final Link linkLeft; public final Link linkDepotIn; public final Link linkDepotOut; public final Network network; public final AmodeusRequest avRequest1; public final AmodeusRequest avRequest2; public final AmodeusRequest avRequest3; public final AmodeusRequest avRequest4; public final AmodeusRequest avRequest5; public final AmodeusRequest avRequest6; public final AmodeusRequest avRequest7; public final AmodeusRequest avRequestDepotOut; public final AmodeusRequest avRequestDepotIn; static final double length = 100.0; static final double freespeed = 20.0; static final double capacity = 500.0; static final double lanes = 1.0; static final int seats = 3; public ArtificialScenarioCreator() { this(null); } public ArtificialScenarioCreator(Config config) { network = (config == null) ? NetworkUtils.createNetwork() : NetworkUtils.createNetwork(config); Id<Node> nodeid1 = Id.createNodeId("node1"); Coord coord1 = new Coord(100, 100); node1 = NetworkUtils.createNode(nodeid1, coord1); network.addNode(node1); Id<Node> nodeid2 = Id.createNodeId("node2"); Coord coord2 = new Coord(100, 200); node2 = NetworkUtils.createNode(nodeid2, coord2); network.addNode(node2); Id<Node> nodeid3 = Id.createNodeId("node3"); Coord coord3 = new Coord(200, 200); node3 = NetworkUtils.createNode(nodeid3, coord3); network.addNode(node3); Id<Node> nodeid4 = Id.createNodeId("node4"); Coord coord4 = new Coord(200, 100); node4 = NetworkUtils.createNode(nodeid4, coord4); network.addNode(node4); Id<Node> depotId = Id.createNodeId("depot"); Coord depotCoord = new Coord(100, 0); depot = NetworkUtils.createNode(depotId, depotCoord); network.addNode(depot); Id<Link> idUp = Id.createLinkId("linkUp"); linkUp = NetworkUtils.createLink(idUp, node1, node2, network, length, freespeed, capacity, lanes); Id<Link> idRight = Id.createLinkId("linkRight"); linkRight = NetworkUtils.createLink(idRight, node2, node3, network, length, freespeed, capacity, lanes); Id<Link> idDown = Id.createLinkId("linkDown"); linkDown = NetworkUtils.createLink(idDown, node3, node4, network, length, freespeed, capacity, lanes); Id<Link> idLeft = Id.createLinkId("linkLeft"); linkLeft = NetworkUtils.createLink(idLeft, node4, node1, network, length, freespeed, capacity, lanes); Id<Link> iddepotIn = Id.createLinkId("linkDepotIn"); linkDepotIn = NetworkUtils.createLink(iddepotIn, node1, depot, network, length, freespeed, capacity, lanes); Id<Link> iddepotOut = Id.createLinkId("linkDepotOut"); linkDepotOut = NetworkUtils.createLink(iddepotOut, depot, node1, network, length, freespeed, capacity, lanes); network.addLink(linkUp); network.addLink(linkRight); network.addLink(linkDown); network.addLink(linkLeft); network.addLink(linkDepotIn); network.addLink(linkDepotOut); avRequest1 = new AmodeusRequest(Id.create("p1", Request.class), null, linkUp, linkDown, 0.0, AmodeusModeConfig.DEFAULT_MODE, null); avRequest2 = new AmodeusRequest(Id.create("p2", Request.class), null, linkRight, linkLeft, 0.0, AmodeusModeConfig.DEFAULT_MODE, null); avRequest3 = new AmodeusRequest(Id.create("p3", Request.class), null, linkRight, linkUp, 0.0, AmodeusModeConfig.DEFAULT_MODE, null); avRequest4 = new AmodeusRequest(Id.create("p4", Request.class), null, linkRight, linkDown, 0.0, AmodeusModeConfig.DEFAULT_MODE, null); avRequest5 = new AmodeusRequest(Id.create("p5", Request.class), null, linkUp, linkRight, 0.0, AmodeusModeConfig.DEFAULT_MODE, null); avRequest6 = new AmodeusRequest(Id.create("p6", Request.class), null, linkUp, linkLeft, 0.0, AmodeusModeConfig.DEFAULT_MODE, null); avRequest7 = new AmodeusRequest(Id.create("p7", Request.class), null, linkRight, linkLeft, 0.0, AmodeusModeConfig.DEFAULT_MODE, null); avRequestDepotOut = new AmodeusRequest(Id.create("depotRequestOut", Request.class), null, linkDepotOut, linkDepotOut, 0.0, AmodeusModeConfig.DEFAULT_MODE, null); avRequestDepotIn = new AmodeusRequest(Id.create("depotRequestIn", Request.class), null, linkDepotIn, linkDepotIn, 0.0, AmodeusModeConfig.DEFAULT_MODE, null); } }