From faf71a088561dbd830708a10fdc70eacc9fa037d Mon Sep 17 00:00:00 2001
From: Yannik <dieschlafmuetze@gmail.com>
Date: Sun, 30 May 2021 22:11:29 +0200
Subject: [PATCH] final params?

---
 .../editing/lp/google/GoogleSolveHelper.java  | 15 +++-------
 .../common/FruchtemanLpOrIlpSolver.java       | 29 ++++++-------------
 .../solver/graphsplitter/TestMain.java        |  2 +-
 3 files changed, 14 insertions(+), 32 deletions(-)

diff --git a/LP/src/main/java/de/uni/bremen/cluster/editing/lp/google/GoogleSolveHelper.java b/LP/src/main/java/de/uni/bremen/cluster/editing/lp/google/GoogleSolveHelper.java
index ddae7ee..363b925 100644
--- a/LP/src/main/java/de/uni/bremen/cluster/editing/lp/google/GoogleSolveHelper.java
+++ b/LP/src/main/java/de/uni/bremen/cluster/editing/lp/google/GoogleSolveHelper.java
@@ -97,17 +97,10 @@ public abstract class GoogleSolveHelper {
 
   @SneakyThrows
   public void solve() {
-    try {
-      final long time = System.currentTimeMillis();
-      createSolver();
-      solve(time, false, null);
-    } catch (Exception e) {
-      if (e instanceof InterruptedException) {
-        ConsoleHelper.print("OrTools recived an interrupt");
-        mpSolver.interruptSolve();
-        throw new InterruptedException();
-      }
-    }
+    final long time = System.currentTimeMillis();
+    createSolver();
+    mpSolver.suppressOutput();
+    solve(time, false, null);
   }
 
   public void solve(EdgeModification<UndirectedEdge> changes) {
diff --git a/Utilities/src/main/java/de/uni/bremen/cluster/editing/utilities/solver/common/FruchtemanLpOrIlpSolver.java b/Utilities/src/main/java/de/uni/bremen/cluster/editing/utilities/solver/common/FruchtemanLpOrIlpSolver.java
index 3b6f302..ba46193 100644
--- a/Utilities/src/main/java/de/uni/bremen/cluster/editing/utilities/solver/common/FruchtemanLpOrIlpSolver.java
+++ b/Utilities/src/main/java/de/uni/bremen/cluster/editing/utilities/solver/common/FruchtemanLpOrIlpSolver.java
@@ -31,15 +31,11 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 public class FruchtemanLpOrIlpSolver extends Solver {
 
-  private static int maxIlpEdges = 12000;
-  private static int minIlpP3s = 930;
-  private static int maxLPP3s = 140000; //not tested atm with smac
+  private static int maxIlpEdges = 4965;
+  private static int maxLpEdges = 76652;
+  private static int maxIlpP3s = 72410;
+  private static int maxLPP3s = 720000;
   private static boolean and = false;
-  private static double maxP3sRatioLP = 0.05;
-  private static double maxP3sRatioILP = 0.005;
-  private static double edgesVerticiesRatioILP = 0.02;
-
-  private double p3Ratio;
 
   public FruchtemanLpOrIlpSolver(final ProblemInstance graph) {
     super(graph);
@@ -111,13 +107,8 @@ public class FruchtemanLpOrIlpSolver extends Solver {
       return;
     }
 
-    p3Ratio = p3Helper.getSizeEdgeDisjointP3s() / (double) p3s;
-
     ConsoleHelper.print("P3s found: " + p3s);
-    ConsoleHelper.print("P3-Ratio: " + p3Ratio);
-    if (p3s < minIlpP3s) {
-      bb(instance, p3Helper);
-    } else if (doIlp(p3s, instance)) {
+    if (doIlp(p3s, instance)) {
       ilp(instance);
     } else {
       bb(instance, p3Helper);
@@ -126,10 +117,8 @@ public class FruchtemanLpOrIlpSolver extends Solver {
   }
 
   private boolean doIlp(int p3s, ProblemInstance instance) {
-    return !and && (instance.getEdges().size() < maxIlpEdges || p3Ratio < maxP3sRatioILP
-        || (instance.getVertices().size() / (double) instance.getVertices().size() < edgesVerticiesRatioILP))
-        || and && (instance.getEdges().size() < maxIlpEdges && p3Ratio < maxP3sRatioILP
-        && (instance.getVertices().size() / (double) instance.getVertices().size() < edgesVerticiesRatioILP));
+    return !and && (instance.getEdges().size() < maxIlpEdges || maxIlpP3s < p3s)
+        || and && (instance.getEdges().size() < maxIlpEdges && maxIlpP3s < p3s);
   }
 
   private void ilp(final ProblemInstance instance) {
@@ -202,8 +191,8 @@ public class FruchtemanLpOrIlpSolver extends Solver {
   }
 
   private boolean doLP(ProblemInstance instance, P3Helper<ProblemInstance> p3Helper) {
-    return (!and && (p3Helper.getSizeAllP3s() < maxLPP3s || p3Ratio < maxP3sRatioLP))
-        || (and && (p3Helper.getSizeAllP3s() < maxLPP3s && p3Ratio < maxP3sRatioLP));
+    return (!and && (instance.getEdges().size() < maxLpEdges || p3Helper.getSizeAllP3s() < maxLPP3s))
+        || (and && (instance.getEdges().size() < maxLpEdges && p3Helper.getSizeAllP3s() < maxLPP3s));
   }
 
   @Override
diff --git a/Utilities/src/main/java/de/uni/bremen/cluster/editing/utilities/solver/graphsplitter/TestMain.java b/Utilities/src/main/java/de/uni/bremen/cluster/editing/utilities/solver/graphsplitter/TestMain.java
index baa9a20..73b2e68 100644
--- a/Utilities/src/main/java/de/uni/bremen/cluster/editing/utilities/solver/graphsplitter/TestMain.java
+++ b/Utilities/src/main/java/de/uni/bremen/cluster/editing/utilities/solver/graphsplitter/TestMain.java
@@ -8,7 +8,7 @@ import de.uni.bremen.cluster.editing.utilities.common.api.algorithm.Solver;
 
 public class TestMain {
   public static void main(final String... args) {
-    final String path = "../test-cases/exact/exact061.gr";
+    final String path = "../test-cases/exact/exact199.gr";
     Solver.TRACKING = true;
     Solver solver = new GraphSplitterSolver(path);
     solver.solve();
-- 
GitLab