Betrachten Sie diese Frage in Bezug auf die Graphentheorie: Sei G ein kompletter (jeder Knoten ist mit allen anderen Knoten verbunden) nicht gerichteter Graph der Größe N x N . Zwei "Verkäufer" reisen auf diese Weise: Der erste besucht immer den nächsten nicht besuchten Eckpunkt, der zweite den weitesten, bis beide alle Eckpunkte besucht haben. Wir müssen eine Matrix von Entfernungen und die Startpunkte für die zwei Verkäufer (sie können unterschiedlich sein) so generieren, dass:
Welche effizienten Algorithmen können hilfreich sein, um mir zu helfen? Ich kann nur an Backtracking denken, aber ich sehe keine Möglichkeit, die Arbeit zu reduzieren, die durch das Programm gemacht werden muss.
Geometrie ist hilfreich.
Die Entfernung von Punkten auf einem Kreis scheint so zu sein, als würde es funktionieren. Scheint so, als könntest du D
anpassen, indem du den Kreisradius größer oder kleiner machst.
Alternativ könnte auch wirklich jede beliebige 2D-Form verwendet werden, bei der die Abstände alle unterschiedlich sind. In diesem Fall sollten Sie die Form nach oben oder unten skalieren, um die korrekte D
zu erhalten.
Idealerweise müssten Sie dann nur eine Formel berechnen, um die Beziehung zwischen D
und dem Skalierungsfaktor zu bestimmen, worüber ich mir nicht sicher bin. Wenn nichts anderes, könnten Sie auch nur die binäre Suche oder die Interpolationssuche oder etwas verwenden, um nach dem Skalierungsfaktor zu suchen, um die erforderliche D
zu erhalten, aber das ist eine langsamere Methode.
Tags und Links algorithm optimization computer-science graph