# Hierarchy For All Packages

Package Hierarchies:

- examples.jmarkov,
- examples.jmdp,
- examples.jphase,
- jmarkov,
- jmarkov.basic,
- jmarkov.basic.exceptions,
- jmarkov.gui,
- jmarkov.jmdp,
- jmarkov.jmdp.solvers,
- jmarkov.jqbd.solvers,
- jmarkov.solvers,
- jphase,
- jphase.distributions,
- jphase.fit,
- jphase.generator,
- jphase.GUI,
- jphase.values

## Class Hierarchy

- java.lang.Object
  - jphase.AbstractContPhaseVar (implements jphase.ContPhaseVar)
    - jphase.DenseContPhaseVar
    - jphase.ErlangCoxianVar (implements jphase.PhaseVar)
    - jphase.HyperErlangVar (implements jphase.PhaseVar)
    - jphase.HypoExponentialVar (implements jphase.PhaseVar)
    - jphase.SparseContPhaseVar
  - jphase.AbstractDiscPhaseVar (implements jphase.DiscPhaseVar)
    - jphase.DenseDiscPhaseVar (implements jphase.DiscPhaseVar)
    - jphase.SparseDiscPhaseVar
  - jmarkov.basic.Action (implements java.lang.Comparable<T>, jmarkov.basic.JMarkovElement)
    - examples.jmdp.Admit
    - examples.jmdp.Order
    - jmarkov.basic.PropertiesAction (implements jmarkov.basic.PropertiesElement)
  - jmarkov.basic.ActionsSet<A> (implements jmarkov.basic.Actions<A>)
  - examples.jphase.BasicExamples
  - java.lang.ClassLoader
    - jmarkov.gui.MarkovClassLoader
  - java.awt.Component (implements java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable)
    - java.awt.Container
      - javax.swing.JComponent (implements java.io.Serializable)
        - javax.swing.JPanel (implements javax.accessibility.Accessible)
          - jmarkov.gui.InfoPanel
            - jmarkov.gui.DenseRatesPanel
            - jmarkov.gui.MatrixPanel (implements java.awt.event.ItemListener)
            - jmarkov.gui.SparseMatrixPanel (implements javax.swing.event.TreeSelectionListener)
            - jmarkov.gui.TextPanel (implements java.awt.event.ActionListener)
          - jphase.GUI.TreeManagerPanel (implements javax.swing.event.TreeSelectionListener)
      - java.awt.Window (implements javax.accessibility.Accessible)
        - java.awt.Dialog
          - javax.swing.JDialog (implements javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants)
            - jphase.GUI.FitFrame
            - jphase.GUI.InputFrame (implements java.awt.event.ActionListener)
            - jmarkov.gui.MarkovFileOpenDialog (implements java.awt.event.ActionListener)
            - jphase.GUI.NewQueueDialog (implements java.awt.event.ActionListener, java.awt.event.ItemListener)
            - jphase.GUI.NewVarFrame (implements java.awt.event.ActionListener)
            - jphase.GUI.ParamFrame
            - jphase.GUI.PhaseGOF (implements java.awt.event.ActionListener, java.awt.event.ItemListener)
        - java.awt.Frame (implements java.awt.MenuContainer)
          - javax.swing.JFrame (implements javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants)
            - jphase.GUI.FrameMini
            - jphase.GUI.GenerateVarFrame
            - jphase.GUI.MainFrame
            - jmarkov.gui.MarkovGUI (implements java.awt.event.ActionListener, javax.swing.event.ChangeListener, java.awt.event.ComponentListener)
  - jphase.fit.ContPhaseFitter (implements jphase.fit.PhaseFitter)
    - jphase.fit.MLContPhaseFitter
      - jphase.fit.EMHyperErlangFit
      - jphase.fit.EMHyperExpoFit
      - jphase.fit.EMPhaseFit
    - jphase.fit.MomentsContPhaseFitter
      - jphase.fit.MomentsACPH2Fit
      - jphase.fit.MomentsACPHFit
      - jphase.fit.MomentsECCompleteFit
      - jphase.fit.MomentsECPositiveFit
  - jmarkov.DebugReporter
  - jmarkov.basic.DecisionRule<S,A> (implements java.lang.Iterable<T>, jmarkov.basic.JMarkovElement)
  - jphase.fit.DiscPhaseFitter (implements jphase.fit.PhaseFitter)
    - jphase.fit.MLDiscPhaseFitter
    - jphase.fit.MomentsDiscPhaseFitter
      - jphase.fit.MomentsADPH2Fit
  - jphase.distributions.DistributionManager
  - jphase.distributions.EDistribution (implements jphase.distributions.IDistribution)
  - jmarkov.basic.Event (implements java.lang.Comparable<T>, jmarkov.basic.JMarkovElement)
    - jmarkov.basic.PropertiesEvent (implements jmarkov.basic.PropertiesElement)
      - examples.jmdp.DemandEvent
    - examples.jmdp.TandemEvent
  - jmarkov.basic.EventsSet<E> (implements jmarkov.basic.Events<E>)
  - jphase.values.FitResult
  - jphase.fit.FitterUtils
  - jphase.FittingLEcuyer
  - jphase.values.GenerationResult
  - jphase.GeneratorLEcuyer
  - jphase.generator.GeneratorUtils
  - jmarkov.gui.GuiUtils
  - jmarkov.MarkovProcess<S,E> (implements jmarkov.basic.JMarkovElement)
    - examples.jmarkov.BBPhBuf
      - examples.jmarkov.BBPhBufExp
    - jmarkov.SimpleMarkovProcess<S,E>
      - examples.jmarkov.AccessControl2Queues
      - examples.jmarkov.BBPhase
      - examples.jmarkov.BucketBrigades
      - examples.jmarkov.BucketBuffers
      - examples.jmarkov.DriveThru
      - jmarkov.GeomProcess<Sub,E>
        - examples.jmarkov.ErlangQueue
        - examples.jmarkov.HiperExQueue
        - examples.jmarkov.PHLine
        - examples.jmarkov.QueueMEk1
        - examples.jmarkov.QueueMH2k1
        - examples.jmarkov.QueuePhPh2
      - examples.jmarkov.Jackson
      - examples.jmarkov.Kanban
      - examples.jphase.PhaseSystem
      - examples.jmarkov.PickBlockNarrow
      - examples.jmarkov.PickBlockNarrowCont
      - examples.jmarkov.PickBlockNarrowSlow
      - examples.jmarkov.PickBlockWide
      - examples.jmarkov.PickBlockWideContKPickers_V3
      - examples.jmarkov.PickBlockWideSlow
      - examples.jmarkov.QueueMM1N
      - examples.jmarkov.QueueMM2dN
      - examples.jmarkov.QueueMMKdN
      - examples.jmarkov.Web
  - Jama.Matrix (implements java.lang.Cloneable, java.io.Serializable)
    - jphase.MarkovMatrix
  - jphase.MatrixUtils
  - jmarkov.jmdp.MDP<S,A>
    - jmarkov.jmdp.FiniteMDP<S,A>
      - examples.jmdp.CattleGrowth
      - jmarkov.jmdp.FiniteDP<S,A>
        - examples.jmdp.CowHerd
        - examples.jmdp.WagnerWhitin
      - jmarkov.jmdp.FiniteMDPEv<S,A,E>
        - examples.jmdp.AccessControlFiniteHor
      - examples.jmdp.Inventory
      - examples.jmdp.StochasticDemand
    - jmarkov.jmdp.InfiniteMDP<S,A>
      - jmarkov.jmdp.CTMDP<S,A>
        - examples.jmdp.Bank2Queues
        - examples.jmdp.CTInventory
        - jmarkov.jmdp.CTMDPEv<S,A,E>
          - examples.jmdp.CTInventoryEvents
        - jmarkov.jmdp.CTMDPEvA<S,A,E>
      - jmarkov.jmdp.DTMDP<S,A>
        - examples.jmdp.ControlProdNonEvents
        - jmarkov.jmdp.CT2DTConverter<S,A>
        - jmarkov.jmdp.DTMDPEv<S,A,E>
          - examples.jmdp.AccessControl
          - examples.jmdp.ControlProduccion
        - jmarkov.jmdp.DTMDPEvA<S,A,E>
        - examples.jmdp.InfStochasticDemand
        - examples.jmdp.LeadTimeStochasticDemand
        - examples.jmdp.OrderProcessing
        - examples.jmdp.ProbsExample
        - jmarkov.jmdp.StochasticShortestPath<S,A>
  - jphase.generator.PhaseGenerator
    - jphase.generator.NeutsContPHGenerator
    - jphase.generator.NeutsDiscPHGenerator
  - jphase.GUI.PhaseVarInfo
  - jphase.PhaseVarSet (implements java.io.Serializable)
  - jmarkov.basic.Policy<S,A>
  - jmarkov.jmdp.solvers.ProbabilitySolver<S,A>
  - jmarkov.jqbd.solvers.QBDPhaseSolver
    - jmarkov.jqbd.solvers.CLPAlgorithm
    - jmarkov.jqbd.solvers.ModBoundSolverFromMatrix
    - jmarkov.jqbd.solvers.MtjLogRedSolverFromMatrix
  - jphase.values.ReaderWriter
  - jmarkov.basic.Solution<S,A>
  - jmarkov.solvers.Solver (implements jmarkov.basic.JMarkovElement)
    - jmarkov.solvers.GeometricSolver
      - jmarkov.solvers.MtjLogRedSolver
    - jmarkov.solvers.GeometrixSolver
    - jmarkov.solvers.SteadyStateSolver
      - jmarkov.solvers.JamaSolver
      - jmarkov.solvers.MtjSolver
    - jmarkov.solvers.TransientSolver
      - jmarkov.solvers.JamaTransientSolver
  - jmarkov.jmdp.solvers.Solver<S,A> (implements jmarkov.basic.JMarkovElement)
    - jmarkov.jmdp.solvers.AbstractFiniteSolver<S,A>
      - jmarkov.jmdp.solvers.FiniteSolver<S,A>
    - jmarkov.jmdp.solvers.AbstractInfiniteSolver<S,A>
      - jmarkov.jmdp.solvers.AbstractAverageSolver<S,A>
        - jmarkov.jmdp.solvers.LPBCLAverageSolver<S,A>
        - jmarkov.jmdp.solvers.MpsLpAverageSolver<S,A> (implements jmarkov.jmdp.solvers.MpsLpSolver<S,A>)
          - jmarkov.jmdp.solvers.MPSQsOptAverageSolver<S,A>
          - jmarkov.jmdp.solvers.MPSXpressAverage<S,A>
        - jmarkov.jmdp.solvers.PolicyIterationSolverAvg<S,A>
        - jmarkov.jmdp.solvers.RelativeValueIterationSolver<S,A>
      - jmarkov.jmdp.solvers.AbstractDiscountedSolver<S,A>
        - jmarkov.jmdp.solvers.LPBCLDiscountedSolver<S,A> (implements jmarkov.jmdp.solvers.LPSolver<S,A>)
        - jmarkov.jmdp.solvers.MpsLpDiscountedSolver<S,A> (implements jmarkov.jmdp.solvers.MpsLpSolver<S,A>)
          - jmarkov.jmdp.solvers.MPSQsOptDiscountedSolver<S,A>
          - jmarkov.jmdp.solvers.MPSXpressDiscounted<S,A>
        - jmarkov.jmdp.solvers.PolicyIterationSolver<S,A>
        - jmarkov.jmdp.solvers.ValueIterationSolver<S,A>
      - jmarkov.jmdp.solvers.AbstractTotalSolver<S,A>
        - jmarkov.jmdp.solvers.StochasticShortestPathSolver<S,A>
  - jmarkov.basic.State (implements java.lang.Comparable<T>, jmarkov.basic.JMarkovElement)
    - jmarkov.GeomRelState<Sub>
    - jmarkov.GeomState<Sub>
    - jmarkov.basic.PropertiesState (implements jmarkov.basic.PropertiesElement)
      - examples.jmdp.InvLevel
      - examples.jmdp.TandemQueues
    - jmarkov.basic.StateC
    - jmarkov.basic.StateEvent<S,E>
  - jmarkov.basic.StatesSet<S> (implements jmarkov.basic.States<S>)
  - jmarkov.gui.SwingWorker
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - jmarkov.basic.exceptions.NonStochasticException
      - jmarkov.basic.exceptions.SolverException
        - jmarkov.basic.exceptions.NotUnichainException
        - jmarkov.basic.exceptions.StructureException
  - jmarkov.basic.Transition<S> (implements jmarkov.basic.JMarkovElement)
  - jmarkov.basic.TransitionsSet<S> (implements jmarkov.basic.JMarkovElement, jmarkov.basic.Transitions<S>)
  - jphase.distributions.UniformManager
  - jphase.Utils
  - jmarkov.basic.ValueFunction<S> (implements jmarkov.basic.JMarkovElement)

## Interface Hierarchy

- jphase.distributions.IDistribution
- java.lang.Iterable<T>
  - jmarkov.basic.Actions<A>
  - jmarkov.basic.Events<E>
  - jmarkov.basic.States<S>
  - jmarkov.basic.Transitions<S> (also extends jmarkov.basic.JMarkovElement)
- jmarkov.basic.JMarkovElement
  - jphase.ContPhaseVar
  - jphase.DiscPhaseVar
  - jphase.PhaseVar
    - jphase.ContPhaseVar
    - jphase.DiscPhaseVar
  - jmarkov.basic.PropertiesElement
  - jmarkov.basic.Transitions<S> (also extends java.lang.Iterable<T>)
- jmarkov.jmdp.solvers.LPSolver<S,A>
  - jmarkov.jmdp.solvers.MpsLpSolver<S,A>
- jphase.fit.PhaseFitter

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - jmarkov.MarkovProcess.Status
    - examples.jmdp.TandemEvent.TEvent
    - jmarkov.solvers.MtjSolver.EnumPrecond
    - jmarkov.solvers.MtjSolver.EnumSolver
    - jmarkov.gui.MarkovFileOpenDialog.ResultTypes