Логика работы формулы подсчета очков на парапланерных соревнованиях

Статья Сергея Донцова о подсчете очков на соревнованиях по формуле GAP2014 с учетом параметра FTV

Очень часто у пилотов-парапланеристов возникают вопросы, касающиеся алгоритма расчета количества очков на соревнованиях. Например, почему иногда лидер по дню получает ровно 1000 очков, а иногда меньше? Почему некоторым пилотам, долетевшим до финиша, не начисляются очки за время? Наконец, что такое FTV и как подсчитывается суммарное количество очков за все дни соревнований с учетом этого параметра?

Чтобы ответить хотя бы на часть из этих вопросов, я решил сам разобраться в логике подсчета очков по формуле GAP2014 и поделиться своими знаниями и размышлениями с вами.

Основным источником информации для написания данной статьи является официальное описание формулы на английском языке, которое можно найти по ссылке: http://www.fai.org/downloads/civl/SC7_GAP

Также в своем исследовании я обратился к работе Петра Позднякова под названием «Русский GAP», которая оказалась у меня в руках шесть лет назад в виде html-файла. И хотя в ней автор довольно кратко описал основы подсчета очков, для ускоренного изучения материала она вполне подходит.

И, наконец, третьим источником информации стали форумы как на официальном сайте http://fs.fai.org/forum/ , так и на paraglidingforum.com.


1. За какие заслуги пилот на соревнованиях получает очки?

По завершении летного дня результаты сводятся в турнирную таблицу, пример которой вы можете видеть ниже (часть таблицы первого дня ЧР2016).

В последних четырех столбцах таблицы 1 -  Dist.Points, Lead.Points, TimePoints и Total указаны очки  за пройденную дистанцию, очки за время, очки за лидерство по маршруту и их итоговая сумма соответственно. Кроме того, дополнительно очки могут начисляться программой за ранний старт и/или за ранний финиш, для чего в меню «расширенные настройки» формулы  (рис.1) эти параметры помечаются как активные перед началом соревнований. Однако по умолчанию начисление очков за ранний старт и ранний финиш на парапланерных соревнованиях не используются, поэтому опустим их рассмотрение.

Возникает вопрос: какова причина начисления пилоту Алексею Коробкову (таблица 1) за пройденную дистанцию именно 422.4 очка, за время преодоления дистанции - 476.5 очков, а за лидерство по маршруту - 101.1очков?

Перед распределением очков программа FsComp проводит довольно большую подготовительную работу, детальное описание которой представлено ниже.


2 Определение TaskValidity


Схематично последовательность действий представлена на рисунке 2. В настоящей статье будут рассматриваться только те пункты, которые обведены в красный прямоугольник, подразумевая тем самым, что читатель знаком с такими понятиями, как номинальная дистанция, номинальное время и другие параметры, задаваемые перед началом соревнований.



Предварительно определяется параметр TaskValidity, напрямую влияющий на максимальное количество очков, которое можно получить за летный день. TaskValidity  изменяется в пределах от 0 до 1.  Максимально возможное суммарное количество очков за день будет равно:

Max_Очков = TaskValidity  × 1000         (1)

Параметр TaskValidity определяется как произведение:

TaskValidity = LaunchValidity × TimeValidity × DistanceValidity (2)

Каждый множитель формулы (2) определяется математически следующим образом:

LaunchValidity – это валидность старта, значение которого зависит от количества стартовавших пилотов, по отношению к общему количеству присутствующих участников на старте.

Если стартуют практически все пилоты, то валидность будет равна 1. Опасные метеоусловия могут повлиять на решение ряда парапланеристов, например, половины от присутствующих на старте, не  лететь – в таком случае валидность старта будет иметь значение равное 0,5 и, в конечном итоге, очков взлетевшим пилотам будет начислено меньше, чем при благоприятных метеоусловиях со стопроцентным стартом всех присутствующих пилотов на старте.

Математически это выглядит  так:

КСП - количество стартовавших пилотов;
КУС – количество участников на старте;
NL- NominalLaunch – номинальное количество стартовавших пилотов, параметр, который задается в настройках формулы. По умолчанию, NominalLaunch равен 96%.

Далее параметр LVR приводится к  виду кубической гиперболы через формулу


LaunchValidity = 0,027×LVR + 2,917×LVR 2 - 1,944×LVR3 (4)


На графике 1 изображена кривая значений LaunchValidity для случая, когда NominalLaunch=96%.

Из сказанного выше можно сделать следующие выводы:

Во-первых, от числа стартовавших пилотов напрямую зависит количество очков, которые получат взлетевшие пилоты. Например, если NominalLaunch=96%, а по причине плохой погоды стартует только половина пилотов, то лидер в самом лучшем случае получит около 530 очков, потому что LaunchValidity будет равен 0,53.

Во-вторых, если  Главный судья  решит принять значение параметра NominalLaunchравное 50%, и при этом в один из дней взлетит только около половины пилотов, то самый быстрый из этой смелой части парапланеристов (в данном случае – «безумной»)  может получить 1000 очков за летный день. Но этот факт может провоцировать менее опытных пилотов лететь в опасных для них метеоусловиях, подогреваемых желанием  получить большее количество очков.

И, в-третьих, необходимо внимательно следить за параметром «количество участников на старте». В случае физического недомогания не стартовавшему  пилоту  необходимо присвоить статус ABS! Такой парапланерист не будет включен в число «количество участников на старте» в данный день, что не повлияет на значение валидности старта, и не снизит результаты здоровых пилотов. Статус DNF  присваивается только тем парапланеристам, которые не полетели по причине опасных метеоусловий или иных причин, связанных со спортивной частью соревнований.

TimeValidity - валидность времени прохождения таска.

Числовое значение TimeValidity определяется достаточно просто. Сравнивается отношение значения лучшего время прохождения дистанции  к ранее установленному значению номинального времени с единицей (в случае отсутствия долетевших пилотов до конца скоростного участка сравнивается отношение значения лучшей дистанции по летному дню к значению номинальной дистанции с единицей).


ЛВД – лучшее время прохождения спидсекции по дню,

ЛДД – лучшая дистанция по дню.


Затем, как и в случае с валидностью старта, этот параметр приводится к кубической форме (только с другими коэффициентами).

TimeValidity = max(0,-0,271 + 2,912×TVR - 2,098×TVR 2  + 0,457×TVR3 (6)


На графике 2 изображена кривая значений TimeValidity


Выводы.


Если лидер соревнований пролетел всю дистанцию за время равное или меньшее, чем 10% от номинального времени, то значение TimeValidity будет равно нулю и, следовательно, летный день в целом будет нулевой по очкам! Если же время полета лидера превысит предустановленное номинальное время, то числовое значение валидности времени будет равно единице.

Такой подход к определению значения валидности времени, по всей вероятности, минимизирует фактор случайности на коротких (быстрых) тасках.

Расчет значения DistanceValidity несколько сложнее, чем для параметров, рассмотренных ранее.


а) подсчитывается суммарный перелет всех участников за пределы  L0


СПL0 =∑max(0, ДУ -L0 ) (7),   где


СПL0 – суммарный перелет L0,ДУ – дистанция участника


б) Затем определяется параметр, зависящий от заранее предустановленных значений и лучшей дистанции по дню

NomGoal  – номинальное количество финишировавших пилотов,NomDist – номинальная дистанция,ЛДД – лучшая дистанция по дню.

в) в итоге  рассчитывается  параметр DVR по следующей формуле


СПL0 – суммарный перелет L0,КСП – количество стартовавших пилотов;

г) параметр DistanceValidity уже не приводится к кубическому виду, его  максимальное значение ограничивается  единицей, даже если  расчетное значение DVR превысило число один.

DistanceValidity = min(1,DVR)


Здесь выводы более интересные, чем в предыдущих случаях.

Первый множитель в формуле

- это не что иное, как среднее расстояние, которое пролетели пилоты в данный день свыше L0. Если значение среднего расстояния больше, чем подсчитанный NomDistArea, то валидность дистанции будет равна единице.

Но вот что еще интересного можно тут увидеть. Предположим, что номинальную дистанцию на соревнованиях установили в 50 км, минимальную (L0) в 5 км, а номинальный финиш 30%. Но из-за слабых метеоусловий дистанцию в один из дней решили установить короткую, километров в 40 (меньше номинальной дистанции). Однако пилоты на соревнованиях оказались подготовленные и все прилетели на финиш.


В таком случае, среднее расстояние свыше L0, пройденное в этот день, будет (40-5)=35 км.



тогда DistanceValidity=1!


Иначе говоря, даже если поставленная задача будет короче номинальной дистанции, лидер все равно может получить 1000 очков! Однако, для этого почти все пилоты должны прилететь на финиш или пролететь большую часть дистанции за время, превышающее номинальное время!

Реального примера такого случая на момент написания статьи я не нашел, поэтому создал его искусственно: взял первый таск с ЧР2016 (дистанция 52,6 км), установил параметр NomDist равное 55 км и всем пилотам, которые не долетели до финиша, поставил статус ABS. В итоге лидер по дню все равно получил 1000 очков.

Для получения лидером 1000 очков, вовсе не обязательно, чтобы на финиш прилетело 15 (20, 30 или сколько вы сами поставите)% участников (параметр NomGoal). Даже если прилетит один человек, он все равно может получить максимум. Или, напротив, прилетят почти все, лидер тоже может получить 1000, несмотря на ошибочное мнение, что день «был слишком тяжелым или легким»!

Давайте обобщим сделанные выводы. Для того, чтобы лидер по итогам летного дня мог получить 1000 очков, необходимо следующее:

1) Доля  стартовавших пилотов составила более 96% (или сколько вы сами установите) от числа участников, присутствующих на старте.2) Лидер летел дольше номинального времени (не важно, на 1 минуту, или на час)3) Среднее расстояние за вычетом L0, пройденное пилотами должно превышать значение параметра  NomDistArea

Во время проведения соревнований, при опубликовании результатов ниже основной таблицы с результатами по летному дню со списком участников, выводится таблица с промежуточными расчетами, в которой можно найти значения LaunchValidity, TimeValidity, DistanceValidity

Task statistics


Однако, взглянув  на таблицу с результатами любого дня на Чемпионате Мира или Европы, вы увидите, что количество очков у лидера соревнований практически всегда меньше 1000. Дело в том, что на таких соревнованиях большая группа участников летит на очень близком расстоянии друг от друга и часто лидер по маршруту меняется. А в финале маршрута вырывается пилот, который висел «на хвосте» у толпы. В итоге, максимальное количество очков за лидерство получает один пилот, а второй – максимальное количество очков за скорость. (Расчет максимальных очков за скорость, время и лидерство будет рассмотрено в следующем разделе)

На соревнованиях рангом ниже, часто пилот, лидирующий на протяжении всего маршрута, первым же прилетает на финиш, зарабатывая, тем самым, ровно 1000 очков.


3 Подсчет весовых коэффициентов за дистанцию, время и лидерство

После определения TaskValidity (и что практически тоже самое – суммарного количества очков за день) программа распределяет эту сумму на три (для парапланерных соревнований) неравные части: очки за дистанцию, скорость и лидерство по маршруту.

Такое распределение очков – следующий крупный блок работы программы, ключевым параметром которого является отношение финишировавших пилотов к количеству стартовавших пилотов. Уже на его основе вычисляются весовые коэффициенты за дистанцию, время и лидерство по маршруту.

КФП – количество финишировавших пилотовКСП - количество стартовавших пилотов;

«Весовой коэффициент за дистанцию» - это процент очков, который будет дан лидеру за дистанцию от общего суммарного количества очков, которое было подсчитано ранее по формуле (1). Так если весовой коэффициент за дистанцию будет равен 0,5, а TaskValidity =1, то пилоты, долетевшие до финиша, получат 500 очков за дистанцию и еще 500 суммарно за время и лидерство.

С математической точки зрения это выглядит так:


ВКД=0,9 - 1,665×GoalRatio + 1,713×GoalRatio2 - 0,587×GoalRatio3 (12), где

ВКД – весовой коэффициент за дистанцию.
ВКЛ – весовой коэффициент за лидерство по маршруту.

Весовой коэффициент за время определяется совсем просто


ВКВ=1 - ВКЛ - ВКД

ВКВ – весовой коэффициент за время прохождения дистанци

Графически, значения весовых коэффициентов представлены на графике 3

Количество очков, которое будет начислено лидеру за дистанцию, время и лидерство по маршруту будет определяться по следующим формулам:


Очки_за_дистанцию_лидера = ВКД × TaskValidity × 1000 (15),

Очки_за_время_лидера = ВКВ × TaskValidity × 1000 (16),

Очки_за_лидерство_лидера = ВКЛ × TaskValidity × 1000 (17).


Из рассмотренных выше формул становится понятно, почему лидеру очков за дистанцию начислено 422.4, за время - 476.5, а за лидерство по маршруту - 101.1. Потому что ВКД был равен 0,4224, ВКВ – 0,4765, а ВКЛ – 0,1011.


Сделаем окончательные выводы:


1) Лидер по дню (если он лидировал по маршруту и первым прилетел на финиш) получит следующее количество очков: TaskValidity ×1000, и не имеет значение, какое число пилотов финишировало вслед за ним. Если лидер прилетит на финиш один, он получит больше очков  за дистанцию и меньше за время. Если же прилетят на финиш почти все пилоты, то очков за дистанцию они получат мало, а вот за время и лидерство чемпион получит много. Однако максимальная сумма очков все равно у лидера останется заранее предопределенной формулой 1!


2) Максимальное количество очков за дистанцию равно 900. Происходит это в том случае, если долетевших до финиша нет и параметр GoalRatio равен нулю, а весовой коэффициент за дистанцию равен 0,9. При этом весовой коэффициент за лидерство будет равен 0,0175. В этом случае можно получить максимальное число очков за лидерство 17,5.


Весовой коэффициент за время будет равен 0,0825. Но напомню, что на парапланерных соревнованиях по умолчанию очки за время не начисляются, если пилот не долетает до финиша, поэтому в самом лучшем случае, если никто не долетел до финиша, лидер может получить 918 очков (точнее 917,5, но программа округляет очки до целых чисел).

Весовые коэффициенты и максимально возможные очки за дистанцию, время и лидерство по маршруту можно увидеть в таблице с промежуточными расчетами:


Task statistics


4 Начисление очков остальным пилотам


Рассмотрим следующий блок расчетов – «начисление очков остальным пилотам».

Все пилоты, прилетевшие на финиш, получат одинаковое количество очков за дистанцию.

Количество очков за расстояние у пилотов, которые не долетели до финиша, будет прямо пропорционально расстоянию, которое они пролетели по отношению к лучшей дистанции по дню. Или если быть более точным:


ДП – дистанция, которую пролетел пилот,ЛДД – лучшая дистанция по дню.

Лучшая дистанция по дню будет равна длине поставленной задачи, если хоть один пилот долетел до финиша (и даже если он случайно или специально полетит дальше). Никаких сложных вычислений в GAP2014 для расчетов очков за дистанцию в парапланерных соревнованиях не используется.

В качестве примера возьмем результаты второго дня ЧР2016. Дистанция была 57,41 км. Пилоты, долетевшие до финиша, получили по 492,8 очков за дистанцию. Пилот, пролетевший 48,63км, получил 417,4, а пилот, пролетевший 25,5 км – 218,9 очков.

Количество очков, которое получит самый быстрый пилот, определяется по формуле. Все остальные пилоты будут получать меньше очков по следующей зависимости:

ВП – время, за которое пилот пролетел скоростной участок,ЛВД – лучшее время прохождения спидсекции по дню,

Графическое отображение значений, рассчитанных по формуле, представлено на графиках.



Если время лидера 1 час, то пилот, прилетевший на финиш на час позже, очков за время уже не получит. Но если лидер летел 2 часа, то пилот, прилетевший за 3 часа (тоже на час позже лидера), уже какие то очки полу