Git Product home page Git Product logo

xadd-inference's Introduction

xadd-inference -- Implementation of Extended ADDs (XADDs) and 
                  XADD-based inference algorithms.

Copyright (C) 2010, Scott Sanner (ssanner [@] gmail.com)
                    Karina Valdivia Delgado (karinaval [@] gmail.com)

License: MPL 1.1 (with exceptions for 3rd party software & data)

		 The Java interface to LPSolve
		 
		   http://lpsolve.sourceforge.net/5.5/
		   
		 is included for the user's convenience.  LPSolve 
		 uses an LGPL license:
		  
		   http://lpsolve.sourceforge.net/5.5/LGPL.htm

		 Also includes a 2D Java plotting package in PlotPackage.jar available here:
		 
		   http://homepage.mac.com/jhuwaldt/java/Packages/Plot/PlotPackage.html
		   

Basic Installation and Invocation
=================================

xadd-inference/ provides the following subdirectories:

    src   All source code (.java files)
    bin   All binaries (.class files)
    lib   All 3rd party libraries (.jar files)
    files All supplementary files 

Always ensure that all .jar files in lib/ are included in your
CLASSPATH for both Java compilation and at Java runtime.  

We highly recommend that you use Eclipse for Java development:

    http://www.eclipse.org/downloads/

In Eclipse the CLASSPATH libraries can be set via 

    Project -> Properties -> Java Build Path -> Libraries Tab

For running this code from a terminal, we provide two scripts

    run     For Windows/Cygwin and UNIX/Linux systems
    run.bat For the Windows CMD prompt

You can pass up to 10 arguments to these scripts as required.


Using the XADD-based Continuous MDP Solver
============================================================

**LPSolve and GraphViz should be installed on your system.  See 
below for instructions on installing each.

For an example to start with, try running
  
  ./run camdp.CAMDP src/camdp/ex/discact/knapsackM.cmdp 2 false false
  
which runs value iteration on the problem

  src/camdp/ex/discact/knapsackM.cmdp

for two iterations.  Numerous other CMDP examples including those  
with continuous actions can be found in 

  src/camdp/ex/


Installing LPSolve
==================

LPSolve requires binaries appropriate for the user's system, 
e.g., Windows requires lpsolve55j.dll.  To obtain these binaries, 
please consult:
		 
  http://lpsolve.sourceforge.net/5.5/distribution.htm
  http://sourceforge.net/projects/lpsolve/files/lpsolve/5.5.2.0/

To verify it is installed correctly, run

  lpsolve.LP

and ensure that there are no errors (LPSolve provides verbose
output about it's solution, but these are not errors).

NOTE: Windows users simply need to copy 3 files "lp_solve.exe", 
      "lpsolve55.dll" and "lpsolve55j.dll" to C:\Windows


GraphViz Visualization
======================

To enable Java Graphviz visualization:

- Download and install GraphViz v2.28 on your system:
 
    http://www.graphviz.org/
  
  Historical versions (2.28) are located here:
  
    http://www.graphviz.org/pub/graphviz/stable/

- Make sure "dot" and "neato" (including ".exe" if running on Windows)
  are in your PATH, i.e., you can execute them from any home directory

Run graph.Graph.main() and verify that a cleanly formatted Java window
displaying a graph appears.  If so then other code which uses the
Graph class should run properly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.