5102077439
W pierwszym kroku pracy solvera zainicjalizowane zostają odpowiednie zmienne i tworzona jest lista skonfigurowanych węzłów:
Storę storę = new Storę ();
NetworkBuilder net = new NetworkBuilder (); List<IntVar> arcList = new ArrayListo 0;
// Generate new map
MapBuilder map = new MapBuilder();
map.generate(model);
Za pomocą danych przechowywanych w obiekcie „map" możliwe jest dynamiczne (za pomocą dwóch pętli) utworzenie właściwej sieci wykorzystywanej przez JaCoPa:
Node nodesArrayl] = new Node[model.getColsO * model.getRows()]; for(NodeMap nodeMap : map.getMapNodes().values()){
nodesArrayl nodeMap.getldO ] = net.addNode( ":"+ nodeMap.getld()+")", nodeMap.getBalance() );
// eg: nodesArr[1] = net.addNode( "Label Node 1” , 0 );
// Fili list with arcs
fcr(NodeMap nodeMapSource : map.getMapNodeaO.values())(
for(Integer neighboursld : nodeMapSource.getNeighbours().keySetO){
IntVar arc = new IntVar(storę, nodeMapSource.getld{) + *>" + neighboursld, 0, SOD);
// eg.: new IntVar(storę, "1>2", arcLowerBound, arcOpperBound); < arc that connects nodes 1 and 2 arcList.add(arc);
int arcCost = map.getMapNodes().get(neighboursld).getCost(); // < "generał" cost, indicates obstacles etc.
Direction d ■ nodeMapSource.getNeighbours().get(neighboursld);
arcCost *= model.getDirectionCost().get(d); // cost multiplied by "wind cost"
net.addArcf nodesArray[ nodeMapSource.getldO ], nodesArray [neighboursld], arcCost,
)
Ostatni etap to utworzenie zmiennej sumarycznego kosztu przepływu i imcjalizacja procesu poszukiwania rozwiązania:
// Variable that Stores total cost of a network solutionCost = new IntVar(storę, "cost”, 0, 9999); net.setCostVariable(solutionCost);
// Impose
storę.impose(new NetworkFlow(net)); boolean result;
Search<IntVar> label = new DepthFirstSearch<>();
SelectChoicePoint<IntVar> varSelect = new SimpieSelectO (
arcList.toArray(new IntVar[arcList.size()]), // conversion from list to primitiye array nuli,
new IndomainMin<>() );
= label.labeling(storę, varSelect, solutionCost);
11
Wyszukiwarka
Podobne podstrony:
stosowania do zmiennych warunków otoczenia. W pierwszej części pracy scharakteryzowano również metodGrupa K Analiza Matematyczna IEgzamin podstawowy, 4 luty 2014 Na pierwszej stronie pracy należy napiGrupa L Analiza Matematyczna IEgzamin podstawowy, 4 luty 2014 ■ i pierwszej stronie pracy należy napskanuj0429 446 PHP i MySQL dla każdego polach tekstowych wartości odpowiednich zmiennych. Dzięki temnie gwintu w otworze. Pierwszym krokiem pracy na tej zakładce jest zaznaczenie opcji {Threaded), w cIMG 05 ■ pracy dzięki dwustopniowemu sprężaniu odpowiada pole zakreskowane ABCD. Równie przejrzyściepage0063 WROŃSKIEGO ŻYCIE I PRACE. 53 wyrokowi sędziów pierwszej swej pracy przedstawionej Akademii,karta pracy pory dnia wklej odpowiednie napisy: ranek wieczór dzień nocKarty pracy nr8 1 .Pomaluj jabłka w odpowiednich okienkach. Karta pracy nr 38.Karty pracy (16) Słoń, który umie pisać! To jest pierwszy słoń, który potrafi pisać. Połącz wykropkegzaminA1 Egzamin poprawkowy, semestr zimowy 2008/09 Na pierwszej stronie pracy należy napisać; nazwEgzamin Algebra z geometrią analityczną Egzamin podstawowy, semestr zimowy 2011/12 N* pierwszą) str1.2.2.2 Maszyny Turinga jako akceptory Automat skończony w każdym kroku pracy „zjada” jedną literę zwięcej podobnych podstron