├── .gitignore ├── LICENSE.txt ├── NOTICE.txt ├── README.txt ├── docs ├── _config.yml ├── images │ ├── checker.png │ └── jsdp_logo.png ├── index.html ├── jar │ ├── jsdp-1.0.1-javadoc.jar │ ├── jsdp-1.0.1-shaded.jar │ ├── jsdp-1.0.1-sources.jar │ └── jsdp-1.0.1.jar ├── javadoc │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── jsdp │ │ ├── app │ │ │ ├── control │ │ │ │ └── clqg │ │ │ │ │ └── univariate │ │ │ │ │ ├── CLQG.html │ │ │ │ │ ├── class-use │ │ │ │ │ └── CLQG.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ ├── inventory │ │ │ │ ├── capital │ │ │ │ │ ├── CF_Action.html │ │ │ │ │ ├── CF_ForwardRecursion.html │ │ │ │ │ ├── CF_State.html │ │ │ │ │ ├── CF_StateDescriptor.html │ │ │ │ │ ├── CF_StateSpace.html │ │ │ │ │ ├── CF_TransitionProbability.html │ │ │ │ │ ├── CapitalFlow.html │ │ │ │ │ ├── CapitalFlowBatch.html │ │ │ │ │ ├── ImmediateValueFunction.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── CF_Action.html │ │ │ │ │ │ ├── CF_ForwardRecursion.html │ │ │ │ │ │ ├── CF_State.html │ │ │ │ │ │ ├── CF_StateDescriptor.html │ │ │ │ │ │ ├── CF_StateSpace.html │ │ │ │ │ │ ├── CF_TransitionProbability.html │ │ │ │ │ │ ├── CapitalFlow.html │ │ │ │ │ │ ├── CapitalFlowBatch.html │ │ │ │ │ │ └── ImmediateValueFunction.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── multivariate │ │ │ │ │ ├── ActionIteratorImpl.html │ │ │ │ │ ├── ActionSampleIteratorImpl.html │ │ │ │ │ ├── MultiItemStochasticLotSizing.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── ActionIteratorImpl.html │ │ │ │ │ │ ├── ActionSampleIteratorImpl.html │ │ │ │ │ │ └── MultiItemStochasticLotSizing.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ └── univariate │ │ │ │ │ ├── CapacitatedStochasticLotSizing.html │ │ │ │ │ ├── StochasticLotSizing.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── CapacitatedStochasticLotSizing.html │ │ │ │ │ └── StochasticLotSizing.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ ├── package-use.html │ │ │ │ │ └── simulation │ │ │ │ │ ├── SimulatePolicies.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── SimulatePolicies.html │ │ │ │ │ └── sS_Policy.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ ├── package-use.html │ │ │ │ │ └── sS_Policy.html │ │ │ ├── lotsizing │ │ │ │ ├── class-use │ │ │ │ │ ├── sS_Action.html │ │ │ │ │ ├── sS_BackwardRecursion.html │ │ │ │ │ ├── sS_CostRepository.html │ │ │ │ │ ├── sS_ForwardRecursion.html │ │ │ │ │ ├── sS_SequentialBackwardRecursion.html │ │ │ │ │ ├── sS_State.html │ │ │ │ │ ├── sS_StateDescriptor.html │ │ │ │ │ ├── sS_StateSpace.html │ │ │ │ │ ├── sS_StateSpaceIterator.html │ │ │ │ │ ├── sS_StateSpaceSampleIterator.html │ │ │ │ │ ├── sS_TransitionProbability.html │ │ │ │ │ └── sS_jsdp.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ ├── package-use.html │ │ │ │ ├── sS_Action.html │ │ │ │ ├── sS_BackwardRecursion.html │ │ │ │ ├── sS_CostRepository.html │ │ │ │ ├── sS_ForwardRecursion.html │ │ │ │ ├── sS_SequentialBackwardRecursion.html │ │ │ │ ├── sS_State.html │ │ │ │ ├── sS_StateDescriptor.html │ │ │ │ ├── sS_StateSpace.html │ │ │ │ ├── sS_StateSpaceIterator.html │ │ │ │ ├── sS_StateSpaceSampleIterator.html │ │ │ │ ├── sS_TransitionProbability.html │ │ │ │ ├── sS_jsdp.html │ │ │ │ └── simulation │ │ │ │ │ ├── SimulatePolicies.html │ │ │ │ │ ├── class-use │ │ │ │ │ └── SimulatePolicies.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ ├── maintenance │ │ │ │ ├── MaintenanceScheduling.html │ │ │ │ ├── class-use │ │ │ │ │ └── MaintenanceScheduling.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ │ ├── routing │ │ │ │ ├── deterministic │ │ │ │ │ ├── BR_Action.html │ │ │ │ │ ├── BR_ForwardRecursion.html │ │ │ │ │ ├── BR_State.html │ │ │ │ │ ├── BR_StateDescriptor.html │ │ │ │ │ ├── BR_StateSpace.html │ │ │ │ │ ├── BR_TransitionProbability.html │ │ │ │ │ ├── BowserRouting.html │ │ │ │ │ ├── BowserRoutingBatch.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── BR_Action.html │ │ │ │ │ │ ├── BR_ForwardRecursion.html │ │ │ │ │ │ ├── BR_State.html │ │ │ │ │ │ ├── BR_StateDescriptor.html │ │ │ │ │ │ ├── BR_StateSpace.html │ │ │ │ │ │ ├── BR_TransitionProbability.html │ │ │ │ │ │ ├── BowserRouting.html │ │ │ │ │ │ └── BowserRoutingBatch.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── stochastic │ │ │ │ │ ├── fuel │ │ │ │ │ │ ├── BRF_Action.html │ │ │ │ │ │ ├── BRF_ForwardRecursion.html │ │ │ │ │ │ ├── BRF_State.html │ │ │ │ │ │ ├── BRF_StateDescriptor.html │ │ │ │ │ │ ├── BRF_StateSpace.html │ │ │ │ │ │ ├── BRF_TransitionProbability.html │ │ │ │ │ │ ├── BowserRoutingFuel.html │ │ │ │ │ │ ├── BowserRoutingFuelBatch.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ │ ├── BRF_Action.html │ │ │ │ │ │ │ ├── BRF_ForwardRecursion.html │ │ │ │ │ │ │ ├── BRF_State.html │ │ │ │ │ │ │ ├── BRF_StateDescriptor.html │ │ │ │ │ │ │ ├── BRF_StateSpace.html │ │ │ │ │ │ │ ├── BRF_TransitionProbability.html │ │ │ │ │ │ │ ├── BowserRoutingFuel.html │ │ │ │ │ │ │ └── BowserRoutingFuelBatch.html │ │ │ │ │ │ ├── package-frame.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ │ └── location │ │ │ │ │ │ ├── BRL_Action.html │ │ │ │ │ │ ├── BRL_ForwardRecursion.html │ │ │ │ │ │ ├── BRL_State.html │ │ │ │ │ │ ├── BRL_StateDescriptor.html │ │ │ │ │ │ ├── BRL_StateSpace.html │ │ │ │ │ │ ├── BRL_TransitionProbability.html │ │ │ │ │ │ ├── BowserRoutingLocation.html │ │ │ │ │ │ ├── BowserRoutingLocationBatch.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── BRL_Action.html │ │ │ │ │ │ ├── BRL_ForwardRecursion.html │ │ │ │ │ │ ├── BRL_State.html │ │ │ │ │ │ ├── BRL_StateDescriptor.html │ │ │ │ │ │ ├── BRL_StateSpace.html │ │ │ │ │ │ ├── BRL_TransitionProbability.html │ │ │ │ │ │ ├── BowserRoutingLocation.html │ │ │ │ │ │ └── BowserRoutingLocationBatch.html │ │ │ │ │ │ ├── package-frame.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ └── topologies │ │ │ │ │ ├── Location.html │ │ │ │ │ ├── Topology.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── Location.html │ │ │ │ │ └── Topology.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ ├── skeleton │ │ │ │ ├── StochasticDynamicProgram.html │ │ │ │ ├── class-use │ │ │ │ │ └── StochasticDynamicProgram.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ │ └── standalone │ │ │ │ ├── deterministic │ │ │ │ ├── Knapsack.html │ │ │ │ ├── class-use │ │ │ │ │ └── Knapsack.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ │ │ └── stochastic │ │ │ │ ├── GamblersRuin.html │ │ │ │ ├── InventoryControl.html │ │ │ │ ├── class-use │ │ │ │ ├── GamblersRuin.html │ │ │ │ └── InventoryControl.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ ├── sdp │ │ │ ├── Action.html │ │ │ ├── ActionIterator.html │ │ │ ├── BackwardRecursion.html │ │ │ ├── BestActionRepository.html │ │ │ ├── ForwardRecursion.html │ │ │ ├── HashType.html │ │ │ ├── ImmediateValueFunction.html │ │ │ ├── RandomOutcomeFunction.html │ │ │ ├── Recursion.OptimisationDirection.html │ │ │ ├── Recursion.html │ │ │ ├── State.html │ │ │ ├── StateAction.html │ │ │ ├── StateDescriptor.html │ │ │ ├── StateSpace.html │ │ │ ├── StateSpaceIterator.html │ │ │ ├── StateTransitionFunction.html │ │ │ ├── TransitionProbability.html │ │ │ ├── ValueRepository.html │ │ │ ├── class-use │ │ │ │ ├── Action.html │ │ │ │ ├── ActionIterator.html │ │ │ │ ├── BackwardRecursion.html │ │ │ │ ├── BestActionRepository.html │ │ │ │ ├── ForwardRecursion.html │ │ │ │ ├── HashType.html │ │ │ │ ├── ImmediateValueFunction.html │ │ │ │ ├── RandomOutcomeFunction.html │ │ │ │ ├── Recursion.OptimisationDirection.html │ │ │ │ ├── Recursion.html │ │ │ │ ├── State.html │ │ │ │ ├── StateAction.html │ │ │ │ ├── StateDescriptor.html │ │ │ │ ├── StateSpace.html │ │ │ │ ├── StateSpaceIterator.html │ │ │ │ ├── StateTransitionFunction.html │ │ │ │ ├── TransitionProbability.html │ │ │ │ └── ValueRepository.html │ │ │ ├── impl │ │ │ │ ├── multivariate │ │ │ │ │ ├── ActionImpl.html │ │ │ │ │ ├── BackwardRecursionImpl.html │ │ │ │ │ ├── SamplingScheme.html │ │ │ │ │ ├── StateDescriptorImpl.html │ │ │ │ │ ├── StateImpl.html │ │ │ │ │ ├── StateSpaceImpl.html │ │ │ │ │ ├── StateSpaceIteratorImpl.html │ │ │ │ │ ├── StateSpaceSampleIteratorImpl.html │ │ │ │ │ ├── TransitionProbabilityImpl.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── ActionImpl.html │ │ │ │ │ │ ├── BackwardRecursionImpl.html │ │ │ │ │ │ ├── SamplingScheme.html │ │ │ │ │ │ ├── StateDescriptorImpl.html │ │ │ │ │ │ ├── StateImpl.html │ │ │ │ │ │ ├── StateSpaceImpl.html │ │ │ │ │ │ ├── StateSpaceIteratorImpl.html │ │ │ │ │ │ ├── StateSpaceSampleIteratorImpl.html │ │ │ │ │ │ └── TransitionProbabilityImpl.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ └── univariate │ │ │ │ │ ├── ActionImpl.html │ │ │ │ │ ├── BackwardRecursionImpl.html │ │ │ │ │ ├── SamplingScheme.html │ │ │ │ │ ├── StateDescriptorImpl.html │ │ │ │ │ ├── StateImpl.html │ │ │ │ │ ├── StateSpaceImpl.html │ │ │ │ │ ├── StateSpaceIteratorImpl.html │ │ │ │ │ ├── StateSpaceSampleIteratorImpl.html │ │ │ │ │ ├── TransitionProbabilityImpl.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── ActionImpl.html │ │ │ │ │ ├── BackwardRecursionImpl.html │ │ │ │ │ ├── SamplingScheme.html │ │ │ │ │ ├── StateDescriptorImpl.html │ │ │ │ │ ├── StateImpl.html │ │ │ │ │ ├── StateSpaceImpl.html │ │ │ │ │ ├── StateSpaceIteratorImpl.html │ │ │ │ │ ├── StateSpaceSampleIteratorImpl.html │ │ │ │ │ └── TransitionProbabilityImpl.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ └── utilities │ │ │ ├── hash │ │ │ ├── MapDBHashTable.Storage.html │ │ │ ├── MapDBHashTable.html │ │ │ ├── class-use │ │ │ │ ├── MapDBHashTable.Storage.html │ │ │ │ └── MapDBHashTable.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ │ ├── monitoring │ │ │ ├── MonitoringInterface.html │ │ │ ├── MonitoringInterfaceBackward.html │ │ │ ├── MonitoringInterfaceForward.html │ │ │ ├── class-use │ │ │ │ ├── MonitoringInterface.html │ │ │ │ ├── MonitoringInterfaceBackward.html │ │ │ │ └── MonitoringInterfaceForward.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ │ ├── probdist │ │ │ ├── DiscreteDistributionFactory.html │ │ │ ├── MultiINIDistribution.html │ │ │ ├── SafeMultinomialDist.html │ │ │ ├── class-use │ │ │ │ ├── DiscreteDistributionFactory.html │ │ │ │ ├── MultiINIDistribution.html │ │ │ │ └── SafeMultinomialDist.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ │ └── sampling │ │ │ ├── SampleFactory.html │ │ │ ├── class-use │ │ │ └── SampleFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ ├── overview-frame.html │ ├── overview-summary.html │ ├── overview-tree.html │ ├── package-list │ ├── script.js │ ├── serialized-form.html │ └── stylesheet.css ├── javascripts │ └── scale.fix.js ├── jsdp │ ├── .settings │ │ └── org.eclipse.core.resources.prefs │ └── target │ │ ├── classes │ │ ├── META-INF │ │ │ ├── MANIFEST.MF │ │ │ └── maven │ │ │ │ └── org.jsdp │ │ │ │ └── jsdp │ │ │ │ ├── pom.properties │ │ │ │ └── pom.xml │ │ └── log4j2.xml │ │ └── test-classes │ │ └── log4j2.xml ├── params.json ├── robots.txt └── stylesheets │ ├── github-dark.css │ ├── github-light.css │ ├── normalize.css │ ├── styles.css │ └── stylesheet.css └── jsdp ├── .classpath ├── .gitignore ├── .project ├── .settings ├── org.eclipse.jdt.core.prefs └── org.eclipse.m2e.core.prefs ├── pom.xml └── src ├── main ├── java │ └── jsdp │ │ ├── app │ │ ├── control │ │ │ └── clqg │ │ │ │ └── univariate │ │ │ │ └── CLQG.java │ │ ├── inventory │ │ │ ├── capital │ │ │ │ ├── CF_Action.java │ │ │ │ ├── CF_ForwardRecursion.java │ │ │ │ ├── CF_State.java │ │ │ │ ├── CF_StateDescriptor.java │ │ │ │ ├── CF_StateSpace.java │ │ │ │ ├── CF_TransitionProbability.java │ │ │ │ ├── CapitalFlow.java │ │ │ │ ├── CapitalFlowBatch.java │ │ │ │ └── ImmediateValueFunction.java │ │ │ ├── multivariate │ │ │ │ ├── ActionIteratorImpl.java │ │ │ │ ├── ActionSampleIteratorImpl.java │ │ │ │ └── MultiItemStochasticLotSizing.java │ │ │ └── univariate │ │ │ │ ├── CapacitatedStochasticLotSizing.java │ │ │ │ ├── CapacitatedStochasticLotSizingBatch.java │ │ │ │ ├── StochasticLotSizing.java │ │ │ │ └── simulation │ │ │ │ ├── SimulatePolicies.java │ │ │ │ ├── sS_Policy.java │ │ │ │ └── skSk_Policy.java │ │ ├── lotsizing │ │ │ ├── sS_Action.java │ │ │ ├── sS_BackwardRecursion.java │ │ │ ├── sS_CostRepository.java │ │ │ ├── sS_ForwardRecursion.java │ │ │ ├── sS_SequentialBackwardRecursion.java │ │ │ ├── sS_State.java │ │ │ ├── sS_StateDescriptor.java │ │ │ ├── sS_StateSpace.java │ │ │ ├── sS_StateSpaceIterator.java │ │ │ ├── sS_StateSpaceSampleIterator.java │ │ │ ├── sS_TransitionProbability.java │ │ │ ├── sS_jsdp.java │ │ │ └── simulation │ │ │ │ └── SimulatePolicies.java │ │ ├── maintenance │ │ │ └── MaintenanceScheduling.java │ │ ├── routing │ │ │ ├── deterministic │ │ │ │ ├── BR_Action.java │ │ │ │ ├── BR_ForwardRecursion.java │ │ │ │ ├── BR_State.java │ │ │ │ ├── BR_StateDescriptor.java │ │ │ │ ├── BR_StateSpace.java │ │ │ │ ├── BR_TransitionProbability.java │ │ │ │ ├── BowserRouting.java │ │ │ │ └── BowserRoutingBatch.java │ │ │ ├── stochastic │ │ │ │ ├── fuel │ │ │ │ │ ├── BRF_Action.java │ │ │ │ │ ├── BRF_ForwardRecursion.java │ │ │ │ │ ├── BRF_State.java │ │ │ │ │ ├── BRF_StateDescriptor.java │ │ │ │ │ ├── BRF_StateSpace.java │ │ │ │ │ ├── BRF_TransitionProbability.java │ │ │ │ │ ├── BowserRoutingFuel.java │ │ │ │ │ └── BowserRoutingFuelBatch.java │ │ │ │ └── location │ │ │ │ │ ├── BRL_Action.java │ │ │ │ │ ├── BRL_ForwardRecursion.java │ │ │ │ │ ├── BRL_State.java │ │ │ │ │ ├── BRL_StateDescriptor.java │ │ │ │ │ ├── BRL_StateSpace.java │ │ │ │ │ ├── BRL_TransitionProbability.java │ │ │ │ │ ├── BowserRoutingLocation.java │ │ │ │ │ └── BowserRoutingLocationBatch.java │ │ │ └── topologies │ │ │ │ ├── Location.java │ │ │ │ └── Topology.java │ │ ├── skeleton │ │ │ └── StochasticDynamicProgram.java │ │ └── standalone │ │ │ ├── deterministic │ │ │ └── Knapsack.java │ │ │ └── stochastic │ │ │ ├── GamblersRuin.java │ │ │ ├── InventoryControl.java │ │ │ ├── capacitated │ │ │ └── CapacitatedStochasticLotSizingFast.java │ │ │ ├── lateraltransshipment │ │ │ └── LateralTransshipment.java │ │ │ ├── servicelevel │ │ │ └── StochasticLotSizingFast.java │ │ │ └── ss │ │ │ └── StochasticLotSizingFast.java │ │ ├── sdp │ │ ├── Action.java │ │ ├── ActionIterator.java │ │ ├── BackwardRecursion.java │ │ ├── BestActionRepository.java │ │ ├── ForwardRecursion.java │ │ ├── HashType.java │ │ ├── ImmediateValueFunction.java │ │ ├── RandomOutcomeFunction.java │ │ ├── Recursion.java │ │ ├── State.java │ │ ├── StateAction.java │ │ ├── StateDescriptor.java │ │ ├── StateSpace.java │ │ ├── StateSpaceIterator.java │ │ ├── StateTransitionFunction.java │ │ ├── TransitionProbability.java │ │ ├── ValueRepository.java │ │ └── impl │ │ │ ├── multivariate │ │ │ ├── ActionImpl.java │ │ │ ├── BackwardRecursionImpl.java │ │ │ ├── SamplingScheme.java │ │ │ ├── StateDescriptorImpl.java │ │ │ ├── StateImpl.java │ │ │ ├── StateSpaceImpl.java │ │ │ ├── StateSpaceIteratorImpl.java │ │ │ ├── StateSpaceSampleIteratorImpl.java │ │ │ └── TransitionProbabilityImpl.java │ │ │ └── univariate │ │ │ ├── ActionImpl.java │ │ │ ├── BackwardRecursionImpl.java │ │ │ ├── SamplingScheme.java │ │ │ ├── StateDescriptorImpl.java │ │ │ ├── StateImpl.java │ │ │ ├── StateSpaceImpl.java │ │ │ ├── StateSpaceIteratorImpl.java │ │ │ ├── StateSpaceSampleIteratorImpl.java │ │ │ └── TransitionProbabilityImpl.java │ │ └── utilities │ │ ├── hash │ │ └── MapDBHashTable.java │ │ ├── monitoring │ │ ├── MonitoringInterface.java │ │ ├── MonitoringInterfaceBackward.java │ │ └── MonitoringInterfaceForward.java │ │ ├── probdist │ │ ├── DiscreteDistributionFactory.java │ │ ├── MultiINIDistribution.java │ │ └── SafeMultinomialDist.java │ │ └── sampling │ │ └── SampleFactory.java └── resources │ └── log4j2.xml └── test ├── java └── jsdp │ └── utilities │ └── sampling │ ├── AllTests.java │ ├── NormalSampleTest.java │ └── PoissonSampleTest.java └── resources └── log4j2.xml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Roberto Rossi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /NOTICE.txt: -------------------------------------------------------------------------------- 1 | ====================== 2 | THIRD PARTY COMPONENTS 3 | ====================== 4 | 5 | JSDP relies upon the following components, released under the licenses listed below. 6 | 7 | 8 | === Apache License Version 2.0 - http://www.apache.org/licenses/ === 9 | 10 | SSJ: Stochastic Simulation in Java http://simul.iro.umontreal.ca/ssj/indexe.html 11 | Apache Log4j http://logging.apache.org/log4j/ 12 | Apache Commons Lang http://commons.apache.org/proper/commons-lang/ 13 | Apache Maven Shade Plugin http://maven.apache.org/plugins/maven-shade-plugin/ 14 | MapDB http://www.mapdb.org 15 | 16 | 17 | === Eclipse Public License 1.0 - http://www.eclipse.org/legal/epl-v10.html === 18 | 19 | JUnit http://junit.org/junit4/ 20 | 21 | 22 | === Lesser GNU Public License (LGPL) - http://www.gnu.org/licenses/ === 23 | 24 | Trove4j http://trove4j.sourceforge.net/ 25 | -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | =================================================== 2 | jsdp: a Java Stochastic Dynamic Programming Library 3 | =================================================== 4 | 5 | http://gwr3n.github.io/jsdp/ 6 | 7 | jsdp provides a general purpose Java library for 8 | modeling and solving Stochastic Dynamic Programs. 9 | 10 | The library features a number of applications in 11 | maintenance, stochastic optimal control, and 12 | stochastic lot sizing; including the computation 13 | of optimal nonstationary (s,S) policy parameters, 14 | as discussed by Herbert Scarf in his seminal work 15 | the optimality of (s,S) policies in the dynamic 16 | inventory problem. 17 | 18 | To learn more please take a tour of our Wiki. 19 | 20 | https://github.com/gwr3n/jsdp/wiki 21 | 22 | jsdp is maintained by Roberto Rossi, 23 | Full Professsor and Chair in Uncertainty Modelling 24 | at the University of Edinburgh. 25 | 26 | To cite jsdp: 27 | 28 | @software{jsdp_github, 29 | author = {Roberto Rossi}, 30 | title = {jsdp: a Java Stochastic Dynamic Programming library}, 31 | url = {http://gwr3n.github.io/jsdp/}, 32 | version = {1.0.1}, 33 | year = {2018} 34 | } 35 | 36 | @misc{2209.09979, 37 | Author = {Roberto Rossi}, 38 | Title = {jsdp: a Java Stochastic Dynamic Programming Library}, 39 | Year = {2022}, 40 | Eprint = {arXiv:2209.09979} 41 | } 42 | -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | gems: 2 | - jekyll-sitemap -------------------------------------------------------------------------------- /docs/images/checker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gwr3n/jsdp/dfbdba78bcef6b4949bf99131fb565b1be306183/docs/images/checker.png -------------------------------------------------------------------------------- /docs/images/jsdp_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gwr3n/jsdp/dfbdba78bcef6b4949bf99131fb565b1be306183/docs/images/jsdp_logo.png -------------------------------------------------------------------------------- /docs/jar/jsdp-1.0.1-javadoc.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gwr3n/jsdp/dfbdba78bcef6b4949bf99131fb565b1be306183/docs/jar/jsdp-1.0.1-javadoc.jar -------------------------------------------------------------------------------- /docs/jar/jsdp-1.0.1-shaded.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gwr3n/jsdp/dfbdba78bcef6b4949bf99131fb565b1be306183/docs/jar/jsdp-1.0.1-shaded.jar -------------------------------------------------------------------------------- /docs/jar/jsdp-1.0.1-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gwr3n/jsdp/dfbdba78bcef6b4949bf99131fb565b1be306183/docs/jar/jsdp-1.0.1-sources.jar -------------------------------------------------------------------------------- /docs/jar/jsdp-1.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gwr3n/jsdp/dfbdba78bcef6b4949bf99131fb565b1be306183/docs/jar/jsdp-1.0.1.jar -------------------------------------------------------------------------------- /docs/javadoc/constant-values.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 |Copyright © 2017–2018. All rights reserved.
125 | 126 | 127 | -------------------------------------------------------------------------------- /docs/javadoc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |42 | 43 | 44 | -------------------------------------------------------------------------------- /docs/javadoc/package-list: -------------------------------------------------------------------------------- 1 | jsdp.app.control.clqg.univariate 2 | jsdp.app.inventory.capital 3 | jsdp.app.inventory.multivariate 4 | jsdp.app.inventory.univariate 5 | jsdp.app.inventory.univariate.simulation 6 | jsdp.app.lotsizing 7 | jsdp.app.lotsizing.simulation 8 | jsdp.app.maintenance 9 | jsdp.app.routing.deterministic 10 | jsdp.app.routing.stochastic.fuel 11 | jsdp.app.routing.stochastic.location 12 | jsdp.app.routing.topologies 13 | jsdp.app.skeleton 14 | jsdp.app.standalone.deterministic 15 | jsdp.app.standalone.stochastic 16 | jsdp.sdp 17 | jsdp.sdp.impl.multivariate 18 | jsdp.sdp.impl.univariate 19 | jsdp.utilities.hash 20 | jsdp.utilities.monitoring 21 | jsdp.utilities.probdist 22 | jsdp.utilities.sampling 23 | -------------------------------------------------------------------------------- /docs/javadoc/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /docs/javascripts/scale.fix.js: -------------------------------------------------------------------------------- 1 | fixScale = function(doc) { 2 | 3 | var addEvent = 'addEventListener', 4 | type = 'gesturestart', 5 | qsa = 'querySelectorAll', 6 | scales = [1, 1], 7 | meta = qsa in doc ? doc[qsa]('meta[name=viewport]') : []; 8 | 9 | function fix() { 10 | meta.content = 'width=device-width,minimum-scale=' + scales[0] + ',maximum-scale=' + scales[1]; 11 | doc.removeEventListener(type, fix, true); 12 | } 13 | 14 | if ((meta = meta[meta.length - 1]) && addEvent in doc) { 15 | fix(); 16 | scales = [.25, 1.6]; 17 | doc[addEvent](type, fix, true); 18 | } 19 | 20 | }; -------------------------------------------------------------------------------- /docs/jsdp/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding//src/test/java=UTF-8 5 | encoding//src/test/resources=UTF-8 6 | encoding/