diff --git a/Pace-Heuristic/src/main/java/de/uni/bremen/cluster/editing/pace/heuristic/PaceHeuristic.java b/Pace-Heuristic/src/main/java/de/uni/bremen/cluster/editing/pace/heuristic/PaceHeuristic.java index ca8e0e8b74ca298db9bfc967e2f9daa826c8ca97..2e585d5d732d8ba6adf1f11433339db324f6a5be 100644 --- a/Pace-Heuristic/src/main/java/de/uni/bremen/cluster/editing/pace/heuristic/PaceHeuristic.java +++ b/Pace-Heuristic/src/main/java/de/uni/bremen/cluster/editing/pace/heuristic/PaceHeuristic.java @@ -33,7 +33,6 @@ public class PaceHeuristic { System.exit(-1); } currentBest = getTrivialChanges(graph); - while (!stop) { PositionGraph graphP = new PositionGraph(graph, 2); LayoutUpperBoundHeuristic heuristic = new LayoutUpperBoundHeuristic(null); diff --git a/Pace-Kernelisation/pom.xml b/Pace-Kernelisation/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..28b5108ee55d1d9e8af031d7c56d382d777bf4bc --- /dev/null +++ b/Pace-Kernelisation/pom.xml @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>cluster-editing</artifactId> + <groupId>de.uni.bremen</groupId> + <version>pace2021</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>Pace-Kernalisation</artifactId> + + <properties> + <maven.compiler.source>16</maven.compiler.source> + <maven.compiler.target>16</maven.compiler.target> + </properties> + + <dependencies> + <dependency> + <groupId>de.uni.bremen</groupId> + <artifactId>Pace-Solver</artifactId> + <version>pace2021</version> + </dependency> + </dependencies> + + <!-- !!! NICHT ANFASSEN !!! --> + <build> + <finalName>Pace-Kernalisation-Solver</finalName> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>3.2.4</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <shadedArtifactAttached>true</shadedArtifactAttached> + <shadedClassifierName>jar-with-dependencies</shadedClassifierName> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <mainClass>de.uni.bremen.cluster.editing.kernelisation.Main</mainClass> + </transformer> + </transformers> + <filters> + <filter> + <artifact>Jeigen:jeigen</artifact> + <excludes> + <exclude>**/msvc-redist/**</exclude> + <exclude>**/*-win-*.*</exclude> + <exclude>**/*-mac-*.*</exclude> + </excludes> + </filter> + </filters> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + +</project> \ No newline at end of file diff --git a/Pace-Kernelisation/src/main/java/de/uni/bremen/cluster/editing/kernelisation/Main.java b/Pace-Kernelisation/src/main/java/de/uni/bremen/cluster/editing/kernelisation/Main.java new file mode 100644 index 0000000000000000000000000000000000000000..e71c77db64302286de7258694a1a6804c7ce9b21 --- /dev/null +++ b/Pace-Kernelisation/src/main/java/de/uni/bremen/cluster/editing/kernelisation/Main.java @@ -0,0 +1,8 @@ +package de.uni.bremen.cluster.editing.kernelisation; + +public class Main { + public static void main(final String... args) { + PaceKernelSolver solver = new PaceKernelSolver(); + solver.solve(); + } +} diff --git a/Pace-Kernelisation/src/main/java/de/uni/bremen/cluster/editing/kernelisation/PaceKernelSolver.java b/Pace-Kernelisation/src/main/java/de/uni/bremen/cluster/editing/kernelisation/PaceKernelSolver.java new file mode 100644 index 0000000000000000000000000000000000000000..9b7da0346f83189969ca3ddf00ff1739987c0474 --- /dev/null +++ b/Pace-Kernelisation/src/main/java/de/uni/bremen/cluster/editing/kernelisation/PaceKernelSolver.java @@ -0,0 +1,50 @@ +package de.uni.bremen.cluster.editing.kernelisation; + +import de.uni.bremen.cluster.editing.custom.graph.library.helper.ConsoleHelper; +import de.uni.bremen.cluster.editing.custom.graph.library.io.implementation.BasicUndirectedGraphStdInOutImportExporter; +import de.uni.bremen.cluster.editing.custom.graph.library.model.api.Edge; +import de.uni.bremen.cluster.editing.custom.graph.library.model.implementation.BasicUndirectedGraph; +import de.uni.bremen.cluster.editing.utilities.common.api.algorithm.Solver; +import de.uni.bremen.cluster.editing.utilities.solver.graphsplitter.GraphSplitterSolver; + +import java.io.IOException; + +public class PaceKernelSolver { + public void solve() { + //load Graph + ConsoleHelper.setDebug(false); + Solver.TRACKING = false; + BasicUndirectedGraphStdInOutImportExporter loader = new BasicUndirectedGraphStdInOutImportExporter(); + BasicUndirectedGraph graph = null; + try { + graph = loader.loadAndCreate(); + } catch (IOException e) { + e.printStackTrace(); + } + //solve + Solver solver = new GraphSplitterSolver(graph); + solver.solve(); + System.out.println(solver.getResultK()); + System.out.println("p cep 0 0"); + System.out.println(solver.getResultK()); + printEdgeModifications(solver); + + System.out.println(solver.getResultK()); + printEdgeModifications(solver); + + System.out.println(solver.getResultK()); + printEdgeModifications(solver); + + System.out.println(solver.getResultK()); + printEdgeModifications(solver); + } + + private void printEdgeModifications(Solver solver) { + for (Edge edge : solver.getChanges().getAddedEdges()) { + System.out.println((edge.getStartId()) + " " + (edge.getEndId())); + } + for (Edge edge : solver.getChanges().getRemovedEdges()) { + System.out.println((edge.getStartId()) + " " + (edge.getEndId())); + } + } +} diff --git a/pom.xml b/pom.xml index 00e788df44b7b5495620c034c8820ba428686310..3d0fe3ede017da58c211f8ef8079698230e8552f 100644 --- a/pom.xml +++ b/pom.xml @@ -37,6 +37,7 @@ <module>Pace-Solver</module> <module>Pace-Heuristic</module> <module>Custom-Graph-Library</module> + <module>Pace-Kernelisation</module> </modules> <properties>