Entfernungsmatrix programmieren



Excel-Version: 10.0 (Office XP)
nach unten

Betrifft: Entfernungsmatrix programmieren
von: Witali
Geschrieben am: 27.05.2002 - 09:54:51

Können Sie mir helfen, Entfernungsmatrix in Excel (VBA) zu programmieren.
Zwei quadratische Matrizen C = (Cij) und B = (Bij) werden verknüpft und
entsteht Matrix A = (Aij) mit den Elementen:

Aij = min{Ci1+B1j; Ci2+B2j; …; Cin+Bnj}

Ich kann leider nicht diesen Algorithmus in VBA programmieren.
Ich möchte gern ein Makro haben, so dass ich das für Matrizen mit
verschiedenen Dimensionen anwenden kann.

Witali



nach oben   nach unten

Re: Entfernungsmatrix programmieren
von: Hans W. Hofmann
Geschrieben am: 27.05.2002 - 18:00:26

Hallo Witali,

das könnte etwa so aussehen:
Sub mMin()
Dim i As Integer, j As Integer, k As Integer, s As Single
Set A = Sheets(3).Range("A1:Z26")
Set b = Sheets(2).Range("A1:Z26")
Set C = Sheets(1).Range("A1:Z26")
For i = 1 To 26
For j = 1 To 26
s = 99999999
For k = 1 To 26
If A(i, k) + b(k, j) < s Then s = A(i, k) + b(k, j)
Next
C(i, j) = s
Next
Next
End Sub
Verrätst Du mir im Gehenzug etwas zu dem Sachproblem, das dahinter steht?

Gruß HW

nach oben   nach unten

Re: Entfernungsmatrix programmieren
von: Witali
Geschrieben am: 27.05.2002 - 20:43:52

Vielen Dank für Ihre Hilfe.

Es geht darum, dass aus der Bewertungsmatrix mit Hilfe einer speziellen Matrixoperation
(Aij = min{Ci1+B1j; Ci2+B2j; …; Cin+Bnj}) eine Entfernungsmatrix berechnet wird. Es wird so lange multipliziert, bis eine Matrix mit kürzester Entfernung für jeden Knoten entsteht.
Es wird nur scheitern, wenn die Bewertungsmatrix Zykel negativer Länge hat.

Aus Ihrer Lösung kann man erkennen, dass es sich nur um eine bestimmte Dimension handelt. Kann man es so programmieren, dass die Dimension vom Benutzer zu variieren ist?

Im voraus bedanke ich mich für Ihre Mühe.

Witali


nach oben   nach unten

Re: Entfernungsmatrix programmieren
von: Hans W. Hofmann
Geschrieben am: 28.05.2002 - 08:26:33

Hat Deine Aufgabe etwas mit dem Traveling Salesmann Problem zu tun?
Die Anpassung auf beliebige Dimmensionen wirst Du schon selber machen müssen, da Du zur Datenstruktur nix verlauten lässt. Außerdem will ich es mir mit HWH nicht verderben.

Gruß HW


nach oben   nach unten

Re: Entfernungsmatrix programmieren
von: Witali
Geschrieben am: 28.05.2002 - 21:51:32

Hallo!

Es hat nicht mit dem Traveling Salesmann Problem zu tun. Ich mache das im Rahmen eines Projektes zur Graphentheorie in der FH.

Noch mal danke für Ihre Hilfe.

Witali


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Entfernungsmatrix programmieren"