5102077439

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ż metod
Grupa K Analiza Matematyczna IEgzamin podstawowy, 4 luty 2014 Na pierwszej stronie pracy należy napi
Grupa L Analiza Matematyczna IEgzamin podstawowy, 4 luty 2014 ■ i pierwszej stronie pracy należy nap
skanuj0429 446 PHP i MySQL dla każdego polach tekstowych wartości odpowiednich zmiennych. Dzięki tem
nie gwintu w otworze. Pierwszym krokiem pracy na tej zakładce jest zaznaczenie opcji {Threaded), w c
IMG 05 ■ pracy dzięki dwustopniowemu sprężaniu odpowiada pole zakreskowane ABCD. Równie przejrzyście
page0063 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ń noc
Karty 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 wykropk
egzaminA1 Egzamin poprawkowy, semestr zimowy 2008/09 Na pierwszej stronie pracy należy napisać; nazw
Egzamin Algebra z geometrią analityczną Egzamin podstawowy, semestr zimowy 2011/12 N* pierwszą) str
1.2.2.2 Maszyny Turinga jako akceptory Automat skończony w każdym kroku pracy „zjada” jedną literę z

więcej podobnych podstron