Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Friedrichroda /
Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.

Günstigste Kombination finden - Mathematisch/Exceltechnisches Thema
#1
Hallo Gemeinde,

hier eine Lösungsaufgabe, zu der ich bisher (auch nach langen probieren) keinen Weg gefunden habe.

Aufgabenstellung: 8 Anbieter haben ein Preis abgegeben für insgesamt 8 Pakete. Die Vergabe ist so, dass jeder Anbieter nur ein Paket liefern soll. Es soll nun die günstigste Kombination gefunden werden. (Anhang)

Hört sich eigentlich einfach an.Rein mathematisch gibt es also 8! (8 Fakultät=40320) Kombinationen.

Habt Ihr eine Idee, wie man hier Exceltechnisch für die Summe das Minimum findet?

Bin auf Eure Lösungsansätze gespannt!Schöne Grüße,
Sebastian


Angehängte Dateien
.xlsx   Ideale Paketvergabe.xlsx (Größe: 9,82 KB / Downloads: 13)
to top
#2
Antwort gelöscht
Gruß


Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
to top
#3
Hallo,

hier mal eine Variante mit Bruteforce. Geht so - wegen des 'Ziffernstrings' - nur bis N = 9.

Reicht Dir das?

cu, Bernd
--
Code:
Option Explicit

Sub BruteForce()
   Dim t As Single
  
   t = Timer
  
   Const N As Integer = 8
   Dim arData As Variant
   Dim strSource As String, strPerm As String, strResult As String
   Dim i As Long, j As Integer
   Dim dblSumAct As Double, dblSumMin As Double
  
   strSource = "12345678"
   arData = Range("C3").Resize(N, N)
   dblSumMin = 1.79E+308
   For i = 0 To Application.Fact(N) - 1
      strPerm = permutation(i, strSource)
      dblSumAct = 0
      For j = 1 To N
         dblSumAct = dblSumAct + arData(j, CInt(Mid(strPerm, j, 1)))
      Next
      If dblSumAct < dblSumMin Then
         dblSumMin = dblSumAct
         strResult = strPerm
      End If
   Next
   t = Timer - t
  
   Debug.Print "Indizes der minimalen Summe: "; strResult
   Debug.Print "Minimale Summe:"; dblSumMin
   Debug.Print "Benötigte Zeit in Sekunden:"; t
End Sub

' http://en.wikipedia.org/wiki/Permutation

' Unordered generation
Function permutation(ByVal k As Long, ByVal s As String) As String
   Dim j As Long, i As Long, x As String
  
   For j = 2 To Len(s)
      i = (k Mod j) + 1
      x = Mid(s, j, 1)
      Mid(s, j, 1) = Mid(s, i, 1)
      Mid(s, i, 1) = x
      k = Int(k / j)
   Next
   permutation = s
End Function
[-] Folgende(r) 1 Benutzer sagt Danke an bst für diesen Beitrag:
Henkelzupfer
to top
#4
Hallo Bernd,

klasse, vielen Dank!!!
Hatte für die Kombination noch ein wenig gebraucht bis ich rausgefunden hatte, welche Zellen addiert werden. Jetzt habs auch ich verstanden.

Also, vielen Dank nocheinmal!

Schöne Grüße,
Sebastian
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Kombination aus Rechnen mit Zeitangaben + bedingter Formatierung 1Selection 4 187 19.02.2017, 22:45
Letzter Beitrag: 1Selection
  Teilergebnis in kombination mit sverweis Loris 2 115 17.02.2017, 22:37
Letzter Beitrag: schauan
  kombination - Wenn und Sverweis SebGDM 7 279 18.01.2017, 16:43
Letzter Beitrag: BoskoBiati
Question Formel Kombination? Holzmodem 4 176 13.01.2017, 16:25
Letzter Beitrag: Holzmodem
  Thema VBA: Bedingtes Ausblenden von Zeilen Nordlicht85 6 208 10.01.2017, 20:00
Letzter Beitrag: Ego
  WENN UND / ODER Kombination irgendjemand 8 583 30.06.2016, 14:44
Letzter Beitrag: irgendjemand
  Cells.Replace Problem bei Kombination ?! Wulfi 4 369 22.05.2016, 18:06
Letzter Beitrag: Kuwer
  Zählen-Funktion in Kombination mit Wenn-Funktion? veve 22 1.754 09.05.2016, 08:02
Letzter Beitrag: steve1da
  Kombination von Zelleninhalten ohne Wiederholungen Autofreak 8 555 02.05.2016, 10:01
Letzter Beitrag: Autofreak
  Zwei Fenster - Das altbekannte Thema.. ScheerMyOpinion 3 770 26.12.2015, 07:22
Letzter Beitrag: schauan

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste