Sync with upstream

This commit is contained in:
Frank Schiebel 2024-03-12 17:34:56 +01:00
parent 39a2f13410
commit 66e8fa72bf
135 changed files with 38902 additions and 37757 deletions

View file

@ -18,7 +18,7 @@ import graph.*;
* @author Thomas Schaller
*/
public class GraphAlgo_DominatingSetGreedyE extends GraphAlgo_DominatingSetGreedy {
public class GraphAlgo_DominatingSetGreedyE extends GraphAlgo {
// Anfang Attribute
@ -30,7 +30,7 @@ public class GraphAlgo_DominatingSetGreedyE extends GraphAlgo_DominatingSetGreed
* ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat
*/
protected Knoten bestimmeBesten() {
private Knoten bestimmeBesten() {
Random r= new Random();
List<Knoten> markierte = g.getAlleKnoten(k->k.isMarkiert() );
@ -67,5 +67,32 @@ public class GraphAlgo_DominatingSetGreedyE extends GraphAlgo_DominatingSetGreed
return bester;
}
// Anfang Methoden
public void fuehreAlgorithmusAus() {
if (g.getAnzahlKnoten()==0) {
return;
}
List<Knoten> knoten = g.getAlleKnoten(k->!k.isMarkiert() && !k.isBesucht());
info("Solange es noch nicht überdeckte Knoten gibt, wiederhole...");
int nr = 1;
while(knoten.size() > 0) {
info("Bestimme "+(nr++)+". hinzuzufügenden Knoten");
infoIndentMore();
Knoten bester = bestimmeBesten();
bester.setMarkiert(true);
bester.setBesucht(false);
info("Markiere diesen Knoten ...");
List<Knoten> nachbarn = g.getNachbarknoten(bester,kn->!kn.isMarkiert() && !kn.isBesucht());
for(Knoten k : nachbarn) {
k.setBesucht(true);
}
info("... und setze alle bisher nicht überdeckten Nachbarn auf besucht");
knoten = g.getAlleKnoten(kn->!kn.isMarkiert() && !kn.isBesucht());
step();
infoIndentLess();
}// end of while
}
// Ende Methoden
}