LLC 2007

User avatar
hitzi
Posts: 1653
Joined: Wed May 18, 2005 11:59 am
Location: Germany
Contact:

Post by hitzi » Sat May 20, 2006 11:05 pm

I wouldn't use the time format. Convert any time into minutes (float format) an d you can easily calculate everything you want.

markjt
Posts: 1256
Joined: Fri May 06, 2005 10:10 am
Location: England

Post by markjt » Sun May 21, 2006 1:34 am

'time' type is OK:

SELECT distance_flown / TIME_TO_SEC( time_column ) * 3600
...

TIME_TO_SEC converts HH:MM:SS to seconds.

Mark
Reg-#: G-1956
Comp-#: MT

User avatar
hitzi
Posts: 1653
Joined: Wed May 18, 2005 11:59 am
Location: Germany
Contact:

Post by hitzi » Sun May 21, 2006 10:37 am

Thanks for this function Mark, don't know it until now. This could be usefull in future :)

Bob, how will the new data inserted into the database? You have to be carefull with date and time values because of the different formats when the data will inserted from different computers.

For example:
both are valid dates: 21.05.2006 and 2006.05.21

Same can happen for times. But your MySQL database will only allow one datetime format - it's own system datetime format.

Seeya
Thomas

User avatar
Vertigo
Posts: 1080
Joined: Fri Sep 16, 2005 11:17 am
Location: Belgium

Post by Vertigo » Sun May 21, 2006 10:58 am

edit: thx mark, your solution works just fine :) does something similar exist in PHP ?

Date format doesnt matter, as imported results will not have a date, only a raceday, so only internal date format is used. Time format (finish times), i assume to be the same.

I have another interesting problem about importing though. I want this to be automatic, so I need a decission table what to do if a result exists in database (for given CN and raceday), and a new one is submitted (CSV race result, or IGC). Keep in mind it is in theory possible people switch servers at any time (before start, after landing, crashing, maybe even finishing) and can submit IGC's before or after the server results are published. They can even submit an IGC and later a different server can also show data for that pilot.

This makes things complex. Below is an attempt I did to structure this. Vertical you see the "new" result (from csv or igc), horizontal the existing result in database.

">0" means more than zero km (so a racestart),
"X" means import new result, "0" keep existing result, "worst" means, take worst result of both.

Does this look correct to you ? Any hints how to program this somewhat elegantly or how to simplify this ?
You do not have the required permissions to view the files attached to this post.
Last edited by Vertigo on Sun May 21, 2006 11:21 am, edited 1 time in total.
Image

User avatar
Vertigo
Posts: 1080
Joined: Fri Sep 16, 2005 11:17 am
Location: Belgium

Post by Vertigo » Sun May 21, 2006 11:09 am

edited post above with new table

programming "common sense" is complicated :(
Image

User avatar
Vertigo
Posts: 1080
Joined: Fri Sep 16, 2005 11:17 am
Location: Belgium

Post by Vertigo » Sun Jun 11, 2006 6:41 pm

Sunday evening update on the website ;)

- Experimented with scoring script. Looks like I will no longer base overall scoring on each monthscorings, as its not possible to make this fair. You get weird thing like flying one day a given month, winning it, but losing a ton of points overall (because an additional month is taken into account).

hence my new proposal: overall score would simply be:
(sum of dayscores)/(#dayscores + F)

But I would only count the first 40 (?) flights and pick F in such a way that you need about 30 flights for a representative score. If you have completed 40 races, any additional results will be discarted. Any thoughts ?

- finished the above 'decission matrix'. Results can be imported in any order from any source, and should be processed correctly (taking worst result if needed, ignoring warmup, ignoring crashes before race start, etc).

- finished "hospital" code. I set no upper limit to the number of crashes allowed, but each crash, an additional hospital day will be applied: first crash, 1 day, 5th crash -> 5 days in hospital (15 days in total), etc). Didn't find a simple enough way to let a pilot "die", remove his points, allow him to fly from scratch without changing the old results (can't delete the old results, it would change scoring for eveyone) Hospital needs some output pages to see status, ..

- added dayresults page with ranking evolution and some charts (that still need work). I show hospitalized results but no score. They are not counted for dayfactor (and could in theory exceed 1000p), or any other results, but they do show up in the charts (for now) .

- Prepared the database and made some scripts for LLC teams. I guess I ignored the poll :oops: . Teams will be totally free, no bonus points, but I can't exclude the possibility of some prizes ;) Teams have a captain, name and flag. If you're bored, start making some :) Captains need to approve their members, but you're not obliged to fly for any team. I may also add a stripped down forum for team communication, and/or mailing lists per team..

- Problems still with IE not handling PNGs correctly, use firefox for best results. Also still suffering from HTTP 1/100 messages in the chatbox ? I have no idea how to cure this .

- started working on BO (manage compdays, servers, score IGCs, ..)

Coming up next: BO, Team, month and overall result pages and charts. Pilot profile. Dynamic linking (clicking on pilot/country/team/day/. as in previous site). Registration, mail automation, mini CM for news articles, briefings, ....

Feel free to have a look and test here:
http://2007.lowlands-cup.com/llc/

Suggestions are always welcome too.
Image

User avatar
mac
Posts: 394
Joined: Tue Mar 28, 2006 8:25 pm
Location: Strasbourg, France

Post by mac » Mon Jun 12, 2006 2:36 am

Vertigo wrote:hence my new proposal: overall score would simply be:
(sum of dayscores)/(#dayscores + F)

But I would only count the first 40 (?) flights and pick F in such a way that you need about 30 flights for a representative score. If you have completed 40 races, any additional results will be discarted. Any thoughts ?
More than thought a question: why not to count all the races? The asymptotic way of scoring should reduce their influence howerver...
- finished "hospital" code. I set no upper limit to the number of crashes allowed, but each crash, an additional hospital day will be applied: first crash, 1 day, 5th crash -> 5 days in hospital (15 days in total), etc).
So, correct me if I forgot anything from the previous discussion, but in this way, a pilot will have zero points anytime (s)he will crash, and won't have her/his score counted for the following race (or 2 or 3...).

If my understanding is correct:
1. I think it's demotivating to be "out" for so long (OK, in RL after a crash you're lucky if you are still alive, but...)
2. A second, third, fourth crash, will increase the amount of boredom for her/him (having to wait for weeks before to score any point), but won't have an increasing effect on the score (especially if you will only count the first 40 races).

Possible alternative: 1 day hospital (fix) every crash AND increasing penalisation in points for following races (something that I would probably call convalescence). A proposal could be:

1st crash -> no penalisation
2nd crash -> 90% of score for the first race after hospital
3rd crash -> 80% of first score, 90% of second score
4th crash -> 70% of 1st, 80% of 2nd, 90% of third..

If you crash during the convalescence, percentage can pile up (multiplier), for example: SCORE*8/10*9/10

Advantages that I see in the system:
A. the system can also work without any day "spent in the hospital" (which takes away the fun of competition).
B. crashes tends to have deeper effect on top pilots rather than on poor pilots (as the 10% of 1000pts is twice the 10% of 500pts). This would achieve the result to disincentivate risky flying without being too hard on beginners.
Prepared the database and made some scripts for LLC teams. I guess I ignored the poll :oops: . Teams will be totally free, no bonus points, but I can't exclude the possibility of some prizes ;)
The two things goes badly together: free teams and prizes means probably double prizes to the same people...
I may also add a stripped down forum for team communication, and/or mailing lists per team.
What I would find useful would be password protected areas of the site with - beside forums and file storage - scoring tools for teams (meaning: a team can practice on a server of their choice, then all the members upload their IGC files, and the LLC site analyse their results, comparing them both with official race days and with previous training sessions.
Problems still with IE not handling PNGs correctly, use firefox for best results.
Simply: http://firefoxflicks.com/flick/index.ph ... 42&c=false
started working on BO (manage compdays, servers, score IGCs, ..)
I know I will feel stupid when I will get the answer, but... what do you mean by BO?
Feel free to have a look and test here:
http://2007.lowlands-cup.com/llc/
Suggestions are always welcome too.
- in the upload session you can choose the day your file belongs to (all the race days are selectable). I think it would be good to have a limit after which it won't be possible to upload any file, otherwise we will never have "final" results!

- somewhere the "next" LLC is called 2007, somewhere 2008. What should the official name be?

Anyhow: looks like a promising season! Well done Vertigo! :D
Image

User avatar
Vertigo
Posts: 1080
Joined: Fri Sep 16, 2005 11:17 am
Location: Belgium

Post by Vertigo » Mon Jun 12, 2006 10:22 am

mac wrote: More than thought a question: why not to count all the races? The asymptotic way of scoring should reduce their influence howerver...
If you don't, its hard to make a balance where a well ranked pilot would be inticed to flyafter 30-40 days, without having more chance to reduce his score than to gain, while at the same time allowing pilots that can only fly 1 race out of 2 (only sunday or thursday) a reasonable ranking. By dropping the races beyond 40th, I can change the factor so that 25 races gives you a fair ranking. Besides, only one or two pilots flew more than 40 races last LLC.
So, correct me if I forgot anything from the previous discussion, but in this way, a pilot will have zero points anytime (s)he will crash, and won't have her/his score counted for the following race (or 2 or 3...).
Correct.
If my understanding is correct:
1. I think it's demotivating to be "out" for so long (OK, in RL after a crash you're lucky if you are still alive, but...)
2. A second, third, fourth crash, will increase the amount of boredom for her/him (having to wait for weeks before to score any point), but won't have an increasing effect on the score (especially if you will only count the first 40 races).
The pilot is still allowed to participate, and will appear in the dayranking, his score however, will be dismissed (see examples on website). If that is too demotivating, I suggest flying more carefull :) Keep in mind, this crashing penalty will only be applied to crashes that are the result of absolutely avoidable, reckless flying. If someone crashes as a result of collision, technical problems, etc, we will judge per case and be fairly liberal.
Possible alternative: 1 day hospital (fix) every crash AND increasing penalisation in points for following races (something that I would probably call convalescence). A proposal could be:

1st crash -> no penalisation
2nd crash -> 90% of score for the first race after hospital
3rd crash -> 80% of first score, 90% of second score
4th crash -> 70% of 1st, 80% of 2nd, 90% of third..

If you crash during the convalescence, percentage can pile up (multiplier), for example: SCORE*8/10*9/10

Advantages that I see in the system:
A. the system can also work without any day "spent in the hospital" (which takes away the fun of competition).
B. crashes tends to have deeper effect on top pilots rather than on poor pilots (as the 10% of 1000pts is twice the 10% of 500pts). This would achieve the result to disincentivate risky flying without being too hard on beginners.
Hmm.. thats not a bad idea I guess. Can you work out an alternative that is slightly easier to implement though ? :) I'll think about it anyhow. Just one thought already: this is a much more severe penalty than what I proposed! Having only 80 or 70% of your dayscore is much worse than having a few days not being counted. I do agree on your point about its impact on 'new' pilots versus aces, and I like that. OTOH, I also like the metaphore of being in hosptial... food for thought.

The two things goes badly together: free teams and prizes means probably double prizes to the same people...


Not necessarly. It will be much more important to have a good, 'even' team than one or two top pilots in your team.
What I would find useful would be password protected areas of the site with - beside forums and file storage - scoring tools for teams (meaning: a team can practice on a server of their choice, then all the members upload their IGC files, and the LLC site analyse their results, comparing them both with official race days and with previous training sessions.
Seems like a lot of work for something that won't provide any benefit over comparing onscreen or CSV result with the website ? or am I misunderstanding you ?
I know I will feel stupid when I will get the answer, but... what do you mean by BO?
BackOffice (management pages).

- in the upload session you can choose the day your file belongs to (all the race days are selectable). I think it would be good to have a limit after which it won't be possible to upload any file, otherwise we will never have "final" results!
Its implemented already, you can only upload files for the last 2 racedays (and none for future racedays), but I disabled this check for now to be able to test scoring scripts :) I do need to add some verification though to ensure the correct CSV or IGC is being submitted (checking distance of finished pilots see if it is correct for given race day, date, etc).
- somewhere the "next" LLC is called 2007, somewhere 2008. What should the official name be?
:) 2007. 2008 is just for all the codetesting.
Image

User avatar
mac
Posts: 394
Joined: Tue Mar 28, 2006 8:25 pm
Location: Strasbourg, France

Post by mac » Tue Jun 13, 2006 1:17 am

Vertigo wrote:Keep in mind, this crashing penalty will only be applied to crashes that are the result of absolutely avoidable, reckless flying. If someone crashes as a result of collision, technical problems, etc, we will judge per case and be fairly liberal.
Looks like a fair solution. My only comment on this is that tasks should be designed in order to guarantee the possibility of safe outlandings. Some of the SB 11 tasks (and this is not a complain as I like them all!) implyes flying with quite low cloudbase on forest areas which extend for kilometres... it's almost impossible to fly safely there!
Hmm.. thats not a bad idea I guess. Can you work out an alternative that is slightly easier to implement though ? :) I'll think about it anyhow. Just one thought already: this is a much more severe penalty than what I proposed! Having only 80 or 70% of your dayscore is much worse than having a few days not being counted. I do agree on your point about its impact on 'new' pilots versus aces, and I like that. OTOH, I also like the metaphore of being in hosptial... food for thought.
I have difficults to think to something easier but I can explain you how I would implement it in a simple way (I use pseudocode here, as I don't know any current language programming). I have no pretence the algorythm is optimised, but I hope it is clear enough to grab the idea:

Global data:

Code: Select all

DD = the overall number of LLC race days
CD = the current race day.
Penalties = (array) 1, 0.9, 0.8, 0.7, ..., 0, 0, 0, 0
Pilot specific data:

Code: Select all

CC - CrashCounter (integer)
VRA - ValidRacesArray (boolean) DD elements
PA - PenaltiesArray (numeric) DD elements
At the beginning of the season:

Code: Select all

CC=0
VRA=True, True, True, ..., True
PA= 1,1,1, ..., 1
Every competition day:

For all pilots making it without crashing:

Code: Select all

if VRA(CD)=True
   then Score=FullScore*PA(CD)
For all pilots crashing on that day:

Code: Select all

VRA(CD+1)=False
CC=CC+1
for i=2 to CC+1
   PA(CD+i)=PA(CD+i)*Penalties(CC-i+2)

Apart some control not to exceed the lenght of arrays, and the fact that I didn't debug, that's pretty much, I suppose! :)

This solution includes the hospital day (+1) and the no penalty on the first crash ("1" as first element in the "Penalties" array). But you can adapt the idea taking off the hospital days, or penalising as from the first crash, or...

For what concerns the fact that this solution is more penalising that skipping some race, I think it depends from the way you will like to calibrate it. With 90%, 80% and so on it si very hard. But you might prefer to have an esponential distribution of penalties (something like 97%, 92%, 85%, etc...)
Not necessarly. It will be much more important to have a good, 'even' team than one or two top pilots in your team.
I am curious, as this was also my vision: how have you thought to score team performance then?
Seems like a lot of work for something that won't provide any benefit over comparing onscreen or CSV result with the website ? or am I misunderstanding you ?
The idea is only half-backed and has to be further developed. As a veeeery general principles, the section of the website should:
1. Allow to gauge increase in team performance over time.
2. Allow teams to learn how to fly in order to maximise team benefit in terms of points (but to articulate more, I need to know first how you thought the team score will work!) :wink:
I know I will feel stupid when I will get the answer, but... what do you mean by BO?
BackOffice (management pages).
Ok, I feel stupid, now! :oops:
Last edited by mac on Tue Jun 13, 2006 7:55 pm, edited 1 time in total.
Image

User avatar
Vertigo
Posts: 1080
Joined: Fri Sep 16, 2005 11:17 am
Location: Belgium

Post by Vertigo » Tue Jun 13, 2006 10:24 am

mac wrote: Looks like a fair solution. My only comment on this is that tasks should be designed in order to guarantee the possibility of safe outlandings. Some of the SB 11 tasks (and this is not a complain as I like them all!) implyes flying with quite low cloudbase on forest areas which extend for kilometres... it's almost impossible to fly safely there!
We will certainly try to avoid that.
I have difficults to think to something easier but I can explain you how I would implement it in a simple way (I use pseudocode here, as I don't know any current language programming). I have no pretence the algorythm is optimised, but I hope it is clear enough to grab the idea:
Lol, thanks, but there was no need for the pseudo code. I think its also slightly more complicated as you need to be able to apply and remove penalties for a given day (eg when an IGC file arrives), even after newer penalties could be applied, so you not only need the penalty array, you need to "remember" when/why they where applied, or recalculate them from scratch, but thats no problem.
I am curious, as this was also my vision: how have you thought to score team performance then?
Its difficult, and I'm still experimenting. Looking at AAS scoring per day, with a factor F between 1 and 1,5 and removing best and worst result, then applying a teamfactor which is derived from standard deviation.
Suggestions for this are still welcome
BackOffice (management pages)
Ok, I feel stupid, now! :oops:
No need. Its part of my everyday lingo, but not everyone works in IT :)
Image

User avatar
mac
Posts: 394
Joined: Tue Mar 28, 2006 8:25 pm
Location: Strasbourg, France

Post by mac » Tue Jun 13, 2006 8:43 pm

Actually, I found a little "bug" in my previous post (the penalties where applied left-to-right and not right-to-left) but I fixed it in the post itself. Sorry for that, it simply bumped into my mind on my way to work this afteronoon.
Vertigo wrote:...or recalculate them from scratch, but thats no problem.
...or more easily, recalculate the last two races results everythime the third-last is declared as "definitive" (if you will be able to upload your IGC files only for the previous two races).
Its difficult, and I'm still experimenting. Looking at AAS scoring per day, with a factor F between 1 and 1,5 and removing best and worst result, then applying a teamfactor which is derived from standard deviation. Suggestions for this are still welcome
I assume AAS is the starndard score system of Condor. Right?

Anyhow: why to remove the best and worst results? The StdDev should already mitigate their effects on the team result, if the worst and best results are far from the average...

I can think of other 2 factors that might be taken in account:
1. Number of pilots that fly a given task (a team result achieved by 7 pilots can't be of the same importance of a team result achieved by 2). BTW: you could even put a minimum number of pilots from one team that have to participate to a race in order to consider it valid for team cup.
2. Consistency of the fying group (in principle, teams that have different pilots flying every time should be disadvantaged, this should guarantee that teams develop skills for all different kind of tasks (ridges, waves, thermals...).

Also, the password protected area, and the possibility to compare results, should give teams the possibility to develop a flying style that could maximise team score.

(sorry... gotta go, hope the last sentence is understandable!!) :shock:
Image

User avatar
Vertigo
Posts: 1080
Joined: Fri Sep 16, 2005 11:17 am
Location: Belgium

Post by Vertigo » Tue Jun 13, 2006 9:36 pm

I assume AAS is the starndard score system of Condor. Right?
No, its my trademarked name for the new LLC scoring ;) Asymptotical Averaged Score.: (sum of score)/(# of scores + F)
Anyhow: why to remove the best and worst results? The StdDev should already mitigate their effects on the team result, if the worst and best results are far from the average...
To avoid a single pilot having a bad day /crash from having an enormous effect and him having to feel bad about it (or teamleaders not allowing in someone that might crash on a bad day.. like NX for instance :D ), to avoid a single top pilot from dragging the score up too much and to have less numbers for the AAS score, so you need ~5 or more flights per day per team to get a representative score (granted, I could also increase F to achieve that last goal).
I can think of other 2 factors that might be taken in account:
1. Number of pilots that fly a given task (a team result achieved by 7 pilots can't be of the same importance of a team result achieved by 2). BTW: you could even put a minimum number of pilots from one team that have to participate to a race in order to consider it valid for team cup.
AAS takes care of that. Assume F=1, team has two flights counted (best and worst ignored), each say 900 and you end up with 1800/3=600 points. If you have 4 flights of 800 you get 3200/5= 640. But having 10 or 20 pilots will no longer improve your score (on the contrary, as the average is likely lower).

Note I would choose F lower than 1 if dropping best and wost. More like 0,7.
2. Consistency of the fying group (in principle, teams that have different pilots flying every time should be disadvantaged, this should guarantee that teams develop skills for all different kind of tasks (ridges, waves, thermals...).
Hmmm.. seems a bit far fetched. For optimal results it would require pilots not flying a given task, which seems going against the spirit.

I was thinking of normalizing each individual result with its ranking, but if you think it through, it doesnt make much sense either, because the ranking is a result of all his individual results which also make up the teamscore. It would only give an advantage to a team that starts later or with pilots that improve.. improving is good, but shouldn't be the measure of success either (otherwise to win, you'd have to start messing up a few races, or not participate only to be able to "improve" later).
Also, the password protected area, and the possibility to compare results, should give teams the possibility to develop a flying style that could maximise team score.
I'll get back to you on this once I got the rest done and working.
Image

User avatar
mac
Posts: 394
Joined: Tue Mar 28, 2006 8:25 pm
Location: Strasbourg, France

Post by mac » Wed Jun 14, 2006 2:00 am

Ok, now I got what you referred to with AAS and this changes slightly the terms of the reasoning.

I made some table of simulated/simplifying results to see the effects of taking out the best and worst results, and at the end a mathematical truth emerged before my eyes: StDev has a meaning (i.e. its results can be compared) only if it is put in relation to the average of the whole statistical sample.

The meaning of StDev, is the one of giving a "weight" to the average (how much the average of the team does really say something about the performance of each team member?). StDev do not assume a particular distribution of the data. At the contary: it is used to understand how close a set of data is distrubuted according to the Gaussian "normal" curve.

The praxis of taking away the the lower and higher end of a set of data contraily assume that the set of data is distributed according to a gaussian curve. Taken this for granted, eliminating the higher and lower end of the set allows us to have an arithmetical average that is far more significant of the level of performance of each pilot.

It should be evident now that mixing the two is simply wrong, as
the outcome has not statistical relevance, and - moreover - according to different distribution of data, cna generate very weird results, bsically making the entire ranking loosing in significance.

Indeed my new working proposal for team scoring would be the following:
1. All team members results count, an arithmetical average is done.
2. The lowest the StDev is, the more "bonus points" a team will get.
3. AAS comes into the picture only when you have to generate the ranks between teams. In this case, teams count like players, and the same reasoning done when the AAS was invented, apply.

The thing I still have to think over is how the StDev will generate points: being a linear distance between data and their mean, the highest the average, the highest will more likely be the StDev. So, StDevs might be necessarily reported to the average they refer to. From that, I wonder if the extra points (whatever amount will be) should be generated by a multiplication (maybe passing through a logaritm in order to have the factor comprised between 0 and 1) or by some kind of sum (given the fact that StDev will be in the same order of magnitude than the average)...

The AAS (that I would however not use within scoring for individual teams) would simply imply that low number of team members = less chance for an high score, but it would not be symmetrical. Meaning that if you said 5 is the "optimum", when you fly in 9 you should have a penalisation, and not simply a more "limited advantage".

About the consistency of teams, it depends - as always - from the parameters. For giving an idea of the model (not of the real figures): for each pilot of a team that fly at least 50% of the tasks and reach the finishline, 10 points would be awarded to the team. In this way there would be no advantage in "not racing" but there would be all advantages in racing as much as you can.
Image

Post Reply