Welcome Guest! To enable all features please try to register or login.
Options
Go to last post Go to first unread
Offline Vexation  
#1 Posted : 02 September 2015 15:55:16(UTC)
Vexation

Rank: Administration

Reputation:

Medals: GNRL Season Winner: First Place In Overall Standings

Groups: Administrators, Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 143

Was thanked: 16 time(s) in 11 post(s)
Λοιπόν, από την κουβέντα στο άλλο thread αναδείχτηκε κάποιο ενδιαφέρον για ELO rankings. Δεν τα έχω ενσωματώσει στο Live σύστημα ακόμα γιατί κάνω δοκιμές με διάφορες παραμέτρους (προφανώς για να δω ποιος συνδυασμός με βγάζει πρώτο).

Τελικά κατέληξα να υλοποιήσω ένα ελαφρώς αλλαγμένο σύστημα από αυτό που χρησιμοποιούν οι πουθενάδες της FIDE, με τον εξής πίνακα:

Αρχική τιμή:800
Μέχρι 1000 rating: Κ = 32
1000-1200: K=24
1200+ : K=16

Νομίζω είναι μια καλή κατανομή. Το μόνο που άλλαξα για να έχει ενδιαφερόν είναι ότι ανά πάσα στιγμή, το K-val βγαίνει από το lifetime rating και όχι μόνο της τρέχουσας σαιζόν. Σε απλά ελληνικά, όσο πιο ψηλά είσαστε στο lifetime, τόσο πιο δύσκολα ανεβαίνετε σε ένα season.

Πως σας φαίνεται; Να το ενσωματώσω στο σύστημα;

Edited by user 02 September 2015 16:14:29(UTC)  | Reason: Not specified

UserPostedImage
Offline Vexation  
#2 Posted : 02 September 2015 15:57:24(UTC)
Vexation

Rank: Administration

Reputation:

Medals: GNRL Season Winner: First Place In Overall Standings

Groups: Administrators, Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 143

Was thanked: 16 time(s) in 11 post(s)
Season I

Season I Positive ELO Standings
UserPostedImage
Offline Vexation  
#3 Posted : 02 September 2015 15:58:12(UTC)
Vexation

Rank: Administration

Reputation:

Medals: GNRL Season Winner: First Place In Overall Standings

Groups: Administrators, Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 143

Was thanked: 16 time(s) in 11 post(s)
Season II

Season II Positive ELO Ladder
UserPostedImage
Offline Vexation  
#4 Posted : 02 September 2015 15:58:58(UTC)
Vexation

Rank: Administration

Reputation:

Medals: GNRL Season Winner: First Place In Overall Standings

Groups: Administrators, Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 143

Was thanked: 16 time(s) in 11 post(s)
Season III

Season III Positive ELO Ladder
UserPostedImage
Offline Vexation  
#5 Posted : 02 September 2015 15:59:44(UTC)
Vexation

Rank: Administration

Reputation:

Medals: GNRL Season Winner: First Place In Overall Standings

Groups: Administrators, Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 143

Was thanked: 16 time(s) in 11 post(s)
Season IV - Incomplete

Temp

Edited by user 02 September 2015 16:00:24(UTC)  | Reason: Not specified

UserPostedImage
Offline Vexation  
#6 Posted : 02 September 2015 16:01:07(UTC)
Vexation

Rank: Administration

Reputation:

Medals: GNRL Season Winner: First Place In Overall Standings

Groups: Administrators, Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 143

Was thanked: 16 time(s) in 11 post(s)
Lifetime Positive Standings

Lifetime ELO
UserPostedImage
Offline Vexation  
#7 Posted : 02 September 2015 16:19:00(UTC)
Vexation

Rank: Administration

Reputation:

Medals: GNRL Season Winner: First Place In Overall Standings

Groups: Administrators, Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 143

Was thanked: 16 time(s) in 11 post(s)
Και όποιος θέλει να ρίξει μια ματιά στον αλγόριθμο (μπας και έχω κάνει πατάτα):

static void Eludify(Matches m, int sid)
{
using (AEGTOEntities db = new AEGTOEntities())
{

//find the players
int playerA;
int playerB;

Matches mirror=db.Matches.Single(s=>s.roundID==m.roundID && s.siteID==m.siteID && s.ismirror==true);

playerA = m.TournamentPlayers.playerId;
playerB = mirror.TournamentPlayers.playerId;

int rankA = GetRank(playerA);
int rankB = GetRank(playerB);

int sRankA = GetSRank(playerA, sid);
int sRankB = GetSRank(playerB, sid);

double estA = 1 / (1 + Math.Pow(10, ((rankB - rankA) / 400)));
double estB = 1 / (1 + Math.Pow(10, ((rankA - rankB) / 400)));

double sEstA = 1 / (1 + Math.Pow(10, ((sRankB - sRankA) / 400)));
double sEstB = 1 / (1 + Math.Pow(10, ((sRankA - sRankB) / 400)));

double scoreA = 0;
double scoreB = 0;

if (m.winC+m.winR==2)
{
scoreA = 1;
scoreB = 0;
}
if (m.winC + m.winR == 1)
{
scoreA = 0.5;
scoreB = 0.5;
}
if (m.winC + m.winR == 0)
{
scoreA = 0;
scoreB = 1;
}


int kA = 32;
int kB = 32;

if (rankA >= 1000)
{
kA = 24;
}
if (rankA >= 1200)
{
kA = 16;
}
if (rankB >= 1000)
{
kB = 24;
}
if (rankB >= 1200)
{
kB = 16;
}


rankA = rankA + Convert.ToInt32(kA * (scoreA - estA));
rankB = rankB + Convert.ToInt32(kB * (scoreB - estB));

sRankA = sRankA + Convert.ToInt32(kA * (scoreA - sEstA));
sRankB = sRankB + Convert.ToInt32(kB * (scoreB - sEstB));

UpdateLifeTime(playerA, rankA, scoreA);
UpdateLifeTime(playerB, rankB, scoreB);
UpdateSeason(playerA, sRankA, scoreA, sid);
UpdateSeason(playerB, sRankB, scoreB, sid);
}

}
UserPostedImage
Offline Le0n  
#8 Posted : 02 September 2015 16:55:28(UTC)
Le0n

Rank: Newbie

Reputation:

Groups: Registered, Registered Users, Subscribers
Joined: 02/09/2015(UTC)
Posts: 1

Θεωρώ ότι το ELO system είναι πολύ καλό για να κρατάμε τα στατιστικά μας τόσο ατομικά όσο και ομαδικά. Στα του κώδικα οι γνώσεις που έχω αποκομίσει από το Mr Robot δεν μου επιτρέπουν να καταλάβω τι γράφεις.
Offline The Root Of All Evil  
#9 Posted : 02 September 2015 17:59:14(UTC)
The Root Of All Evil

Rank: Administration

Reputation:

Groups: Administrators, Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 5

Μην τρομάζετε, δεν σας εξαφάνισα τους υπόλοιπους, απλά στα δοκιμαστικά έβγαλα όσου ήταν "πάνω από την βάση" - οι μετεξεταστέοι στο live version:)
This is a test
Offline The Root Of All Evil  
#10 Posted : 02 September 2015 18:00:42(UTC)
The Root Of All Evil

Rank: Administration

Reputation:

Groups: Administrators, Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 5

Θα επιχειρήσω και team elo, για να δούμε τι θα βγάλει αυτό, χαχα
This is a test
Offline Fabregus  
#11 Posted : 02 September 2015 18:56:50(UTC)
Fabregus

Rank: Advanced Member

Reputation:

Groups: Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 40

Thanks: 4 times
Σου έχω έτοιμο τον αλγόριθμο: Αθροίζουμε τα ELO των παιχτών κάθε ομάδας δια τον αριθμό των παιχτών! Το θες και σε κώδικα; :P
Offline Donnin  
#12 Posted : 03 September 2015 07:39:51(UTC)
Donnin

Rank: Member

Reputation:

Groups: Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 20

Thanks: 4 times
Was thanked: 3 time(s) in 3 post(s)
Αφού είμαι [ΕΝΤΙΤ]σχεδόν[/ΕΝΤΙΤ] παντού πάνω από το ΦανΠρέκας, καλός είναι ο αλγόριθμος! :D

All in All, μας λείπει το ELO σύστημα.

Edited by user 03 September 2015 07:41:58(UTC)  | Reason: Not specified

Offline Plutonick  
#13 Posted : 03 September 2015 11:50:51(UTC)
Plutonick

Rank: Member

Reputation:

Groups: Registered, Registered Users, Subscribers
Joined: 12/01/2015(UTC)
Posts: 17

Thanks: 1 times
Was thanked: 1 time(s) in 1 post(s)
Εγκρίνω ELO

Originally Posted by: Fabregus Go to Quoted Post
Σου έχω έτοιμο τον αλγόριθμο: Αθροίζουμε τα ELO των παιχτών κάθε ομάδας δια τον αριθμό των παιχτών! Το θες και σε κώδικα; :P


διαφωνώ.

Προτίνω το team ELO να αθροίζει τους ΤΟΠ X παίκτες όπου Χ είναι κάτι μεταξύ 3-4 (στο κάτω κάτω δεν θέλουμε teams με 10-11 παίκτες, για να υπάρχει πολυφωνία)

Έτσι θα μπορούμε να έχουμε στο team και νεους παίκτες χωρίς να επιρρεάζουν τόσο το σκορ μέχρι να μάθουν το game. Θα βοηθήσει το community με την λογική ότι θα μπουν οι νέοι εύκολα σε κάποιο team ανταγωνιστικό και σοβαρό team όπως οι TGTBT ή ΜΑΖΑ χωρίς να 'τιμωρηθεί' το team.
Offline Vexation  
#14 Posted : 03 September 2015 13:25:08(UTC)
Vexation

Rank: Administration

Reputation:

Medals: GNRL Season Winner: First Place In Overall Standings

Groups: Administrators, Registered, Registered Users, Subscribers
Joined: 28/08/2014(UTC)
Posts: 143

Was thanked: 16 time(s) in 11 post(s)
Δεν θα είναι αυτός ο αλγόριθμος έτσι και αλλιώς. Δεν μπορείς να πάρεις αθροιστικά/median νούμερα σε χρονοσειρές και να περιμένεις να έχεις αξιόπιστο αποτέλεσμα.

Αφού τον φτιάξω θα τον παραθέσω.
UserPostedImage
Users browsing this topic
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Notification

Icon
Error