Class MSTSolution

java.lang.Object
es.urjc.etsii.grafo.solution.Solution<MSTSolution, MSTInstance>
es.urjc.etsii.grafo.graphs.model.MSTSolution

public class MSTSolution extends Solution<MSTSolution, MSTInstance>
  • Constructor Details

    • MSTSolution

      public MSTSolution(MSTInstance instance)
      Initialize solution from instance
      Parameters:
      instance -
    • MSTSolution

      public MSTSolution(MSTSolution solution)
      Clone constructor
      Parameters:
      solution - Solution to clone
  • Method Details

    • cloneSolution

      public MSTSolution cloneSolution()
      Description copied from class: Solution
      Clone the current solution. Deep clone mutable data or you will regret it.
      Specified by:
      cloneSolution in class Solution<MSTSolution, MSTInstance>
      Returns:
      A deep clone of the current solution
    • getScore

      public double getScore()
      Get the current solution score. The difference between this method and recalculateScore is that this result can be a property of the solution, or cached, it does not have to be calculated each time this method is called
      Returns:
      current solution score as double
    • toString

      public String toString()
      Generate a string representation of this solution. Used when printing progress to console, show as minimal info as possible
      Specified by:
      toString in class Solution<MSTSolution, MSTInstance>
      Returns:
      Small string representing the current solution (Example: id + score)
    • setScore

      public void setScore(double score)
    • setScoreEdges

      public void setScoreEdges(List<Edge> mstEdges)
    • setScoreDist

      public void setScoreDist(double[][] d)
    • isInCover

      public boolean isInCover(int vertex)
      Is the given vertex part of the vertex cover? Only meaningful for the MVC demo.
      Parameters:
      vertex - vertex id
      Returns:
      true if the vertex is currently selected
    • addToCover

      public void addToCover(int vertex)
      Add a vertex to the vertex cover. Only meaningful for the MVC demo.
      Parameters:
      vertex - vertex id
    • getCoverVertices

      public Set<Integer> getCoverVertices()
      Vertices currently selected as part of the vertex cover. Only meaningful for the MVC demo.
      Returns:
      a new set with the selected vertex ids
    • getCoverSize

      public int getCoverSize()
      Number of vertices currently selected as part of the vertex cover.
      Returns:
      cover size
    • setScoreCover

      public void setScoreCover()
      Set the solution score to the current vertex cover size. Only meaningful for the MVC demo, as the MVC objective is to minimize the number of selected vertices.