package Ġbranch and bound . examples Ċ Ċ import Ġbranch and bound . api . Branch And Bound Api Ċ import Ġbranch and bound . api . Selection Strategy Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNotNull Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠK nap s ack Branch And Bound Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġinstances Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠK nap s ack Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro fits Ġ= ĠlistOf ( 2 4 . 0 , Ġ 2 . 0 , Ġ 2 0 . 0 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweights Ġ= ĠlistOf ( 8 . 0 , Ġ 1 . 0 , Ġ 5 . 0 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapacity Ġ= Ġ 9 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobjective Ġ= Ġ 2 6 . 0 ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠK nap s ack Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro fits Ġ= ĠlistOf ( 1 6 . 0 , Ġ 2 2 . 0 , Ġ 1 2 . 0 , Ġ 8 . 0 , Ġ 1 1 . 0 , Ġ 1 9 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweights Ġ= ĠlistOf ( 5 . 0 , Ġ 7 . 0 , Ġ 4 . 0 , Ġ 3 . 0 , Ġ 4 . 0 , Ġ 6 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapacity Ġ= Ġ 1 4 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobjective Ġ= Ġ 4 3 . 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġeps Ġ= Ġ 1 e - 5 ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` tests Ġfor Ġserial Ġand Ġparallel ĠB & B Ġsolves `() Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( instance Ġin Ġinstances ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( num Solver s Ġin ĠlistOf ( 1 , Ġ 5 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Generator Ġ= Ġgenerate Sequence ( 0 L ) Ġ{ Ġit Ġ+ Ġ 1 Ġ}. iterator () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsol vers Ġ= ĠList ( num Solver s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContinuous K nap s ack Solver ( instance . prof its , Ġinstance . weights , Ġinstance . capacity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot Node Ġ= ĠNode ( id Ġ= Ġid Generator . next ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolution Ġ= ĠBranch And Bound Api . run Branch And Bound ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsol vers , ĠSelection Strategy . BEST _ BOUND , Ġroot Node ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbranch (( it Ġas ĠNode ), Ġid Generator ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( solution ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( solution . num Created Nodes Ġ> Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( solution . num Fe asible Nodes Ġ<= Ġsolution . num Created Nodes ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( instance . objective , Ġsolution . objective , Ġeps ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( num Solver s Ġ> Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( solution . max Parallel Sol ves Ġ> Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsolution . max Parallel Sol ves ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġdata Ġclass ĠK nap s ack Instance ( ĊĠĠĠ Ġval Ġpro fits : ĠList < Double >, ĊĠĠĠ Ġval Ġweights : ĠList < Double >, ĊĠĠĠ Ġval Ġcapacity : ĠDouble , ĊĠĠĠ Ġval Ġobjective : ĠDouble Ċ ) Ċ