Entwerfen Sie einen Echtzeit-Spieler-Matching-Algorithmus für Schachspiele

Ich habe kürzlich nach einer sehr langen Pause wieder mit dem Schachspielen begonnen. Meine Zeit, die ich für verschwenderische und unproduktive Unterhaltung aufgewendet habe, hat sich dadurch verringert.

Schach hat viele Vorteile:

  • Verbessert die Fähigkeit zur Problemlösung.
  • Erhöht die Lesekomprimierung und den IQ

1662743472341.jpeg
Schach Vorteile

Es gibt zahlreiche weitere Vorteile, die für die Ingenieur- und Data-Science-Berufe entscheidend sind.

Meine datenwissenschaftliche Seite war entzündet, nachdem ich einige Zeit damit verbracht hatte, damit zu spielen Schach.com, fragen sich, wie ihr Spieler-Matching-Algorithmus funktioniert. In diesem Newsletter werden wir ausführlich besprechen, welche Funktionen nützlich sind und wie wir einen Spieler-Matching-Algorithmus aufbauen können.

Wenn Sie diesen Newsletter nicht abonniert haben, besuchen Sie diesen Verknüpfung und klicken Sie auf die Schaltfläche “Abonnieren”.

Problemstellung

Erstellen Sie einen Echtzeit-Spieler-Matching-Algorithmus für ein Schachspiel.

Geschäftsziele

  • Um die Bindung auf der Plattform zu maximieren.
  • Um die Anzahl der Spiele zu erhöhen, die pro Benutzer pro Sitzung gespielt werden, was schließlich dazu führen würde, dass Benutzer eine Pro- oder Diamond-Mitgliedschaft kaufen, um Schach zu lernen.
  • Maximieren Sie die Sitzungsdauer auf der Plattform.

Sich nähern

Merkmale

Für die Spielerzuordnung in Echtzeit berücksichtigen wir die folgenden Faktoren:

  • Gleichen Sie den nächsten Online-Spieler basierend auf der Bewertung ab: Ein Anfänger sollte nicht mit Viswanathan Anand, einem Spieler auf Großmeisterniveau, abgeglichen werden.
  • Es wird vermieden, unhöfliche oder missbräuchliche Spieler mit freundlichen zusammenzubringen: Um die Harmonie auf der Plattform aufrechtzuerhalten und die Bindung zu verbessern, ist dies sehr wichtig.
  • Überprüfen Sie die Internetverbindung, vermeidet Spiele von Spielern mit solider Internetverbindung zu Spielern mit schlechter Verbindung.

1662997918335 (1).png
Konnektivität als Faktor

  • Vermeiden Sie Matches mit Spielern, die ohne Rücktritt aufgehört haben (auch bekannt als Bad Sportsmanship): Analysieren Sie das vergangene Verhalten von Spielern auf der Plattform, lästige Spieler sollten mit ähnlichen Spielern abgeglichen werden.

1662979588760.png
Öffnung als Faktor

  • Viele Spieler glauben, dass der Matching-Algorithmus auf Eröffnungsstilen und Sieges-/Verlustserien basiert. Dem stimme ich vollkommen zu. Nach dem Spielen mehrerer Spiele passiert dies wirklich, und das macht den Matching-Algorithmus noch interessanter. Es gibt einem nicht das Gefühl, alles zu wissen. Schach ist ein Gedankenspiel, und das Auswendiglernen einiger Eröffnungsstile macht Sie noch lange nicht zu einem Profispieler!

1662989929014.png
Win/Loss Streak als Faktor

  • Einen Sieg oder eine Niederlage vor dem Spiel vorherzusagen, wenn Spieler zusammenpassen, ist eine Meisterleistung. Es ist sehr wahr, dass Sie mehr spielen, wenn Sie gegen einen schwierigen Gegner mit einer niedrigeren Bewertung spielen. Ich habe das selbst erlebt. Gewinn-/Verlustserien von Spielern analysieren: Steigern Sie die Moral von Spielern mit einem niedrigeren Rating in Matches, mit denen eine hohe Gewinnwahrscheinlichkeit besteht (umgekehrt in einem härteren Match, wenn es eine lange Siegesserie gibt).

Einige von Ihnen fragen sich vielleicht, warum das Benutzerprofil nicht berücksichtigt wurde. Ich habe die demografischen oder geografischen Daten des Benutzerprofils absichtlich nicht aufgenommen, da Schach eine kostenlose Spielaktivität ist, die von jedem gespielt werden kann, unabhängig von Sprache, Alter, Geschlecht, körperlichen Fähigkeiten oder sozialem Status.

Data-Science-Algorithmus

Dies ist das perfekte Problem für Learning To Rank-Pairwise Ranking.

Wir vergleichen paarweise die Spieler, die in einem bestimmten Format spielen möchten, mit allen anderen Spielern in der Warteschlange und bringen diejenigen zusammen, die die beste Übereinstimmung haben.

{Pi, Pj} -> 1 oder 0; wobei 1 bedeutet, dass Pi und Pj relevante Übereinstimmungen sind und 0 bedeutet, dass Pi und Pj keine relevanten Übereinstimmungen sind, verwenden Sie die Vorhersagewahrscheinlichkeit des Klassifikators, um herauszufinden, welche zwei Paare die beste Übereinstimmung oder relevanter sind.

Buchhafte Definition – Paarweises Ranking ist analog zur Klassifizierung. Jeder Datenpunkt ist einem anderen Datenpunkt zugeordnet, und das Ziel besteht darin, einen Klassifikator zu lernen, der vorhersagt, welcher der beiden für eine bestimmte Abfrage „mehr“ relevant ist.

Fazit.

Hinter diesem Problem steckt noch viel mehr, und es kann weiter optimiert werden. Es macht immer Spaß, passende Algorithmen zu entwerfen und darüber nachzudenken. Ich würde gerne Ihre Gedanken zu diesem Problem hören und Ihre Ansichten in den Kommentaren teilen.

_ Verbinden, folgen oder unterstützen Sie mich auf _ LinkedIn _ wenn Sie diese Lektüre nützlich fanden. Um mehr über mich zu erfahren, besuchen Sie: _ Hier

Ich bin auch für den HackerNoon 2022 Noonies Award nominiert, stimmen Sie für mich ab: HackerNoon-Mitwirkender des Jahres – Daten | Dämon der Datenwissenschaft

Screenshot 20.09.2022 um 12.09.26 Uhr.png

Auch veröffentlicht hier

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *