Packages

class MetropolisHastingsWithPrefetching[A] extends MarkovChain[A]

Metropolis-Hastings algorithm with speculative executing - generates random samples from a target distribution using only samples from a proposal distribution

The prefetching strategy precomputes (part of) the tree of possible future states and evaluates the states in parallel. If proposals are cheap to compute but evaluation expensive (and single threaded), this strategy might lead to a speed improvement, especially when the number of acceptance is quite low.

See for example Accelerating Metropolis–Hastings algorithms: Delayed acceptance with prefetching M. Banterle, C. Grazian, C .Robert https://arxiv.org/pdf/1406.2660.pdf for a good discussion of the idea and possibilities for further improvements.

Linear Supertypes
MarkovChain[A], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MetropolisHastingsWithPrefetching
  2. MarkovChain
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new MetropolisHastingsWithPrefetching(generator: ProposalGenerator[A] with TransitionRatio[A], evaluator: DistributionEvaluator[A], numberOfParallelEvaluations: Int)(implicit random: Random)

    generator

    The proposal generator

    evaluator

    The evaluator used to compute the (log) probability

    numberOfParallelEvaluations

    The number of

    Attributes
    protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. val evaluator: DistributionEvaluator[A]
  9. implicit val executionContext: ExecutionContextExecutor
  10. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  11. val generator: ProposalGenerator[A] with TransitionRatio[A]
  12. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. def iterator(start: A, logger: AcceptRejectLogger[A]): Iterator[A]

    start a logged iterator

  16. def iterator(current: A): Iterator[A]

    provide a chain starting from current as an iterator

    provide a chain starting from current as an iterator

    Definition Classes
    MarkovChain
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. def next(current: A): A

    next sample in chain

    next sample in chain

    Definition Classes
    MetropolisHastingsWithPrefetchingMarkovChain
  19. def next(current: A, logger: AcceptRejectLogger[A]): A
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. val numberOfParallelEvaluations: Int
  23. implicit val random: Random
  24. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  28. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from MarkovChain[A]

Inherited from AnyRef

Inherited from Any

Ungrouped