Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Benötige eine technische Lösung: Vielleicht hat jemand eine Idee ...
- - By Frank Quisinsky Date 2017-08-14 12:25 Edited 2017-08-14 12:33
Hallo zusammen,

folgendes Problem:
Bei FEOBOS haben wir ein Ranking System, jede Position erhält ein Ranking.
Wenn FEOBOS durch ist haben wir 41.614 Stellungsanalysen von 13 Engines und können mittels Excel nach Ranking Nummer innerhalb der Excel sortieren. Da wir nach 6 Kriterien sortieren ist das viel aussagekräftiger als eine einfache Stellungsbewertung zumal die durchschnittliche Stellungsbewertung der 13 Engines zu jeder der 41.614 Positionen in die Ranking Berechnung eingeht.

Logischer Weise werden die Varianten mit höchster EVAL (die sogenannten "Bad Moves") und die mit höchster "Remis Anfälligkeit (die sogenannten "Draw Moves") hinten im Ranking auftauchen. Die ausgeglichenen Varianten, die am meisten Potential für möglichst viele spielbare Gegenzüge haben, welche wiederum auch ausgeglichen sind, stehen im Ranking vorne. Das Ranking errechnet sich aus 6 Kriterien, hatten wir vor 2 Monaten entwickelt und funktioniert sehr gut.

Das wir das Ranking System in der Excel Datei haben ist wunderschön.
Das wir für jede Stellung eine Positions-Nummer haben ist logisch und für unser System notwendig.
Besser wäre es wenn nun folgendes passiert:

Die komplette PGN später nach dem Ranking sortieren lassen.
Das heißt wir sortieren die kompletten Varianten der Eröffnungssysteme und klassifizieren diese direkt von Platz 1 bis Platz 41.614 in der PGN Datenbank selbst.

Das Ranking selbst mit der Positions-Nummer könnte ich in eine Textdatei bringen.
Für die PGN könnte ich in PGN File mit den Tools von Norm die Positions-Nummer noch hinzufügen.
Wie bekomme ich aber sortierbar die Ranking Nummer in jede Partie der PGN Datei?
Bzw. wie sortiere ich die PGN nun nach dieser Ranking-Nummer um?

Hätten wir das könnten wir mit den Daten regelrecht spielen.

Wir könnten sagen:
Nehme die ersten 35.000, 30.000, 25.000, 20.000 für die Bucherstellung.
Nehme die ersten 100, 200, 500, 1000, 2000 für einen Test-Set.
Nehme die besten 10 A00 ... 20 A00, oder A01, sonst was für einen Test-Set innerhalb des ECO Codes.

Wir hätten schier unendliche Möglichkeiten.

Die Aufgabe ist also, dass PGN nach Ranking der Excel Tabelle zu sortieren.
Noch haben wir ca. 3-4 Monate Zeit bis FEOBOS durch ist um das Problem zu lösen.

Vielleicht liest hier jemand mit einer richtig guten Idee, der sich dieser Aufgabe annehmen möchte?
Bin seit Tagen am Überlegen und irgendwie mit meinem Wissen bzw. Ideen hierzu am Ende.

Viele Grüße
Frank

Eine echte Aufgabe und Herausforderung.
Denn Testen mittels Eng-Eng wird hierdurch so spannend wie noch nie, denn die kompletten Buchvorgaben bzw. das theoretische Wissen sind klassifiziert bzw. können wir uns auf das Buch zu mehr als 99% verlassen und hätten zu jeder Variante die ausgespielt wird die Ranking-Nummer, welche für spätere Betrachtungen / Nachanalysen wichtig sein könnte.
Parent - - By Guenter Stertenbrink Date 2017-08-14 13:44
ich wuerde wahrscheinlich die cr/lf durch irgendein Zeichen ersetzen,
eine Variante pro Zeile seichern mit vorangestelltem ranking (fuehrende Nullen),
dann normal sortieren, dann wieder das Zeichen in cr/lfs zurueck
Parent - - By Frank Quisinsky Date 2017-08-15 07:05 Edited 2017-08-15 07:15
Hallo Guenter,

verstehe ich nicht.
Was ist cr/lf ?!

Wir haben eine *.pgn Datei ...

Beispiel:

Code:
[Event "FEOBOS"]
[Site "Trier"]
[Date "2017.08.12"]
[Round "1"]
[White "N.N."]
[Black "N.N."]
[Result "1/2-1/2"]
[WhiteElo "3000"]
[BlackElo "3000"]
[ECO "A00"]
[EventDate "2017.??.??"]
[PlyCount "12"]
[EventCountry "GER"]
[Source "Frank Quisinsky"]

1. Nf3 Nf6 2. e3 g6 3. b4 e6 4. a3 Bg7 5. Bb2 b6 6. Be2 Bb7 1/2-1/2


cr/lf taucht nirgends auf.
Wie bekommen wir also das Ranking in die PGN und können dann die PGN Datenbank nach Ranking sortieren?!

Einzig was ich mir vorstellen könnte wäre:
Das Tool von Norm Pollock: GamNum ...
Hiermit kann ich eine Partienummer in die *.pgn Datei setzen.

Am liebsten würde ich die Information zu "Runde" im PGN nutzen.
Aber "Runde" geht mit den meisten Datenbankprogramme nur 2-stellig und nicht bis 5-stellig.

Überhaupt schlecht, dass ich mit Datenbankprogrammen wie Chessbase nicht Zeilen sortieren kann, wie z. B. bei Excel durch Klick auf die Zeile.
Geht aber auch nicht mit SCID ... CA habe ich nicht ausprobiert.

Alles immer nur marginale Optionen und nicht wirklich leistungsstärkere Optionen.

Beispiel:
Jetzt mit GameNum von Norm ...

Code:
[Event "FEOBOS"]
[Site "Trier"]
[Date "2017.08.12"]
[Round "1"]
[White "N.N."]
[Black "N.N."]
[Result "1/2-1/2"]
[WhiteElo "3000"]
[BlackElo "3000"]
[ECO "A00"]
[EventDate "2017.??.??"]
[PlyCount "12"]
[EventCountry "GER"]
[Source "Frank Quisinsky"]

{Game 1}
1. Nf3 Nf6 2. e3 g6 3. b4 e6 4. a3 Bg7 5. Bb2 b6 6. Be2 Bb7 1/2-1/2

[Event "FEOBOS"]
[Site "Trier"]
[Date "2017.08.12"]
[Round "1"]
[White "N.N."]
[Black "N.N."]
[Result "1/2-1/2"]
[WhiteElo "3000"]
[BlackElo "3000"]
[ECO "A00"]
[EventDate "2017.??.??"]
[PlyCount "12"]
[EventCountry "GER"]
[Source "Frank Quisinsky"]

{Game 2}
1. e4 d5 2. Nc3 dxe4 3. Nxe4 Nc6 4. Bc4 e6 5. Nf3 Nf6 6. Nxf6+ Qxf6 1/2-1/2


Im Step 1 könnte man die "Game" Nummer nun durch die "Ranking" Nummer ersetzen.
Müsste dafür eine Liste im Textformat produzieren, welche folgendes macht:

Game 1   ...  23452
Wobei 23452 das Ranking von Platz 1 - 41146 ist.

Wir hätten also eine *.txt mit dieser Liste (lässt sich einfach über Excel im Textformat erstellen) und eine zweite Datei ... die *.pgn Datenbank mit der "Game" Nummer Information.
Also zwei Dateien ...

Dann müsste eine Programm diese Zahl mit der "Game" Nummer (die das Ranking darstellt) aus der *.txt mit der "Game" Nummer aus der *.pgn ersetzen.
Dann hätten wir das Ranking zu jeder Position in der PGN Datenbank.

Denke bis hier würde das noch gehen und wäre für einen Programmierer einfach.

Aber nun ...
Die Datenbank nach Game Nummer (ist ja jetzt Ranking Nummer) sortieren?
Das kann im Grunde nur Norm machen bzw. müsste er dann wieder etwas hierzu programmieren.

Ich kann mir das nur so vorstellen ...
Aber zwei Programmierer müssen aktiv werden (Norm für Step 2 und vielleicht Ferdinand für Step 1).

Das ist die einzige Idee die ich habe, leider ohne das selbst bewerkstelligen zu können.
Auch nicht mit so leistungsfähigen Tools wie Notepad++ ... geht einfach nicht bzw. habe ich keine andere Idee.

Gruß
Frank

Nochmals:
Könnten wir die PGN nach RANKING sortieren, können wir mit den Daten regelrecht spielen.
Könnten uns alles erdenkliche vom Test-Set über Bücher erstellen.
Parent - By Frank Quisinsky Date 2017-08-15 08:03
Hallo,

denke so könnte es gehen.
Habe mal Norm und Ferdinand angeschrieben und das Problem erklärt bzw. die Idee die ich hätte mal mitgeteilt.

Mal schauen ...

Gruß
Frank
Parent - - By Guenter Stertenbrink Date 2017-08-15 08:29 Edited 2017-08-15 08:37
cr=carriage return = ascii-13
lf=line feed = ascii-10
[Drucker-Sprache]

in Windows zeigt cr/lf das Ende der Zeile an , in Linux nur lf

beim normalen Sortieren werden Zeilen sortiert, daher der Plan fuer
eine Zeile pro Eintrag  fuer die schnelle Loesung

aber auch sonst scheint das Problem nicht so schwer zu programmieren

soll ich's just versuchen ? [links zu dateien]

eine pgn datei mit ca. 40000 Eintraegen ("Partien") --> ca. 10MB
eine datei mit ca. 40000  rankings , dieselbe Reihenfolge

==>

eine pgn datei  sortiert nach rankings
Parent - - By Frank Quisinsky Date 2017-08-15 11:28 Edited 2017-08-15 11:33
Hallo Günter,

verstehe ...

Ferdinand Mosca hat mir gerade geantwortet.
Er programmierte ja schön öfters Tools die ich benötigte (liegen in meinem Download Bereich).

Er schaut sich die Sache an!

Hier eine Hilfestellung für Dich, wenn Du versuchen möchtest:
http://www.amateurschach.de/download/book/feobos-test-v2.zip

Hier mal für die ersten 26.146 Dateien ... (die *.pgn und *.txt).
In die *.txt habe ich noch den ECO Code gebracht.

Die restlichen 15.486 kommen ja erst noch ... ist das FEOBOS Upd. 1 an welchen wir die letzten Tage gearbeitet haben.
Wenn FEOBOS in 4-5 Monaten durch ist sind es 41.641!

Gruß
Frank

Die *.txt schaut also wie folgt aus ...
Logischer Weise sortiert nach Ranking und damit kann ich nicht weiter arbeiten!

Code:

B63  Pos 10291  1
E11  Pos 21654  2
B40  Pos 08619  3
B02  Pos 05566  4
D69  Pos 19718  5
B90  Pos 11548  6
B16  Pos 06893  7
D87  Pos 20538  8
D58  Pos 19446  9
B09  Pos 06241  10
A90  Pos 05083  11
A81  Pos 04756  12
B05  Pos 05775  13
A38  Pos 02818  14
E99  Pos 26095  15
D11  Pos 17271  16
B31  Pos 08011  17
C85  Pos 15665  18
E97  Pos 25954  19
C44  Pos 13850  20
B25  Pos 07605  21
A48  Pos 03646  22
A97  Pos 05297  23
D02  Pos 16607  24
C84  Pos 15474  25


Erst der ECO Code, dann die Positions Nummer in der Datenbank und dann das Ranking.
Bedeutet eine Stellung aus C84 mit der Positions Nummer 15.474 / 26.146 in der Datenbank ist auf Platz 25 / 26.146 vom Ranking.

Das Ziel ist es also die PGN Datenbank nach der Ranking Nummer zu sortieren.
Haben wir das muss ich auch nichts mehr manuell aussortieren, denn die "Bad Moves" oder die mit höchster "Remis Wahrscheinlichkeit" stehen hinten im Ranking.
Parent - - By Frank Quisinsky Date 2017-08-15 12:15 Edited 2017-08-15 12:18
Um die Sache zu verdeutlichen ...

2 Grafiken der Excel (Ranking System).

Grafik 1 die besten 25 (rot bei Andscacs nur deswegen weil die Engine die kompletten 26.146 noch nicht analysiert hat ... fehlen die letzten 6%), ist morgen durch.
Zu sehen auch, dass keine Engine die besten Stellungen mit 0,00 bewertet hat (würde sonst grün hinterlegt sein).
Klar das Ranking filtert nach 6 Kriterien und erzeugt mithin ein genauere Rangfolge als eine bloße Stellungsbewertung.
Wobei der Durchschnitt der Stellungsbewertungen der zu analysierenden Engines ja immerhin 1 Kriterium ist.

Grafik 2 die schlechtesten Positionen ...





Gruß
Frank

über rot dann die grünen ... 0,00er Bewertungen ... je häufiger der Fall desto niedriger im Ranking.
Wird also z. B. später bei der Bucherstellung gesagt, nehme die TOP-15.000 vom FEOBOS Ranking für Eng-Eng Matches werden die frühen Remise weniger sein als wenn ich sagen würde nehme die TOP-20.000 der 26.146.
Parent - - By Frank Quisinsky Date 2017-08-16 09:12 Edited 2017-08-16 09:22
Hallo Guenter,

wow, das ist das korrekte Ergebnis !!

Norm will sich der Sache innerhalb seiner Tools in den nächsten Tagen annehmen.
Ferdinand programmiert derzeit ein Script.
Die Idee ist hier das Ranking in den Event tag zu bringen und dann mittels SCID die Datenbank nach Event tag sortieren zu lassen.
Auch kann SCID den weiß Namen im PGN tag alphanumerisch sortieren lassen.

Das wusste ich nicht, experimentierte mit anderen tags in SCID.
Mittels Chessbase geht das alles nicht.

Vielleicht kannst Du mir Deine Methode genau erklären.
Denn ich müsste bei Buchupdates genau wissen wie ich das selbst umsetzen kann.
Die Rankings verändern sich natürlich mit mehr und mehr Analysen.

Super Arbeit, selbst bin ich gescheitert an der Aufgabe.
Großes Kompliment ...

Muss die genauen Wege kennen wie Du dort hingekommen bist.
Denke aber auch das Ferdinand in den nächsten Tagen ein Script sendet.

Viele Grüße
Frank

Mit dieser Datei die Du erstellt hast ist sehr vieles möglich.
Die besten 500 für Test-Set ... die besten 20.000 für ein Buch als Beispiel.

Wobei ... wir haben einen Fehler im Ranking.
Bei den 26.146 Positionen sind 998 dabei mit unterschiedlicher ECO Code Länge.
Kommt zu Stande weil mittels Kürzung auf Zuglänge x für jeden ECO Code mittels Truncate von Norm plötzlich andere ECO Codes gebildet werden.
Bedeutet, dass sich in 998 Fällen nach der Eröffnungsvorgabe von x Zügen der ECO Code noch geändert hat.
Bedeutet auch, dass genau diese 998 Fälle im Grunde fast alle doppelt sind und beim Ranking nicht berücksichtig werden dürfen.

Das ändert Klaus die nächsten Tage.
Parent - - By Guenter Stertenbrink Date 2017-08-16 10:43
aehnliche Probleme tauchen staendig auf, mit anderen Datenbanken.
Ich benutze ein Basic Programm, um die Zeilen zu kombinieren
und ein uraltes "repl.com" tool, um strings in Dateien durch andere zu ersetzen.
Dan Zeilen-sort , evtl. auch startend ab Spalten-Position  C:/windows/system32/sort.exe dataei /+spalte > neu
Schwer fuer dich, das jeweils anzupassen.

Aber es sollte auch generelle tools (schnelle C-exes) geben die das machen, weiss nicht.
nicht so schwer zu programmieren
Parent - - By Frank Quisinsky Date 2017-08-16 23:03
Hallo Günther,

habe nun zwei Lösungen.
Von Norm Pollock und von Ferdinand Mosca.
Das hilft perfekte Bücher anzubieten ohne die aufwendigen Sortierarbeiten leisten zu müssen (betrifft das Buch ohne Zugumstellungen).

Muss zunächst mal selbst durchfinden, ausprobieren und dann kann ich das FEOBOS v8 Buch anbieten.
Sortiert nach Ranking ... das ist so geil !!

Weil ja auch alles sortiert ist und mithin ein Test-Set aus 20.000 Positionen entstanden ist.
Kann sich jeder wild zusammenstellen was er haben möchte, nur anhand der PGN.

Komme später darauf zurück.
Derzeit sehr viele Anpassungen in der Excel, viele neue Ideen wurden eingearbeitet.

Zum Beispiel welche ECO Codes sind die, die für viele schnelle Remispartien sorgen.
Also eine Rangliste hinsichtlich der 500 ECO Codes zum Thema welche produzieren die meisten 0,00 Bewertungen.

Etc..

Sind mit Hochdruck an den Projektdaten am Arbeiten und ich bin froh, dass dieses Projekt eine Laufzeit von über 1 Jahr hat.
Sonst hätte und könnte das hier alles gar nicht produziert werden, schon allein weil zum Thema auch kaum Vergleichsmaterial vorgelegen hat.
So sind Klaus und ich eher wie in Winboard Zeiten mit komplett neuen Entwicklungen und Ideen beschäftigt.

Begeistert ungemein sein Wissen derart über die ganzen Eröffnungssystem auszubauen.

Gruß
Frank
Parent - - By Guenter Stertenbrink Date 2017-08-17 10:10
ich moechte eine Liste von Computer-Eroeffnungsfallen ,
Zuege die zuerst gut aussehen, bei hoeherer Tiefe (aehh, tieferer Tiefe ?)
aber deutlich abfallen

sortiert nach "Qualitaet" der Falle , wie wahrscheinlich es ist dass ein
engine da reinfaellt
Parent - - By Frank Quisinsky Date 2017-08-18 14:07
Hallo Guenter,

ist jetzt nicht unbedingt das große FEOBOS Thema.
Hatte mir letztens aber hierzu ein spannendes Buch gekauft, gibt viele geschriebene Bücher zu dem Thema.

So, das Tools von Ferdinand ist nun auch offiziell verfügbar.

Gruß
Frank
Parent - - By Guenter Stertenbrink Date 2017-08-18 15:46
spielt doch da mit rein :

sortiere nach groesster Bewertungs-Differenz engine A - engine B

angenommen eine Partie -oder ein Turnier-Zweikampf-  engine A gegen engine B  steht an,
nun "bereiten" sich die engines darauf vor mittels feobos
Parent - By Frank Quisinsky Date 2017-08-19 07:24
Hallo Guenter,

das stimmt!
Allerdings jetzt kein Thema.

Interessant eher wenn FEOBOS durch ist.
Dann steht die Datenbank und dann eher interessant zu schauen bei welchen Systemen werden dann die kurzen Gewinnpartien produziert.
Sind es Blunder oder dann sehr tiefgehende Fortsetzungen die sich dann für die Datenbank doch nicht eignen, trotz der Vielzahl an Überprüfungen durch Engine Analysen die dann ja eingeflossen sind.

Hätte erst das Buch entwickeln sollen und dann die Ratingliste folgen lassen.
Allerdings brauchte ich die Ratingliste um interessante neue Linien zu finden.

Ein Thema das ganz sicher nie enden wird.
Zumindest wird bald ein Resultat im Raum stehen, dann wenn FEOBOS durch ist.
Buchthema ist dann weitestgehend abgeschlossen, der Beeinflussungsfaktor ist für Rating Systeme eliminiert, zumindest für mich.

Gruß
Frank
Up Topic Hauptforen / CSS-Forum / Benötige eine technische Lösung: Vielleicht hat jemand eine Idee ...

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill