MATSIM
MyGuidance.java
Go to the documentation of this file.
1 /* *********************************************************************** *
2  * project: org.matsim.* *
3  * *
4  * *********************************************************************** *
5  * *
6  * copyright : (C) 2008 by the members listed in the COPYING, *
7  * LICENSE and WARRANTY file. *
8  * email : info at matsim dot org *
9  * *
10  * *********************************************************************** *
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * See also COPYING, LICENSE and WARRANTY file *
17  * *
18  * *********************************************************************** */
19 package tutorial.programming.ownMobsimAgentWithPerception;
20 
21 import java.util.Map;
22 
23 import org.matsim.api.core.v01.Id;
24 import org.matsim.api.core.v01.Scenario;
27 
32 class MyGuidance {
33 
34  private MyObserver observer;
35  private Scenario scenario;
36 
37 
38  MyGuidance( MyObserver observer, Scenario sc ) {
39  this.observer = observer ;
40  this.scenario = sc ;
41  }
42 
43  public Id<Link> getBestOutgoingLink(Id<Link> linkId) {
44  Link currentLink = this.scenario.getNetwork().getLinks().get( linkId ) ;
45  Node outNode = currentLink.getToNode() ;
46  Map<Id<Link>, ? extends Link> outLinks = outNode.getOutLinks() ;
47  Id<Link> bestLinkId = null ;
48  double bestLinkCongestion = Double.POSITIVE_INFINITY ;
49  for ( Link outLink : outLinks.values() ) {
50  if ( this.observer.congestionLevel( outLink.getId() ) < bestLinkCongestion ) {
51  bestLinkCongestion = this.observer.congestionLevel( outLink.getId() ) ;
52  bestLinkId = outLink.getId();
53  }
54  }
55  return bestLinkId ;
56  }
57 
58 
59 
60 }
Map< Id< Link >,?extends Link > getLinks()
Map< Id< Link >,?extends Link > getOutLinks()