package org.aksw.isomorphism; /** * Abstraction over a collection of problems. * Implementations of this interface *must* be capable of picking one of its contained * problems, which *should* be the cheapest one (in regard to * some estimate). Also, the pick method must return the remaining workload * again abstracted as a problem collection. * * Essentially, the problem container represents a state, and the pick method * performs the transition to a new state. * * The {@link ProblemSolver} is the class that actively invokes the the pick * and refine methods. * * * @author Claus Stadler * * @param <S> The solution type */ public interface ProblemContainer<S> { ProblemContainer<S> refine(S partialSolution); ProblemContainerPick<S> pick(); boolean isEmpty(); }