Kandidat streichen?

Antworten
FPSt
Beiträge: 15
Registriert: Freitag 2. Dezember 2011, 22:26

Kandidat streichen?

Beitrag von FPSt » Dienstag 1. August 2017, 19:13

Hallo Str8ts-Freunde,
ich habe in unserer Tagezeitung ein Rätsel gefunden, bei dem mein Programm einen Kandidaten nicht als
streichbar erkennt.
Kandidat.PNG
Kandidat.PNG (4.48 KiB) 1328 mal betrachtet
Nach meinem Verständnis kann die 9 in A3 ebenfalls gestrichen werden. Die 7 ist hier ja als streichbar markiert, (rote Farbe) da in A2 keine 8 oder 6 vorhanden ist. Aus dem gleichen Grund kann hier auch die 9 nicht die Lösung darstellen weil in A2 keine 8 als Kandidat enthalten ist.
Findet sich Jemand, der dies Bestätigt?

Ich habe auch Andrews Solver getestet. Dieser streicht die 9 erst sehr spät. Dann ist in A2 schon die
Lösung 9 eingetragen.

Noch eine Anmerkung zu meinem Programm: Es löst ein Rätsel, in dem es die verfügbaren Kandidaten solange nach logischen Regeln streicht, bis nur noch ein Kandidat übrigbleibt, der dann die Lösung darstellt.
(Blaue Farbe). Anders als Andrews Solver werden jedoch alle Regeln für alle Felder durchlaufen. Ein "Step"
ist dann das Entfernen der so erkannten Kandidaten. Danach erfolgt eine Neuberechnung.

Grüße aus der Pfalz
FPSt
Zuletzt geändert von FPSt am Montag 8. Januar 2018, 08:31, insgesamt 2-mal geändert.

FPSt
Beiträge: 15
Registriert: Freitag 2. Dezember 2011, 22:26

Re: Kandidat streichen?

Beitrag von FPSt » Mittwoch 2. August 2017, 06:43

Um Missverständnisse zu vermeiden: Ich meinte natürlich die 9 als Lösung für A2.
Ist im Beitrag oben schon korrigiert.
Zuletzt geändert von FPSt am Montag 8. Januar 2018, 08:31, insgesamt 1-mal geändert.

kodela
Beiträge: 16
Registriert: Donnerstag 2. Juli 2015, 23:26

Re: Kandidat streichen?

Beitrag von kodela » Donnerstag 28. Dezember 2017, 11:27

Hallo FPSt,

ja, mit der 9 in A3 kann in A23 keine Str8t gebildet werden, genau so wenig, wie mit der 7 in A3. Deshalb können die 7 und 9 aus A3 sicher entfernt werden.

Warum erkennt ein Lösungsprogramm nicht immer sofort beide Ausschlussmöglichkeiten? Das kann ganz einfach darin begründet sein, dass Programme ein Str8ts nicht nach der selben Vorgehensweise lösen, wie dies ein Mensch macht. Im konkreten Fall könnte "dein" Programm ja erst die Str8t in der Spalte 3 nach gewissen Kriterien überprüft haben, die zum Ausschluss der 7 aber nicht der 9 geführt haben. Deine Beobachtung mit dem Solver von Andrew Stuart würden solch ein Verhalten bestätigen.

Gegenfrage: Du schreibst von "Deinem" Programm. Wie darf man das verstehen? Hast Du dieses Programm selbst geschrieben, oder hast Du dir dieses Programm in irgend einer Weise besorgt. Wenn Letzteres der Fall ist, dann solltest Du vielleicht erwähnen, um welches Programm es sich handelt.

MfG, kodela

FPSt
Beiträge: 15
Registriert: Freitag 2. Dezember 2011, 22:26

Re: Kandidat streichen?

Beitrag von FPSt » Donnerstag 28. Dezember 2017, 22:40

Hallo Kodela,

schön, dass hier im Forum wieder ein Beitrag zu lesen ist. Danke für die Bestätigung meiner Vermutung. Ich habe das Programm bereits ertüchtigt, in dem gezeigten Fall die 9 zu streichen.
Daraus kannst Du auch erkennen, das das Programm von mir erstellt wurde. Leider ist Str8ts als Idee geschützt so dass ich bisher das Programm nur für mich verwendet habe und auch nicht im Netz erwähnt habe.
Ich habe versucht, die in diesem Forum beschriebenen Lösungs-Strategien und auch von SlowThinker als Präsentationen zu findenden Beschreibungen als logische Regeln in diesem Programm zu integrieren. Es sind noch nicht alle bekannten Regeln enthalten. z. B. fehlt die Seti-Regel.
Hier die Arbeitsweise des Programms in Kurzform:
  • Es werden im Programm alle Kandidaten bestimmt, die in freien Feldern möglich sind.
  • Alle Kandidaten, die durch eine logische Regel gestrichen werden können, werden rot oder rosa markiert.
  • Alle Kandidaten, die als Single in einem Feld vorhanden sind, stellen die Lösung dar und werden blau markiert.
  • Durch Maus-Klick werden alle zu streichenden Kandidaten entfernt. Die Berechung wird neu durchgeführt.
Damit füllt sich das Rätsel mit jedem Maus-Klick immer mehr mit blauen Kandidaten.
Weiterhin sind die allgemeinen Bedienungen für ein Windows-Programm möglich:
  • Eingeben eines Str8ts mit Navigation durch die Tastatur oder Maus.
  • Wechsel zwischen Edit- und Spiel-Modus.
  • Speichern und Laden.
  • Visualisieren der Kandidaten und der oben erwähnten Lösungshilfen.
  • Laden der im Netz vorhanden Str8ts.
  • Protokoll der verwendeten Lösungs-Regeln.
  • Permutationen von Str8ts.
  • Berechnen einer Signatur um Permutationen zu erkennen.
Ich habe mir auch Gedanken über die Bewertung gemacht. Aktuell ist für mich ein Kriterium die Anzahl der im Programm notwendigen Berechnungs-Schritte bis alle Kandidaten als Single vorliegen.
Es könnte auch noch ein Kriterium sein, welche Logik-Regeln zur Ermittlung der zu streichenden Kandidaten verwendet werden. Da gibt es sicher einfache Regeln die eine kleine Bewertung darstellen und komplexe Regeln, die dann höher zu bewerten sind. Auch das Kummulieren dieser Bwewertungszahlen ist sicher eine untersuchungswerte Sache.

Das Programm ist für mich eine Möglichkeit, neue Programmier-Techniken zu erproben. Das geht immer am Besten, wenn eine konkrete Aufgabenstellung vorhanden ist. Natürlich verwende ich es auch zur Analyse, wenn ein Str8ts für mich schwierig zu lösen ist. Allerdings muss ich gestehen, dass die zur Verfügung stehenden Zeitfenster nicht immer im ausreichenden Maß vorhanden sind.

Grüße vom Str8ts-Löser aus der Pfalz
FPSt
Zuletzt geändert von FPSt am Montag 8. Januar 2018, 08:34, insgesamt 1-mal geändert.

Robo
Beiträge: 22
Registriert: Montag 1. Januar 2018, 11:47

Re: Kandidat streichen?

Beitrag von Robo » Montag 1. Januar 2018, 15:21

Hallo FPSt,
bedeutet dein Name, dass du Str8ts durch Funktionale Programmierung löst?
Würde mich sehr interessieren. Mein Solver läuft unter F#.
Gruß
Martin

FPSt
Beiträge: 15
Registriert: Freitag 2. Dezember 2011, 22:26

Re: Kandidat streichen?

Beitrag von FPSt » Mittwoch 3. Januar 2018, 00:37

Hallo Michael
Ich musste etwas nachdenken, wie Du wegen meines Namens auf funktionale Programmierung kommst.
Nein, mein Programm ist klassisches Programmieren mit C#. Klassisch ist wörtlich zu nehmen.

Die UI ist mit Windows Forms realisiert. Das dargestellte Grid ist ein Forms-Control mit allem, was dazugehört. Die Logik ist ausgelagert. Damit kann z. B. die UI auch mit einem anderen Framework erstellt werden.
StratReport0.png
StratReport0.png (20.66 KiB) 765 mal betrachtet
Das Bild wurde vom Forms-Control abgespeichert. Es zeigt ein in der Wiki veröffentlichtes Rätsel. Es sind alle enthaltenen Analyse-Regeln eingeschaltet. Damit werden die streichbaren Kandidaten markiert.

FPSt

Antworten