Steine Sortieren oxoxoxox -> xxxxoooo Rätsel ist gelöst

Wenn ihr Hilfe beim Lösen eines Rätsels braucht, dann seid ihr hier richtig.

Steine Sortieren oxoxoxox -> xxxxoooo

Beitragvon MichaLLL » Sonntag 2. September 2018, 16:31

Neulich beim Lesen vom Gardner entdeckte ich einen Abschnitt über das Sortieren von zwei unterschiedlichen Objekten/Steinen. Sie sind in einer Reihe angeodnet. Jeweils zwei nebeneinanderliegende Steine sind ein Paar und dürfen (ohne die Reihenfolge zu verändern) an eine andere freie Stelle der Reihe (auch rechts und links mit beliebig vielen Leerstellen) abgelegt werden. Für drei Paare ist das eine Lösung: (Unterstriche aus Formatgründen)

____oxoxox
__xoo__xox
__xoooxx
xxxooo

Gardner behauptet nun, dass man für n Paare (hier also 3) mindestens n Züge braucht. Ebenso spricht er von einem Algorithmus für Lösungen für n größer als 3.

Ich habe für 3 Paare bislang zwei Lösungen mit drei Zügen gefunden.

Wer hat Lösungen für n = 4 mit 4 Zügen? Und hat sich ggf. schon einmal mit dem Algorithmus solcher Sortierungen beschäftigt?
MichaLLL
Grünschnabel
Grünschnabel
 
MitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahre
 
Beiträge: 22
Themen: 7
Registriert: Sonntag 2. September 2018, 16:11
Geschlecht: männlich

Re: Steine Sortieren oxoxoxox -> xxxxoooo

Beitragvon MichaLLL » Donnerstag 6. September 2018, 17:29

Vielleicht hat ja jemand auch Lust ein paar Konzepte für ein Programm zu diskutieren, das automatisch für gegebene n alle möglichen Lösungen ermittelt.
MichaLLL
Grünschnabel
Grünschnabel
 
MitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahre
 
Beiträge: 22
Themen: 7
Registriert: Sonntag 2. September 2018, 16:11
Geschlecht: männlich

Re: Steine Sortieren oxoxoxox -> xxxxoooo

Beitragvon MadMac » Donnerstag 13. September 2018, 14:06

Klingt interessant. Gibt es noch weitere Regeln?

z.B.: Ausgangslage ist immer oxoxox...? Oder eine zufällige Mischung?

Das Ergebnis darf Lücken haben oder nicht?

Gruß,
MadMac
MadMac
Denksportler
Denksportler
 
MitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahre
 
Beiträge: 180
Themen: 6
Registriert: Freitag 8. Juli 2016, 14:09
Geschlecht: männlich

Re: Steine Sortieren oxoxoxox -> xxxxoooo

Beitragvon Friedel » Donnerstag 13. September 2018, 19:27

Für n=2 gibt es imho keine Lösung und schon gar keine mit 2 Zügen.
Mehr ->
Ich habe keine Signatur.
Benutzeravatar
Friedel
Schlaumeier
Schlaumeier
 
MitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahre
 
Beiträge: 1947
Themen: 56
Registriert: Mittwoch 7. Juli 2010, 07:50
Wohnort: Pfalz
Geschlecht: männlich

Re: Steine Sortieren oxoxoxox -> xxxxoooo

Beitragvon MichaLLL » Dienstag 25. September 2018, 11:45

Friedel hat geschrieben:Für n=2 gibt es imho keine Lösung und schon gar keine mit 2 Zügen.


Deswegen redet Gardner auch nur von einem Algorithmus für n größer 3.

MadMac hat geschrieben:Klingt interessant. Gibt es noch weitere Regeln?

z.B.: Ausgangslage ist immer oxoxox...? Oder eine zufällige Mischung?

Das Ergebnis darf Lücken haben oder nicht?


Nein, die Lösung darf keine Lücken haben.
Ja, man muss hier mit oxoxox... starten.

Man kann diese Art natürlich (beliebig) abändern, zum Beispiel mit oxyoxyoxy -> oooxxxyyy oder tatsächlich eine beliebige Reihenfolge annehmen, dann jedoch gilt Gardners Algorithmus wahrscheinlich nicht mehr. Oder man dreht die Reihenfolge um: oxoxox -> oooxxx. Was letzteres für die Anzahl der Züge bedeutet, weiß ich nicht, wäre aber symmetrisch zum start mit xoxoxo wahrscheinlich.
MichaLLL
Grünschnabel
Grünschnabel
 
MitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahre
 
Beiträge: 22
Themen: 7
Registriert: Sonntag 2. September 2018, 16:11
Geschlecht: männlich

Re: Steine Sortieren oxoxoxox -> xxxxoooo

Beitragvon MadMac » Freitag 12. Oktober 2018, 08:34

Hallo zusammen,

ich habe

a) ein kleines Programm geschrieben, dass wahlweise eine oder jede Lösung für ein wählbares n findet.
b) ein paar theoretische Überlegungen angestellt, und auch ein paar starke Vermutungen aufgestellt, und das Programm damit zu füttern. Problem: Ohne diese ist der Brute-Force Aufwand schon für relativ kleine n so hoch, dass das auf einem normalen Rechner in Octave (Matlab-Klon) schon ziemlich langsam wird.
c) aus den Ergebnissen ein paar Vermutungen abgeleitet, die im Eigenversuch (händische Lösung für 10 Pärchen) dann auch gleich funktioniert haben:

Mehr ->
Vermutung 1: Für jedes n >= 4 findet sich eine Lösung, bei der die Finale Stellung nur um zwei Gläser nach links oder nach rechts verschoben ist.
(Beweisbar wäre: es gibt für alle n eine maximal mögliche Verschiebung für *jede* schnellste Lösung).
Die Richtung der Verschiebung kann man sich zu Beginn auswählen. Ebenso kann man dann von Beginn an jedes Glas klassifizieren, ob es bereits an einer "richtigen" Position steht oder an einer falschen. z.B.:
Aus
oxoxoxoxoxox   wird
__frfrfrrfrf (f = falsche Position, r = richtige Position)
__xxxxxxoooooo


Vermutung 2: Es gibt für jedes n >= 4 eine Lösung, die sich in zwei prinzipielle Schritte aufteilt:
Schritt 1: xo oder ox-Pärchen so verschieben, dass jeweils ein o oder ein x von einer falschen Position an eine richtige Position wechselt, UND ein (an der neuen Position) einzelnes benachbartes x oder o mit dem korrespondierenden verschobenen x oder o zu einem Pärchen (und zwar nur einem Pärchen, keine größeren Gruppen) wird.
Beispiel:
oxoxoxoxoxox
__frfrfrrfrf
o__xoxoxoxoXXO (XX = falsches Pärchen, O = o von falsch an richtig verschoben)
___rfrfrrfrffr
OOXx__oxoxoxxo (OO = falsches Pärchen, X = x von falsch an richtig verschoben)
__rr__frrfrffr
ooxxXOOxo__xxo (OO = falsches Pärchen, X = x von falsch an richtig verschoben)
__rrrffrr__ffr
...
__xxxxxxoooooo (Ziel)

Schritt 2: Die Entstandenen "falschen" Pärchen, die sich nun die Parität halten sollten (da habe ich möglicherweise noch eine Definitionslücke in meinem "Algorithmus - wie stelle ich das sicher?), werden getauscht. Dabei kommt das "in der Luft hängende" Pärchen ganz links zum Schluss dran.


Gruß,
MadMac
MadMac
Denksportler
Denksportler
 
MitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahre
 
Beiträge: 180
Themen: 6
Registriert: Freitag 8. Juli 2016, 14:09
Geschlecht: männlich

Re: Steine Sortieren oxoxoxox -> xxxxoooo

Beitragvon MadMac » Freitag 12. Oktober 2018, 09:35

Ach ja ... und ein Teil fehlt auch noch in meinem Lösungsansatz: Es bleiben gewisse Freiheitsgrade, einige (sehr wenige) Züge darf man sich erlauben, die nicht ganz optimal sind. Was das für Folgen haben könnte, habe ich noch nicht untersucht.
MadMac
Denksportler
Denksportler
 
MitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahre
 
Beiträge: 180
Themen: 6
Registriert: Freitag 8. Juli 2016, 14:09
Geschlecht: männlich

Re: Steine Sortieren oxoxoxox -> xxxxoooo

Beitragvon MadMac » Freitag 12. Oktober 2018, 14:28

So, und einen Teil-Algorithmus habe ich nun für ...

Mehr ->
alle n = 4*m+2 (n Steinepaare = 2*n Steine)

Ich gruppiere
n+2 Steine = linke Seite
n-2 Steine = rechte Seite

und teile beide Seiten in Viererblöcke ein, die ich wiederum mit einem Verschiebe-Schema für meinen Schritt 1 (vorherige Antworten) versehe.

linke Seite:
(n-2)/4 Blöcke
(o paaren, x verschieben, o verschieben, x bleibt)
und ein Block
(o verschieben, x verschieben, o paaren, x bleibt)

rechte Seite:
(n-6)/4 Blöcke
(o bleibt, x paaren, o verschieben, x verschieben)
und ein Block
(o bleibt, x verschieben, o verschieben, x paaren)

oder schematisch übereinander:
linke Seite      rechte Seite
__xxxxxxxxxxxxxx oooooooooooooo (Ziel)
oxoxoxoxoxoxoxox oxoxoxoxoxox (Ausgangslage)
pvvbpvvbpvvbvvpb bpvvbpvvbvvp (bleibt-paaren-verschieben-Schema Schritt 1)


Im ersten Schritt nehme ich eines der xo (verschieben) Pärchen und lege es ganz rechts an. In Folge wechsele ich stets ox und xo (verschieben) ab, bis alle zu verschiebenden Pärchen bewegt wurden. Das geschieht genau n/2 mal (7mal im Beispiel mit n = 14). Zuletzt muss ein Pärchen aus der rechten Hälfte bewegt werden, das letzte xo ganz rechts werde ich mir immer dafür aufheben können.

Gleichzeitig kann man abzählen, dass ich nun links (n+2)/4 und rechts (n-2)/4 Pärchen gebildet habe, die an der falschen Stelle liegen, während alle anderen Steine bereits an der richtigen Stelle liegen. Da die Lücke rechts ist, kann ich nun schön brav immer ein oo von links nach rechts und dann ein xx von rechts nach links bewegen, bis das letzte oo von ganz links dran ist.

Für andere n habe ich noch keine Betrachtung gemacht, das sollte meiner Erwartung nach annähernd äquivalent gehen. Möglicherweise reichen kleine Variationen durch Alternieren der Einteilungen in "paaren" oder "verschieben" innerhalb eines Viererblocks.


Gruß,
MadMac
MadMac
Denksportler
Denksportler
 
MitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahre
 
Beiträge: 180
Themen: 6
Registriert: Freitag 8. Juli 2016, 14:09
Geschlecht: männlich

Re: Steine Sortieren oxoxoxox -> xxxxoooo

Beitragvon MadMac » Freitag 12. Oktober 2018, 15:38

und für ...
Mehr ->
n=4*m

n/2 mal Schema pvvb
und
n/2 mal Schema vvbp

Nach Schritt 1 muss LINKS eine Lücke bleiben.
MadMac
Denksportler
Denksportler
 
MitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahre
 
Beiträge: 180
Themen: 6
Registriert: Freitag 8. Juli 2016, 14:09
Geschlecht: männlich

Re: Steine Sortieren oxoxoxox -> xxxxoooo

Beitragvon Otmar » Dienstag 16. Oktober 2018, 23:00

Nach einer kleinen Pause im Rätselforum, findet sich hier Neues und Interessantes, wie dieses Rätsel.

Da MadMac gespoilert hat, konnte ich mich ganz unbefangen an eine eigene Lösung dieser kurzweiligen Frage machen. Eventuell wiederhole ich MadMacs Ideen, aber dann ohne es zu wissen. Ich spoilere auch, falls noch ein anderer das Rätsel ohne Hilfe lösen möchte.

Vorüberlegung:

Mehr ->
Angenommen man hat eine Lösung zugweise aufgeschrieben, dann kann man sie als Vorwärtslösung, hier von unten nach oben oder Rückwärtslösung, hier von oben nach unten, lesen:

ooooooooooxxxxxxxxxx
ooooo oooxxxxxxxxxx oo
oooooxxoooxxxx xxxx oo
.
.
.
xoxoxoxoxoxoxoxoxoxo

Liest man von oben nach unten und geht die Lösung rückwärts durch, dann sieht man, dass oben wahrscheinlich Paare der Form oo oder xx verschoben werden, denn andere gibt es kaum. Vergleicht man mit der Stellung ganz unten, dann wird dabei die Anzahl der mit dieser Stellung übereinstimmenden Steine normalerweise nicht verbessert. Verbesserungen, und zwar um jeweils 2 Steine, gibt es erst, wenn Paare ox oder xo, die noch nicht mit der Stellung unten übereinstimmen, um eine ungerade Feldzahl verschoben werden. Deshalb kann man versuchen in der Rückwärtslösung in der oberen Hälfte der Schritte (Hälfte +- bei ungerader Anzahl von Paaren) nur Paare der Form oo oder xx zu verschieben und in den restlichen Schritten nur Paare der Form ox oder xo.
Idealerweise reicht es, wenn es zur Lösung nur zwei Felder mehr als Steine gibt. Dann entsteht bei der Verschiebung eine Lücke, die im nächsten Zug wieder gefüllt wird. Betrachtet man die Anordnung in der Mitte (Mitte +- bei ungeradem n) der Züge genauer und schreibt Großbuchstaben für Steine die je nach Betrachtungsrichtung mit der Ausgangs -oder Endstellung übereinstimmen, dann sieht es so aus:

Betrachtung von oben bei n = 10 Steinen je Typ:

OOOOOOOOOOXXXXXXXXXX    Endstellung
OxxOxxO OXooooXXXXXoo Mittelstellung

In der Mittelstellung gibt es nur Paare, die in der Vorwärtslösung verschoben werden müssen, in Kleinbuchstaben der Form xx oder oo. Das Paar oo am rechten Rand in der Mittelstellung entsteht bei der Rückwärtslösung beim ersten Zug. Bei weiteren Zügen der Rückwärtslösung entstehen abwechselnd Paare xx und oo.
Es gibt also gleich viele Paare xx und oo oder der Paartyp am Rand kommt einmal häufiger vor.

Berachtung von unten:

XxoO  XxoOXOoxoxXOXOxo  Mittelstellung
XOXOXOXOXOXOXOXOXOXO Ausgangstellung


In der Mittelstellung gibt es für die Rückwärtslösung nur zu verschiebende Paare in Kleinbuchstaben der Form xo oder ox. Das Paar xo am rechten Rand in der Mittelstellung entsteht bei der Vorwärtslösung beim ersten Zug. Bei weiteren Zügen der Vorwärtslösung entstehen abwechselnd Paare ox und xo. Es gibt also gleich viele Paare ox und xo oder der Paartyp am Rand kommt einmal häufiger vor.

Natürlich muss für eine Lösung des Problems die Mittelstellung ungeachtet der Groß -und Kleinschreibung bei beiden Betrachtungen gleich sein. Das ist sie bei den beiden oberen Betrachtungen noch nicht. Daraus folgt, dass Ausgangs und Endstellung zwei Felder verschoben sind, da das eine Randpaar aus gleichen und das andere aus ungleichen Buchstaben besteht und jedes an einem anderen der beiden Ränder stehen muss. Die Anzahl falscher Paare (die aus Kleinbuchstaben), summiert über beide Betrachtungsrichtungen muss n sein, denn jedes Paar aus Kleinbuchstaben der Mittelstellung wurde oder wird genau einmal verschoben und braucht einen Zug.

Lösung:
Mehr ->
Hier die ersten vier Lösungen für n = 4, 5, 6 und 7 gleichartige Steine, die man mit der Vorüberlegung leicht findet. Für jede Lösung habe ich die Ausgangsstellung unten, die Mittelstellung in den zwei Schreibweisen für die Betrachtung von unten und oben und die Zielstellung ganz oben aufgeschrieben. Von der Mittelstellung kommt man einfach zur Ausgangsstellung (zweite Hälfte der Rückwärtslösung) und einfach zur Endstellung (zweite Hälfte der Vorwärtslösung) indem man immer passende Paare in Kleinbuchstaben in die Lücke schiebt. Dabei ist egal, welches Paar man nimmt, falls es mehrere passende Paare gibt, nur das Randpaar bleibt bis zum jeweils letzten Zug liegen.

OOOOXXXX  
OxxO XXoo
oxXO XxoO
XOXOXOXO

OOOOOXXXXX
OxxOOXX Xoo
oxXOoxX xoO
XOXOXOXOXO

OOOOOOXXXXXX
Oxx OXooXXXoo
oxX OXOoxXxoO
XOXOXOXOXOXO

OOOOOOOXXXXXXX
OxxO OXXXooXXoo
oxXO oxXxoOXxoO
XOXOXOXOXOXOXO


Nun kann man in jede Mittelstellung zwei Sequenzen aus je 4 Steinen der Form A bzw. B jeweils an geeigneten Stellen einfügen. Eine Stelle ist geeignet, wenn beim Einfügen kein kleingeschriebenes Paar der Form xx, oo, xo oder ox getrennt wird und auch die Lücke in der Mittelstellung nicht getrennt wird. Jede Sequenz muss so eingefügt werden, dass sie vollständig in der um 8 Steine erweiterten Ausgangs- und Endstellung liegt und über einem X der erweiterten Ausgansstellung beginnt. Sequenz A steht unter OOOO der neuen Zielstellung und Sequenz B unter XXXX der neuen Zielstellung.

A = xxOO Betrachtung von oben
XxoO Betrachtung von unten

B = XooX Betrachtung von oben
XOox Betrachtung von unten


Wenn das geht, kommt bei jedem Einfügen genau ein zu verschiebendes Paar xx, oo (Betrachtung von oben) und xo, ox (Betrachtung von unten) hinzu. Also auch 4 weitere mögliche Züge.

Nun fehlen noch Einfügestellen zu den ersten 4 Lösungen. Die sind unten mit A und B bezeichnet. Alle Felder mit bzw. ohne Steinen unter und rechts von A werden um 4 Felder nach rechts geschoben und dann wird Sequenz A in die Mittelstellung eingefügt. B analog.
.
A B
OOOOXXXX
OxxO XXoo
oxXO XxoO
XOXOXOXO

A B
OOOOOXXXXX
OxxOOXX Xoo
oxXOoxX xoO
XOXOXOXOXO

A B
OOOOOOXXXXXX
Oxx OXooXXXoo
oxX OXOoxXxoO
XOXOXOXOXOXO

A B
OOOOOOOXXXXXXX
OxxO OXXXooXXoo
oxXO oxXxoOXxoO
XOXOXOXOXOXOXO


Natürlich kann man auch Vielfache von 4 Steinen (n' = n + 4 * k) einfügen indem man sowohl Sequenz A als auch Sequenz B k fach wiederholt und an den genannten Stellen einfügt. Damit haben wir einen Algorithmus zur Lösung für alle n >= 4.
Liebe Grüße, Otmar.
Benutzeravatar
Otmar
Schlaumeier
Schlaumeier
 
MitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahreMitgliedsjahre
 
Beiträge: 1618
Themen: 120
Registriert: Dienstag 10. Mai 2011, 22:10
Wohnort: München
Geschlecht: männlich

Nächste

Zurück zu Lösung gesucht

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste