|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectscpsolver.graph.Graph
scpsolver.graph.BipartiteGraph
public class BipartiteGraph
Constructor Summary | |
---|---|
BipartiteGraph()
|
Method Summary | |
---|---|
Edge |
addEdgeSecure(java.lang.String leftlabel,
java.lang.String rightlabel)
adds a directed edge between a left and right node. |
Edge |
addEdgeSecure(java.lang.String leftlabel,
java.lang.String rightlabel,
boolean reverse)
Adds a directed edge between a left and right node. |
Edge |
addEdgeSecure(java.lang.String leftlabel,
java.lang.String rightlabel,
java.lang.String edgelabel,
boolean reverse)
Adds a directed labeled edge between a left and right node. |
Node |
addLeftNode(Node node)
|
Node |
addRightNode(Node node)
|
java.util.ArrayList<Node> |
findSimilarLeftNodes(Node node)
|
java.util.ArrayList<java.util.HashSet<Node>> |
getAllComponents()
Returns all components of the graph |
java.util.HashSet<Node> |
getComponent(Node n)
Returns all nodes that are in the same graph component as n |
LinearProgram |
getDenseConveringWithSizeLinearProgram(int k)
|
LinearProgram |
getDualCoverLinearProgram(int maxcost)
|
int |
getIndex(Node node)
|
java.util.ArrayList<Node> |
getLeftNodeWithActiveCardinality(int min,
int max)
Returns all nodes on left side that have active cardinality bigger than min and lower than max. |
java.util.ArrayList<Node> |
getLeftNodeWithCardinality(int min,
int max)
Returns all nodes on left side that have a cardinality bigger than min and lower than max. |
Node |
getNode(int index)
|
Node |
getNode(java.lang.String label)
|
java.util.HashMap<java.lang.String,Node> |
getNodes()
|
java.util.ArrayList<Node> |
getNodeSet(java.util.ArrayList<java.lang.String> nodelist)
|
java.util.ArrayList<Node> |
getNodeSet(java.lang.String nodestring)
|
java.util.HashMap<java.lang.String,Node> |
getNodesleft()
|
java.util.HashMap<java.lang.String,Node> |
getNodesright()
|
int |
getNumberNodes()
|
int |
getNumberOfLeftNodes()
Returns the number of left nodes |
int |
getNumberOfRightNodes()
Returns the number of rigth nodes |
java.util.ArrayList<Node> |
getRightNodeWithActiveCardinality(int min,
int max)
Returns all nodes on right side that have active cardinality bigger than min and lower than max. |
java.util.ArrayList<Node> |
getRightNodeWithCardinality(int min,
int max)
Returns all nodes on right side that have cardinality bigger than min and lower than max. |
LinearProgram |
getSetCoverLinearProgram(int mincover)
|
LinearProgram |
getSetCoverLinearProgramMulticover()
|
LinearProgram |
getSetCoverLinearProgramRelaxed(int mincover)
|
boolean |
hasEdge(java.lang.String leftlabel,
java.lang.String rightlabel)
Checks if there is a edge between left node labeled leftlabel and a right node labeled rightlabel |
boolean |
isValidCovering(java.util.ArrayList<Node> set)
Checks if a set of left nodes (subset) covers all right nodes (universe elements). |
static void |
main(java.lang.String[] args)
|
void |
removeLeftNode(Node node)
Remove a left node |
void |
reset()
|
java.util.ArrayList<Node> |
solveCoveringProblemLP(LinearProgramSolver solver,
int mincover)
|
java.util.ArrayList<Node> |
solveCoveringProblemLPApproximation(LinearProgramSolver solver)
|
java.util.ArrayList<Node> |
solveCoveringProblemLPMulticover(LinearProgramSolver solver)
|
java.util.ArrayList<Node> |
solveDenseCoveringProblemLP(LinearProgramSolver solver,
int max)
|
java.util.ArrayList<Node> |
solveDualCoveringProblemLP(LinearProgramSolver solver,
int maxcost)
|
java.util.ArrayList<Node> |
solveLinearProgramForSubProblem(java.util.ArrayList<Node> proteinsublist,
java.util.ArrayList<Node> epitopes,
java.util.ArrayList<Node> solution,
LinearProgramSolver solver)
|
java.util.ArrayList<Node> |
solveSetCoveringProblemGreedy()
Greedy heuristic for the set covering problem represented by the bipartite graph. |
java.util.ArrayList<Node> |
solveSetCoveringProblemGreedyActive(java.util.Comparator<Node> comp)
Greedy heuristic for the set covering problem represented by the bipartite graph. |
java.util.ArrayList<Node> |
solveSetCoveringProblemGreedyActive(java.util.Comparator<Node> comp,
int max)
Greedy heuristic for the set covering problem represented by the bipartite graph. |
java.util.ArrayList<Node> |
sortCovering(java.util.ArrayList<Node> pset,
java.lang.String filename)
Sorts a covering by means of the greedy heuristic. |
java.lang.String |
toGML()
Generates the GML-graph representation of the Bipartite Graph A recommended viewer for GML files is yED |
void |
toGML(java.lang.String filename)
|
void |
toSetCoverCPLEXStream(java.lang.String filename,
int mincover)
Writes the linear program in CPLEX LP format for the set sovering problem represented by the bipartite graph directly to a file. |
java.lang.String |
toSetCoverGPML(int mincover)
Deprecated. |
void |
toSetCoverGPML(java.lang.String filename,
int mincover)
Deprecated. |
void |
toSetCoverGPMLStream(java.lang.String filename,
int mincover)
Writes the linear program in Mathprog format for the set sovering problem represented by the bipartite graph directly to a file. |
void |
toSetCoverOPBStream(java.lang.String filename,
int mincover)
Writes the linear program in OPB format for the set sovering problem represented by the bipartite graph directly to a file. |
java.lang.String |
toTKZLatex(int minimumnodesize,
int xrightnodes,
double distance,
java.lang.String leftnodecolor,
java.lang.String rightnodecolor)
|
Methods inherited from class scpsolver.graph.Graph |
---|
activateAllEdges, addGraph, addNode, clone, getAdjMatrix, getAdjMatrix, getAllComponentsDL, getComponentDL, getEdge, getNodeSetPipe, getNodeWithActiveCardinality, getNodeWithCardinality, getNumberEdges, isEmpty, removeCards, removeEdge, removeNode, toGML, toGMLwithGrouping, toMTX |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public BipartiteGraph()
Method Detail |
---|
public java.util.HashMap<java.lang.String,Node> getNodesleft()
public java.util.HashMap<java.lang.String,Node> getNodesright()
public Node getNode(java.lang.String label)
getNode
in interface GraphInterface
getNode
in class Graph
public void reset()
reset
in class Graph
public Node addLeftNode(Node node)
public Node addRightNode(Node node)
public java.util.HashSet<Node> getComponent(Node n)
getComponent
in class Graph
n
- Node
public java.util.ArrayList<java.util.HashSet<Node>> getAllComponents()
getAllComponents
in class Graph
public java.lang.String toTKZLatex(int minimumnodesize, int xrightnodes, double distance, java.lang.String leftnodecolor, java.lang.String rightnodecolor)
public void removeLeftNode(Node node)
node
- public int getNumberOfLeftNodes()
public int getNumberOfRightNodes()
public boolean hasEdge(java.lang.String leftlabel, java.lang.String rightlabel)
hasEdge
in interface GraphInterface
hasEdge
in class Graph
leftlabel
- rightlabel
-
public Edge addEdgeSecure(java.lang.String leftlabel, java.lang.String rightlabel, boolean reverse)
addEdgeSecure
in class Graph
leftlabel
- rightlabel
- reverse
-
public Edge addEdgeSecure(java.lang.String leftlabel, java.lang.String rightlabel)
addEdgeSecure
in interface GraphInterface
addEdgeSecure
in class Graph
leftlabel
- rightlabel
-
public Edge addEdgeSecure(java.lang.String leftlabel, java.lang.String rightlabel, java.lang.String edgelabel, boolean reverse)
addEdgeSecure
in class Graph
leftlabel
- rightlabel
- edgelabel
- reverse
-
public LinearProgram getDenseConveringWithSizeLinearProgram(int k)
public java.util.ArrayList<Node> solveSetCoveringProblemGreedy()
public java.util.ArrayList<Node> solveSetCoveringProblemGreedyActive(java.util.Comparator<Node> comp)
comp
-
public java.util.ArrayList<Node> solveSetCoveringProblemGreedyActive(java.util.Comparator<Node> comp, int max)
comp
-
public LinearProgram getSetCoverLinearProgram(int mincover)
public LinearProgram getDualCoverLinearProgram(int maxcost)
public LinearProgram getSetCoverLinearProgramMulticover()
public LinearProgram getSetCoverLinearProgramRelaxed(int mincover)
public java.util.ArrayList<Node> solveCoveringProblemLPApproximation(LinearProgramSolver solver)
public java.util.ArrayList<Node> solveLinearProgramForSubProblem(java.util.ArrayList<Node> proteinsublist, java.util.ArrayList<Node> epitopes, java.util.ArrayList<Node> solution, LinearProgramSolver solver)
public java.util.ArrayList<Node> solveDenseCoveringProblemLP(LinearProgramSolver solver, int max)
public java.util.ArrayList<Node> solveCoveringProblemLP(LinearProgramSolver solver, int mincover)
public java.util.ArrayList<Node> solveDualCoveringProblemLP(LinearProgramSolver solver, int maxcost)
public java.util.ArrayList<Node> solveCoveringProblemLPMulticover(LinearProgramSolver solver)
public java.lang.String toSetCoverGPML(int mincover)
mincover
-
public java.lang.String toGML()
toGML
in class Graph
public void toSetCoverGPML(java.lang.String filename, int mincover)
filename
- mincover
- public void toSetCoverGPMLStream(java.lang.String filename, int mincover)
filename
- mincover
- public void toSetCoverOPBStream(java.lang.String filename, int mincover)
filename
- mincover
- public void toSetCoverCPLEXStream(java.lang.String filename, int mincover)
filename
- mincover
- public boolean isValidCovering(java.util.ArrayList<Node> set)
set
-
public java.util.ArrayList<Node> sortCovering(java.util.ArrayList<Node> pset, java.lang.String filename)
set
-
public java.util.ArrayList<Node> getLeftNodeWithCardinality(int min, int max)
min
- max
-
public java.util.ArrayList<Node> getRightNodeWithCardinality(int min, int max)
min
- max
-
public java.util.ArrayList<Node> getLeftNodeWithActiveCardinality(int min, int max)
min
- max
-
public java.util.ArrayList<Node> getRightNodeWithActiveCardinality(int min, int max)
min
- max
-
public java.util.ArrayList<Node> findSimilarLeftNodes(Node node)
node
-
public void toGML(java.lang.String filename)
toGML
in class Graph
filename
- public java.util.ArrayList<Node> getNodeSet(java.lang.String nodestring)
getNodeSet
in class Graph
nodestring
-
public java.util.ArrayList<Node> getNodeSet(java.util.ArrayList<java.lang.String> nodelist)
public int getIndex(Node node)
public Node getNode(int index)
public static void main(java.lang.String[] args)
public java.util.HashMap<java.lang.String,Node> getNodes()
getNodes
in interface GraphInterface
getNodes
in class Graph
public int getNumberNodes()
getNumberNodes
in interface GraphInterface
getNumberNodes
in class Graph
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |