2017-12-27 2 views
0

ich auf einem Planungs den Solver renne und zwischen den verschiedenen Antwortgruppen i bekommen, was ich denke, ist eine Warnung (da es nicht die Ausführung nicht termiate) sagen folgendes:Clingo - Progression Fehler/Warnung

Progression : [2;8] (Error: 3) 
Progression : [3;8] (Error: 1.66667) 
Progression : [4;8] (Error: 1) 
Progression : [5;8] (Error: 0.6) 
Progression : [6;8] (Error: 0.333333) 
Progression : [7;8] (Error: 0.142857) 

Ich kann keinen Hinweis auf diese Warnungen finden, also hoffe ich, dass jemand weiß, was sie meinen.

Antwort

0

Diese Linien wertvolle Informationen über den aktuellen Zustand der Optimierung geben: in Ihrem Beispiel, der Löser hat eine Lösung der Kosten 8 gefunden und noch nicht bewiesen, dass die Lösung optimal ist, aber es ist auf dem Weg, es zu beweisen: es hat bewiesen, dass die Kosten mindestens 2, 3, 4, ..., 7 sind. Also, wenn Sie den Löser nach dem las abbrechen Sie haben eine Garantie, dass die von Ihnen gefundene Lösung entweder optimal oder vom Optimum abweicht.

Diese Information kann Ihnen dabei helfen, die Optimalität und die Löserzeit zu verkürzen. Oft sind Sie in Anwendungen gut, wenn Sie suboptimale Ergebnisse haben, die nahe genug am Optimum liegen.

0

Eine schnelle Suche in der Verschlussquelle https://github.com/potassco/clasp/blob/master/src/clasp_output.cpp ergab, dass die Methode für diese Nachrichten verantwortlich ist.

Der Kommentar in der Basisklasse zeigt für Output::printUnsat:

//! Called on unsat - may print new info. 

Insbesondere TextOutput::printUnsat Kommentar ist

//! Prints the given lower bound and upper bounds that are known to be optimal. 
Verwandte Themen