Beiträge: 1.409
Themen: 133
Registriert seit: May 2007
Bewertung:
8
Hallo allerseits,
wer bei den Logic Masters 2009 dabei war, wird sich vermutlich an das dort zu lösende Kipplabyrinth erinnern. Man kann es übrigens im Trainingscamp downloaden.
Kurz zusammengefaßt: Auf einem ebenen Spielfeld mit einigen aufgeklebten, unbeweglichen Hindernissen befinden sich mehrere Blöcke, die jeweils durch Kippen parallel zu den Koordinatenachsen bewegt werden können. Ziel ist es, einen bestimmten Block in eine bestimmte Position zu befördern, wobei ein Hilfsblock mehrfach als Brücke dienen muß.
Um die Lösungen der LM-Teilnehmer zu überprüfen, hatte ich damals ein kleines Computerprogramm geschrieben, mit dem man die Lösungen sozusagen nachspielen kann. Mittlerweile habe ich einige Bugs beseitigt (die aber auf das Ergebnis 2009 keinen Einfluß hatten ) und das Programm erweitert - und jetzt stehe ich vor einem Problem, wo ich allein momentan nicht weiterkomme.
Und zwar geht es um die Frage der Stabilität. Nach jedem Zug soll überprüft werden, ob die erreichte Position physikalisch stabil ist oder ob einer der Blöcke umkippt. Bei den LM 2009 war das kein Problem, da die Blöcke alle quaderförmig waren und überstehende, also in der Luft hängende Teile ohnehin nicht erlaubt waren. Mittlerweile können die Blöcke mehr oder weniger beliebige Formen annehmen: jeder Block ist aus gleich großen Einzelwürfeln zusammengesetzt, wobei jeder Eckpunkt jedes Einzelwürfels ganzzahlige Koordinaten hat - weitere Bedingungen gibt es nicht.
Wann ein einzelner Block umkippt, weiß ich: nämlich wenn sich der Schwerpunkt außerhalb der konvexen Hülle der Auflagefläche befindet (wobei man immer senkrechte Projektionen auf die xy-Ebene betrachtet). Labile Gleichgewichte, wenn der Schwerpunkt genau auf dem Rand liegt, werden auch nicht zugelassen.
Soweit der einfache Teil.
Allerdings werden in den geplanten Labyrinthen häufig mehrere Blöcke interagieren, so daß ein Block (teilweise) auf einem anderen zu liegen kommt. Denkbar wäre auch, daß ein Block für sich allein betrachtet umkippen würde, aber an einen anderen stützenden Block angelehnt ist. Wie kann man dann möglichst allgemein herausfinden, ob eine bestimmte Lage stabil ist?
Ich hoffe, daß sich hier ein paar mathematisch/physikalisch gebildete Leute finden, die mir helfen können, einen brauchbaren Algorithmus zu finden...
Beiträge: 1.213
Themen: 13
Registriert seit: Feb 2008
Bewertung:
5
(12.01.2011, 17:21)uvo schrieb: Allerdings werden in den geplanten Labyrinthen häufig mehrere Blöcke interagieren, so daß ein Block (teilweise) auf einem anderen zu liegen kommt. Denkbar wäre auch, daß ein Block für sich allein betrachtet umkippen würde, aber an einen anderen stützenden Block angelehnt ist. Wie kann man dann möglichst allgemein herausfinden, ob eine bestimmte Lage stabil ist?
Insgesamt ist das eindeutig nicht mein Wissensschwerpunkt, aber zum Anlehnen stellt sich mir eine Frage, die vielleicht auch beim Finden einer Lösung helfen kann: Wie möchtest du die Reibung zwischen Blöcken handhaben? Schließlich kann es ja sein, dass sich ein Block nicht direkt gegen einen anderen lehnt, sondern schräg. Je nach Reibung zwischen den Blöcken würde er dann abrutschen oder eben auch nicht. Ebenso beeinflusst die Reibung zwischen den Blöcken und dem Boden das Ergebnis. Zumindest hier bin ich mir ziemlich sicher, dass ein Rutschen auf dem Boden einfach ausgeschlossen werden sollte. Wahrscheinlich wäre das auch zwischen Blöcken die bequemste Annahme, ich weiß nur nicht, ob das nicht vielleicht zu Situationen führen kann, die man dann als unrealistisch einstufen würde...
Schönen Gruß,
Calavera, wohl eher verkomplizierend als vereinfachend
Beiträge: 200
Themen: 11
Registriert seit: Jul 2007
Bewertung:
0
"Wie kann man dann möglichst allgemein herausfinden, ob eine bestimmte Lage stabil ist?" --
Unter der Annahme, dass die Reibung zwischen den Blöcken unendlich groß ist, kann man zusammenhängende Blöche wie einen einzigen großen Block behandeln. Die reibung mit der Ebene ist in diesem Fall egal.
Wenn man die Reibung berücksichtigt, dann wird es schwierig: Man muss die Kippkraft mit der Reibungskraft vergleichen (sowohl die Reibung an der Ebene als auch die Reibung zwischen den Blöcken). Das führt wohl zu einem System partieller Differenzialgleichungen (in den drei Raumrichtungen). Wenn beide Blöcke beweglich sind, dann driften sie wohl auseinander (actio = reactio). Das in Formeln zu gießen bleibt dem Studenten als Diplomarbeit überlassen ;-)
Allerdings sollte man bedenken, dass ein durchschnittlicher Rätsellöser das Ergebnis wohl nicht nachvollziehen kann. Ob eine Gruppe von Blöcken stabil ist oder nicht hat dann weniger mit Logik zu tun als mit Fingerspitzengefühl.
~ÔttÔ~
Beiträge: 14
Themen: 2
Registriert seit: Sep 2010
Bewertung:
0
Hi Uvo,
du kannst so vorgehen:
(Ich gehe dabei jetzt mal aus, dass die Konstruktion der Klötze so erfolgt, dass man die Klötze alle nacheinander aufstapelt. Man kann also die betreffende Position dadurch erreichen, dass man vom leeren Spielfeld aus einen Stein nach dem anderen hinlegt und jede Position während des Aufbaus ist selbst stabil.)
Teile jetzt alle Bauteile der betreffenden Situation in 2 Mengen, so dass die Teile jeder Menge zusammenhängend sind. Kleb alle Teile der beiden Mengen untereinander zusammen. Du hast dann zwei neue große Bauteile. Prüfe ob die beiden stabil stehen. Das machst du, indem du eines von beiden als "starr" definierst, (so wie die unbeweglichen verklebten Hindernisse auf dem Spielbrett) und das andere überprüfst so wie du beschrieben hast. Und dann umgekehrt. Wenn ein Teil nicht den Boden berührt, brauchst du es vermutlich nicht als "starr" anzunehmen.
Das musst du sehr oft wiederholen und zwar für jede Aufteilung der Bauteile in 2 Mengen, die das obige Kriterium erfüllt, nämlich, dass sich alle Teile einer Menge berühren.
Beiträge: 1.409
Themen: 133
Registriert seit: May 2007
Bewertung:
8
@Calavera: Als ich das Thema bei der WPC in Polen mal angesprochen hab, kam auch sofort das Stichwort Reibung. Ich würde gern darauf verzichten, hier zusätzliche Variablen ins Spiel zu bringen, auch wenn dann ein Stück Realismus verlorengeht...
Wenn ich die Reibungskraft als unendlich groß ansehe, können Blöcke also nur noch kippen, aber nicht mehr rutschen. Im obigen Beispiel kann die Masse des schwarzen Blocks also beliebig groß werden, die Lage bleibt stabil...
Aber das scheint mir akzeptabel zu sein.
@Otto: Man kann zusammenhängende Blöcke wie einen Block behandeln? Entweder du irrst dich oder ich verstehe dich falsch:
Für eine geeignete Masse des schwarzen Blocks werden hier Blau+Schwarz zusammen kippen, während Rot+Blau+Schwarz, als ein gemeinsamer Block betrachtet, stabil bleibt.
@Micha: Ich fürchte, so einfach ist es nicht:
Der rote Block für sich allein steht offensichtlich stabil.
Betrachtet man den roten Block als festgeklebt, so steht auch der blaue Block stabil.
Klebt man den roten und den blauen Block zusammen, so steht der gemeinsame Block ebenfalls stabil.
Trotzdem werden hier beide Blöcke kippen...
Beiträge: 200
Themen: 11
Registriert seit: Jul 2007
Bewertung:
0
@uvo: Ok, ich habe da was falsch verstanden.
1. Bild: Wenn die schwsrze Masse groß genut ist, werden das rote und das blaue Teil kippen und auseinanderdriften. Schlimmer noch: Wenn die Hebel groß genug sind, werden rot und blau auch ohne schwarzes Teil kippen. Da kommen noch Drehmomente ins Spiel, die gegen die Reibung aufgerechnet werden müssen. Unendlich große Reibung behebt das Problem, schaut in diesem Fall aber etwas unrealistisch aus.
2. Bild: Das ist einfach. Du gehst von oben nach unten vor, nimmst immer ein Teil dazu und brechnest den Schwerpunkt. Wenn dieser Außerhalb der Auflagefläche des jeweils untersten Teils liegt, dann kippt die Konstrunktion. Also: 1. Schritt: Schwarz alleine kippt nicht. 2. Schritt: Schwarz+Blau kippt, wenn der gemeinsame Schwerpunkt rechts der roten Kante ist. könnte sich gerade nicht ausgehen. 3. Schritt: Schwarz+Blau+Rot: Kippt, wenn der gemeinsame Schwerpunkt außerhalb der unteren roten Standfläche ist. Unendlich große Reibung nutzt da gar nichts, da es ja um Drehmomente und nicht um Gleiten geht.
3. Bild: Unter Vernachlässigung der Reibung (sic!) geht es hier nur um Drehmomente. Damit kannst Du die Kraft berechnen, die Blau auf rot ausübt. Diese Kraft ist äquivalent mit einem "schwarzen Würfel", der rechts auf Rot draufliegt und eine Masse hat, die genau der blauen Drehmomentkraft entspricht. Der schwerpunkt von Schwarz+Rot muss dann innerhalb der roten Standfläche liegen, sonst kippt das ganze.
(Ist vielleicht gar nicht so schlecht, sich dem Problem mit konkreten Beispielen zu nähern.)
~ÔttÔ~
Beiträge: 14
Themen: 2
Registriert seit: Sep 2010
Bewertung:
0
@uvo:
Widerspruch: Wenn wir von hoher Reibung ausgehen, dann steht die Konstellation stabil. Begründung: Wenn die Reibung unendlich ist, dann wird sich beim Kippen der Rote Klotz um seinen rechten unteren Punkt (wo er den Boden berührt) drehen (Nennen wir ihn A). Genauso würde sich der blaue Klotz um den linken unteren Punkt drehen( B). Gleichzeitig würden sich die beiden Klötze aber auch ständig berühren, nämlich an dem Punkt der beim blauen Klotz ganz links ist (und davon der unterste Punkt) ©.
Da es sich um Starrkörper handelt, sind die Abstände AB, BC und CA konstant und somit können sich die Punkte nicht bewegen.
Trotzdem hast du natürlich damit recht, dass man hier ein Kippen erwarten würde. Daher ist die Annahme mit der beliebig hohen Reibung vielleicht nicht gerechtfertigt.
Außerdem bin ich mir auch nicht sicher, ob man nicht doch ein Beispiel finden kann, bei dem die Reibung unendlich ist, und das mit meinem "Algorithmus" als stabil befunden würde, das aber trotzdem nicht stabil ist.
Ich mache mir nochmal Gedanken dazu.
Beiträge: 653
Themen: 37
Registriert seit: May 2009
Bewertung:
2
(13.01.2011, 09:39)~ÔttÔ~ schrieb: 3. Bild: Unter Vernachlässigung der Reibung (sic!) geht es hier nur um Drehmomente. Damit kannst Du die Kraft berechnen, die Blau auf rot ausübt. Diese Kraft ist äquivalent mit einem "schwarzen Würfel", der rechts auf Rot draufliegt und eine Masse hat, die genau der blauen Drehmomentkraft entspricht. Der schwerpunkt von Schwarz+Rot muss dann innerhalb der roten Standfläche liegen, sonst kippt das ganze.
Wobei du natürlich hier den "einfachen" Fall hast, dass es nur auf einem Stein aufliegt. Ansonsten müsstest du die Masse des aufliegenden Steins noch (per Hebelgesetz?) auf die anderen verteilen.
Die Idee mit den schwarzen Würfeln, die die Elemente nach und nach ersetzen klingt gut, es müssten wohl Würfel ohne Ausdehnung (also Punkte) sein, deren Gewichtskraft nicht senkrecht nach unten, sondern tangential zu dem Kreis wirkt, den der Punkt beim Kippen durchliefe.
Wenn ich nicht irre, kann es auch keine Ringbeziehungen geben. Man kann die Steine also rückwärts ersetzen, denke ich.
Beiträge: 200
Themen: 11
Registriert seit: Jul 2007
Bewertung:
0
"es müssten wohl Würfel ohne Ausdehnung (also Punkte) sein" --
Ja, das war nur bildlich gesprochen. uvo rechnet sowieso nur mit Schwerpunkten, Abständen und Standflächen; die Form der Objekte ist da egal bzw. spielt nur bei der Berechnung der Schwerpunkte eine Rolle.
Im übrigen lassen sich alle Probleme leicht lösen, indem man das Puzzle in die Schwerlosigkeit (bzw. Mikrogravitation) verschiebt. Dann gibt es keine Reibung und keine Drehmomente mehr. Da es aber immer noch Adhäsion gibt, sind alle Aufbauten stabil.
~ÔttÔ~
Beiträge: 1.409
Themen: 133
Registriert seit: May 2007
Bewertung:
8
14.01.2011, 15:49
(Dieser Beitrag wurde zuletzt bearbeitet: 14.01.2011, 15:50 von uvo.)
(13.01.2011, 13:10)Micha schrieb: @uvo:
Widerspruch: Wenn wir von hoher Reibung ausgehen, dann steht die Konstellation stabil. Begründung: Wenn die Reibung unendlich ist, dann wird sich beim Kippen der Rote Klotz um seinen rechten unteren Punkt (wo er den Boden berührt) drehen (Nennen wir ihn A). Genauso würde sich der blaue Klotz um den linken unteren Punkt drehen( B). Gleichzeitig würden sich die beiden Klötze aber auch ständig berühren, nämlich an dem Punkt der beim blauen Klotz ganz links ist (und davon der unterste Punkt) ©.
Da es sich um Starrkörper handelt, sind die Abstände AB, BC und CA konstant und somit können sich die Punkte nicht bewegen.
Trotzdem hast du natürlich damit recht, dass man hier ein Kippen erwarten würde. Daher ist die Annahme mit der beliebig hohen Reibung vielleicht nicht gerechtfertigt.
Außerdem bin ich mir auch nicht sicher, ob man nicht doch ein Beispiel finden kann, bei dem die Reibung unendlich ist, und das mit meinem "Algorithmus" als stabil befunden würde, das aber trotzdem nicht stabil ist.
Ich mache mir nochmal Gedanken dazu.
Ich bin davon noch nicht überzeugt. Reibungskraft wirkt doch nur, wenn sich zwei Flächen parallel zueinander bewegen. Wenn der rote Block jedoch nach rechts kippt, bewegt sich die Fläche, die den blauen Block berührt, nicht seitlich, sondern nach unten weg. Da hat doch Reibung überhaupt nichts zu sagen - ist doch kein Klettverschluß
Schneide doch in Gedanken mal dem roten Block den linken Arm ab, so daß er auch ohne aufliegende Masse kippen würde. Deiner Meinung nach müßten bei unendlich großer Reibung beide Blöcke stehenbleiben - ich habe Schwierigkeiten, mir das vorzustellen (experimentell prüfen kann ichs leider nicht).
Ansonsten: Unendlich große Reibung führt manchmal zu unrealistischen Situationen, die ich (vorerst?) vernachlässigen kann, weil sie in den Rätseln, die mir vorschweben, nicht auftreten. Daneben gibt es aber auch Situationen, die mir nicht gefallen:
In diesem Fall würde unendlich große Reibung ein Kippen verhindern - das will ich aber definitiv so nicht haben.
|