Ich habe ein Diagramm erstellt, das zeigt, was ich erreichen möchte.
In der Eingabesequenz sind die Knoten so nah wie möglich beieinander. Aber ich möchte, dass die weißen Knoten so nah wie möglich an ihren jeweiligen schwarzen Knoten sind. Die Kanten zwischen Knoten können verlängert werden, um diesen Fehler zu minimieren. Sie können nicht gekürzt werden. So 1 -> 2
kann zum Beispiel nicht weniger als 4 sein.
Ich habe eine mögliche Lösung aufgenommen. Die verlängerten Kanten sind beschriftet. Beachten Sie, dass durch das Verlängern einer Kante alle Knoten nach rechts verschoben werden.
Diese Achse ist durchgehend, aber ich könnte sie möglicherweise diskretisieren, wenn das hilft.
Ich denke, ein dynamischer Programmieransatz könnte hier funktionieren, bin mir aber nicht sicher - ich war nie sehr gut mit DP.
Was ist der am schnellsten laufende Algorithmus, der dies lösen kann? Kann dies als bekanntes Problem eingestuft / umrahmt werden?
quelle
Antworten:
Dies ist nur eine Erweiterung der Antwort von @ Sébastien Loisel.
Beachten Sie minimieren(xich- -yich)2 vorbehaltlich xich- -xi - 1≥cich ist gleichbedeutend mit minimieren (xich- ((yich- -cich))2 vorbehaltlich xich≥xi - 1 . Lasseneinich=yich- -cich dann ist dies genau das isotonische Regressionsproblem . Es gibt eineO ( n ) Zeitalgorithmus.
quelle
Wenn Sie die Achse diskretisieren, können Sie die dynamische Programmierung verwenden. Für jeden Ballb und machbarer Ort ℓ Berechnen Sie (innerhalb einiger vernünftiger Grenzen) den besten mittleren quadratischen Fehler für den ersten b Bälle. Dies kann in der Regel nur die gleiche Art von Informationen für Ball erfolgenb - 1 .
quelle
Dies ist ein quadratisches Programm. Sie versuchen, die Summe von zu minimieren(xich- -yich)2 vorbehaltlich xich- -xich- 1≥cich .
quelle