import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.jdom2.Element;
import frodo2.algorithms.AgentInterface;
import frodo2.algorithms.SolutionCollector;
import frodo2.algorithms.StatsReporterWithConvergence;
import frodo2.algorithms.asodpop.ASODPOP.AssignmentMessage;
import frodo2.algorithms.asodpop.goodsTree.innerNodeTreeBinaryDomains.InnerNodeTree;
import frodo2.algorithms.asodpop.goodsTree.innerNodeTreeBinaryDomains.LeafNode;
import frodo2.algorithms.asodpop.goodsTree.leafNodeTree.LeafNodeTree;
import frodo2.algorithms.odpop.ASKmsg;
import frodo2.algorithms.odpop.DONEmsg;
import frodo2.algorithms.odpop.UTILpropagation;
import frodo2.algorithms.odpop.goodsTree.GoodsTree;
import frodo2.algorithms.varOrdering.dfs.DFSgeneration;
import frodo2.algorithms.varOrdering.dfs.DFSgeneration.DFSview;
import frodo2.communication.Message;
import frodo2.communication.MessageType;
import frodo2.communication.Queue;
import frodo2.solutionSpaces.Addable;
import frodo2.solutionSpaces.DCOPProblemInterface;
import frodo2.solutionSpaces.UtilitySolutionSpace;