abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Algorithmus gesucht für Supermarkt-Bonus-Zahlungen (z.B. VISA)

dg2210
Legende
6.954 Beiträge

Moin,

 

ich bin auf der Suche nach einem Smartphone-geeignetem Algorithmus, der die Teilnahme an zwei häufigen Bonus-Aktionen (z.B. VISA) ermöglicht.

 

Smartphone-geeignet bedeutet, daß er auf einem älteren Gerät mit einer "handvoll MB RAM" und ein paar dutzend MB an Plattenplatz auskommen muß und innerhalb einiger Sekunden terminieren soll.

 

Das Problem: ein Wochenend-Familieneinkauf umfasst n Artikel (typischerweise n < 1000) mit Einzelpreisen p1, p2 ... pn, wobei die p auch negativ sein können (z.B. Pfandbons).

 

Gesucht: eine Aufteilung des Einkaufs in möglichst wenige "Körbe", so daß der Bonus an der Kasse maximiert wird. Konkret: der Algorithmus soll mir sagen, welche Artikel ich in welcher Reihefolge auf das Kassenband legen muß und wann der Kassiervorgang stattfinden soll, wobei als Nebenbedingung der Einsatz der negativen Preise minimiert werden soll.

 

Das soll für die zwei typischen Aktionen erfolgen:

Typ 1: Maximalumsatz 25 EUR, Bonus 2% vom Umsatz ( = aktuelle VISA-Aktion)

Typ 2: Aufrunden zum nächsten vollen EUR (= VISA-Aktion im Herbst 2021). Unabhängig von der Gesamtsumme gibt es die Differenz zum nächsten vollen EUR als Bonus. Beispiel: Einkauf von 12,88 gibt einen Bonus von 13 EUR - 12,88 EUR = 0,12 EUR.

 

Beispiel:

Ich habe 5 Artikel zu 8, 10, 12, 16 und 26 EUR und einen Pfandbon in Höhe von 1,50 EUR.

Bei Aktionen vom Typ 1 soll mir der Algorithmus sagen, drei Körbe zu machen und diese getrennt abzurechnen: (8, 16), (10,12),(26, -1,50)

 

 

Die Schwierigkeit: das Problem hat sehr große Ähnlichkeit mit dem Rucksack-Problem, welches ja leider NP-vollständig ist...Der offensichtliche Ansatz, einfach alle Permutationen durchzuprobieren, ist bei mehr als 50 Artikeln auch nicht zielführend. Die Triviallösung (jeden Artikel einzeln bezahlen) ist nervtötend und daher inakzeptabel.

 

Ich weiß, dass vor einigen Jahren eine ähnliche Aufgabe bei einem Informatik-Wettbewerb (entweder Informatik-Olympiade oder Bundeswettbewerb) gestellt wurde und dies mit einem Graph-Algorithmus gelöst werden konnte. Ich habe die Unterlagen nicht mehr und kann sie auch online nicht mehr finden.

 

Hat einer von Euch eine Idee?

 

Das Problem vom Typ 2 (aufrunden) lässt sich auf das Problem 1 reduzieren, wenn man statt der Einzelpreise die Differenz zum nächsten EUR nimmt und diese maximiert.

 

4 ANTWORTEN

CurtisNewton
Legende
3.862 Beiträge

Bevor man versucht die optimale Lösung zu finden kann man auch zunächst mal versuchen eine näherungsweise Lösung zu finden die nur "gut" ist.

Beispiel für Typ 1:

 

In einer Schleife 

- Teuersten Artikel <= 25 EUR nehmen

- Schauen ob es einen weiteren oder mehrere Artikel gibt mit denen man zusammen unter 25 bleibt

 

Auf die Weise findest Du in zwei Iterationen  die Pärchen 16-8 und 12-10

Sinngemäß das gleiche dann für Artikel > 25 EUR und Pfandbons.

Damit findest Du eine gute Lösung aber unter Umständen nicht die Beste.

 

 

--------------------
"Die Zukunft hat viele Namen: Für Schwache ist sie das Unerreichbare, für die Furchtsamen das Unbekannte, für die Mutigen die Chance." - Victor Hugo

__dpk
Mentor ★
1.152 Beiträge

@dg2210 

 

Sag mir bitte Bescheid wann und wo Du die Ware nach diesem Algorithmus aus dem Einkaufswagen auf das Kassenband legst, damit ich sicherstellen kann, dass ich nicht in der Warteschlange hinter Dir stehe…  😉

Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein.
- Albert Einstein -

JRK
Experte ★
195 Beiträge

Nervtötend sind vor allem Menschen, die alle anderen an der Kasse warten lassen, nur weil Sie noch ein Paar Cent absahnen wollen.

ehemaliger Nutzer
ohne Rang
0 Beiträge

@JRK  schrieb:

Nervtötend sind vor allem Menschen, die alle anderen an der Kasse warten lassen, nur weil Sie noch ein Paar Cent absahnen wollen.


Hmmm, ganz so schlimm finde ich das nicht. In den 30 Sekunden, die man eventuell länger wartet, wird man ja die Welt nicht wirklich verändern. Mich nervt es immer extrem, wenn mir die Leute an der Kasse so extrem auf die Pelle rücken. Wir haben immer noch Pandemie und 1,50 Meter Abstand ist jetzt nicht so schwer. Und es geht auch nicht schneller, nur weil man 30 cm neben mir steht, während ich mein Portemonnaie einpacke.

 

Grüße aus dem Supermarkt

Sonni

Kurz zustimmen zu Cookies und vergleichbaren Webtechnologien
Um Ihnen insbesondere ein optimales Website-Erlebnis zu bieten, werden mit Ihrer Einwilligung Cookies und Webtechnologien zu Funktions-, Statistik-, Komfort- und Marketingzwecken sowie zur Darstellung personalisierter Inhalte verwendet. Im Einzelnen sind dies (Details unter nachfolgenden Links):

Adobe Analytics: Reichweitenmessung zur Verbesserung des Nutzungserlebnisses der Website sowie Optimierung der Marketingkampagnen.

Adform: Aussteuerung und Optimierung von Werbemitteln, die durch Kunden von Adform geschaltet werden.

Adition: Aussteuerung und Optimierung von Werbemitteln, die durch Kunden von Adition geschaltet werden.

comdirect-Surfertracking: Optimierung und Aussteuerung nutzerbezogener Werbung, die von comdirect auf Drittseiten geschaltet wird

Community Umfrage: Aussteuerung von Umfragen für Besucher der comdirect community.

DoubleClick Floodlight: Analyse des Nutzerverhaltens zur Optimierung des Nutzungserlebnisses.

Meta: Nachverfolgung von Verhalten nach Klick auf Meta-Werbeanzeigen und Personalisierung von Meta-Werbung.

Google Ads: Nachverfolgung von Verhalten nach Klick auf Google-Werbeanzeigen und Personalisierung von Google-Werbung.

Personalisierte Angebote: Aussteuerung und Optimierung von personalisierten Werbeflächen im persönlichen Bereich.

Smartadverser: Aussteuerung und Optimierung von Werbemitteln, die durch Kunden von Smartadverser geschaltet werden.

Wenn Sie mindestens 16 Jahre alt sind, können Sie durch Klicken auf „Alle akzeptieren“ bestätigen, dass wir diese Webtechnologien verwenden dürfen. Anderenfalls klicken Sie auf „Alle verweigern“. Durch Klicken auf „Einzeln einstellen“ können Sie jederzeit Ihre Einwilligung widerrufen oder Ihre Einwilligungseinstellungen anpassen.

Hier finden Sie weitere Informationen zum Datenschutz und unser Impressum.