Давненько я не писал, но недавно мне вдруг пришла в голову мысль, ее удалось реализовать, и я получил очень интересный, с моей точки зрения, результат. Этим результатом я и хотел поделиться с Вами коллеги, возможно, кому-то он будет интересен.
Дело касается тренировки молодежи ветеранами, если у Вас в команде достаточно сильных ветеранов, которые с вероятностью 100% могут натренировать всю молодежь, которую Вы хотите натренировать – эта статья не для Вас. Эта статья для тех, у кого есть ветераны и юниоры, но вероятности проведения тренировок меньше 100% и Вы сомневаетесь, как распределить ресурсы ветеранов с максимальной эффективностью.
Я покажу как можно оптимизировать процесс тренировки имея несколько ветеранов и несколько тренируемых игроков таким образом, чтобы получить максимальный суммарный эффект от тренировки. Т.к. математиков у нас немного, рассказывать я буду не общий абстрактный случай, а частный пример – оптимизация тренировок в моей команде.
Итак, на момент написания статьи я имею 7 веников:
Имя Сила Позиция
Отен 62 RD/CD
Мармар 67 LM/CM
Повел 68 RF/RM
Салем 78 CM/LM
Крус 85 CM/CF
Чжуй 86 CD/CM
Колпэк 95 CF/RF
3 юниора:
Имя Сила Позиция
Болин 48 LD/LM
Капитан 81 CM/RM
Грабнер 76 CM/RM
Учитывая, что процент успешной тренировки = (Сила ветерана / Сила тренируемого) – 0.3, составим таблицу процентов успешной тренировки для каждой пары тренируемый-ветеран. Получиться что-то вроде этого:
|
Юниоры |
Болин |
Капитан |
Грабнер |
Старики |
|
48 |
81 |
76 |
Отен |
62 |
0.99 |
x |
x |
Мармар |
67 |
1.00 |
0.53 |
0.58 |
Повел |
68 |
1.00 |
0.54 |
0.59 |
Салем |
78 |
1.00 |
0.66 |
0.73 |
Круз |
85 |
1.00 |
0.75 |
0.82 |
Чжуй |
86 |
1.00 |
0.76 |
0.83 |
Колпэк |
95 |
1.00 |
0.87 |
0.95 |
Так же в таблице учтены возможности тренировки ветаранами, учитывая их позиции. Если ветеран не может тренить молодого - в соответствующей клетке ставим крест. Далее нам необходимо определить важность получения спецухи (бала силы, совмещения) каждого тренируемого. Это возможно сделать различными способами – узнать насколько он подорожает после тренировки, а проще воспользоваться своей экспертной оценкой. В моем случае самым важным юниором является Хесус Капитан, он 2-ой по силе игрок лиги в своем возрасте, Грабнер тоже хорош, но от Капитана серьезно отстает и по силе и по количеству спецух, что касается Болина, то это только начинающий юниор и что из него выйдет пока непонятно. Я определил коэффициент важность получения спецухи для каждого таким образом:
Имя Коэффициент важности
Болин 0.7
Капитан 1
Грабнер 0.85
Далее составим приведенною таблицу, в которой будут указаны приведенные вероятности удачной тренировки (вероятность из 1-ой таблице, умноженной на коэффициент важности для данного игрока) получаем:
|
Юниоры |
Болин |
Капитан |
Грабнер |
Старики |
|
48 |
81 |
76 |
Отен |
62 |
0.69 |
x |
x |
Мармар |
67 |
0.70 |
0.53 |
0.49 |
Повел |
68 |
0.70 |
0.54 |
0.51 |
Салем |
78 |
0.70 |
0.66 |
0.62 |
Круз |
85 |
0.70 |
0.75 |
0.70 |
Чжуй |
86 |
0.70 |
0.76 |
0.71 |
Колпэк |
95 |
0.70 |
0.87 |
0.81 |
Дальше начинается непосредственно оптимизация с помощью итерационного алгоритма оптимизации транспортной задачи. Об этом можно почитать:
Вкратце: этот алгоритм сводиться к выбору некого начального решения и дальнейшей процедуре улучшения этого решения до тех пор, пока улучшение возможно. Степень оптимальности текущего решения определятся с помощью оптимизационной функции (ОФ), для которой мы должны найти максимальное значение. Продолжение
|