В этой статье я преследую три цели: показать еще разок тем, кто не сталкивался с математической оптимизацией, как она может пригодиться при выборе из большого числа вариантов на примере назначения членам команды ролей для решения некоторых командных задач; проговорить для сообщества людей, работающих над развитием алтимата (или других процессов, функциональными единицами которых являются команды людей), некоторые полезные последствия стандартизации; ну и повысить узнаваемость алтимата, раз я по стечению обстоятельств над его развитием тоже работаю.
Алтимат — это отличная командная спортивная игра с летающей тарелкой, в России в нее играет несколько тысяч человек, есть своя федерация (тг‑канал), ведущие отечественные игроки и команды очень достойно выступают на международном уровне, но первостепенной задачей остается увеличение числа команд по всей стране. К вопросам стратегического развития алтимата я вернусь в конце статьи, а для более широкого круга читателей сначала, как и анонсировал, покажу небольшое упражнение по оптимизационному моделированию, которое может натолкнуть размышляющих над организацией командной работы на что-нибудь новенькое.
Рассмотрим спортивную команду, планирующую подготовку к соревнованиям. Будем говорить о любительском уровне, где помимо тонких материй не решено еще много вопросов. К примеру, не все игроки способны свободно выполнять определенные технические элементы. Процесс планирования разделим на три этапа: выбор приоритетов и постановка тактических целей, определение исполнителей в выбранных тактических построениях, и наконец формирование оптимального плана тренировок, подчиненного результатам первого этапа. Вопросы, решаемые на первом этапе, являются сложно формализуемыми, поэтому в данной статье мы не станем их рассматривать в деталях, а вместо этого будем исходить из того, что этапы планирования взаимосвязаны, и следовательно каждая из рассматриваемых на первом этапе альтернатив требует развертывания подчиненного ей плана второго и третьего этапа для определения перспектив и оценки ее результатов. Возможность оперативного построения такого плана упростит решение задачи первого этапа, а потом является достойной целью для исследований. В настоящей статье сконцентрируемся на втором этапе.
Задача выбора исполнителей
Предположим, что на на первом этапе определены
--- множество игровых тактик;
,
--- множество ролей в тактике
, положим
;
--- множество индивидуальных навыков или просто навыков;
,
--- множество навыков, необходимых для исполнения роли
;
--- множество игроков.
Считаем заданными параметры ,
,
, равные единице, если игрок
владеет навыком
и нулю в противном случае.
Введем бинарные переменные ,
,
,
, принимающие значение один, если игрок
назначается на роль
в тактике
и нулю в противном случае. С использованием данных переменных выпишем соотношение для переменных
,
, равных единице, если тактика
может быть реализована и нулю в противном случае.
Каждый игрок может быть задействован в рамках тактики лишь в одной роли:
При этом игрок не может быть задействован в роли, для которой необходимы навыки, которыми он не обладает:
Наконец, тактика не может быть реализована, если хотя бы для одной из ролей не нашлось исполнителя:
В качестве иллюстрации рассмотрим пример с комбинацией в игре алтимат фрисби. Зеленым отмечен игрок атаки владеющий диском, игроки защиты на схеме не отображаются для упрощения восприятия. Задача атакующих довести диск до голевой зоны, обозначенной светло-серой заливкой. Игроку, владеющему диском, по правилам запрещено перемещаться, поэтому игровой процесс со стороны атаки состоит в создании полевыми игроками возможностей передать диск далее.

Рассмотрим построение игроков, называемое диагональным стэком, и возможные варианты развития атаки из данного построения, отраженные на иллюстрациях. Предполагается поочередное создание возможностей для передачи от игрока 1 игроку 3 через его перемещение как на иллюстрации 1, либо игроку 4 как на иллюстрации 2, либо игроку 2 как на иллюстрации 3, если варианты с иллюстрации 1 и 2 не сработали. В каждом из этих вариантов далее действия игроков описываются двумя дальнейшими шагами, изображенными на иллюстрациях ниже. К примеру, ситуация на иллюстрации 1 развивается в ситуацию на иллюстрации 1.1, и далее 1.2.
Для простоты примера ограничимся навыками передачи и приема диска. Исходя из действий, требуемых от игроков в каждой из ситуаций, сформируем список навыков, требуемых на каждой из игровых позиций. Игрок 1 в ситуации 1.1 делает передачу вдоль поля на среднюю дистанцию; в ситуации 2.1 делает передачу поперек поля -- перевод диска; в ситуации 3 делает короткую передачу в руки набегающему игроку; в ситуации 2.2 ловит дальнюю диагональную передачу; в ситуации 3.2 ловит прямую передачу либо диагональную передачу на среднюю дистанцию.
В результате подобного анализа приходим к следующему списку необходимых навыков:
Роль | Навыки |
|---|---|
1 | 1.1 пас прямой; 2.1 пас перевод; 2.2 и 3.1 прием диагональный дальний; 3 пас короткий; 3.2 прием прямой; 3.2 прием диагональный средний |
2 | 3.1 пас диагональный дальний; 3.1 пас диагональный средний; 3 прием короткий |
3 | 1.2 и 3.2 пас прямой; 1.2 и 3.2 пас диагональный средний; 1.1 прием прямой; 3.1 прием диагональный средний |
4 | 2.2 пас прямой; 2.2 пас диагональный дальний; 2.1 прием перевода; 1.2 прием прямой; 1.2 прием диагональный средний |
Рассмотрим команду из пяти игроков со следующим состоянием навыков
Игрок 1 | Игрок 2 | Игрок 3 | Игрок 4 | Игрок 5 | |
|---|---|---|---|---|---|
пас прямой | + | + | + | + | + |
пас перевод | + | + | |||
пас короткий | + | + | + | + | + |
пас диагональный средний | + | + | + | + | |
пас диагональный дальний | + | + | |||
прием прямой | + | + | + | + | + |
прием перевод | + | + | + | + | |
прием короткий | + | + | + | + | + |
прием диагональный средний | + | + | + | + | |
прием диагональный дальний | + | + | + |
Внимательно изучив входные данные, можно прийти к заключению, что тактика "Диагональный стек" не может быть реализована в данном составе, поскольку Роль 1 может выполнять лишь Игрок 2, Игрок 1 не может выполнять ни одну из ролей, а Игрок 3 и Игрок 4 могут выполнять лишь Роль 3, поэтому для закрытия двух ролей - Роли 2 и Роли 4 - остается лишь один игрок - Игрок 5.
Чтобы определить минимальный набор навыков, требуемый к освоению для реализации тактики "Диагональный стек", введем дополнительные бинарные переменные ,
,
, равные единице, если при распределении ролей будем считать, что игрок
в дополнение к имеющимся навыкам освоил также и навык
.
Тогда ограничением
установим требование реализовать рассматриваемые тактики и зададимся целью минимизировать суммарное количество навыков, которые необходимо освоить
Оптимальное решение, возвращаемое моделью, выглядит следующим образом:
Диагональный стэк
Роль 1: Игрок 3
+ прием диагональный дальний
Роль 2: Игрок 5
Роль 3: Игрок 4
Роль 4: Игрок 2
На основе вывода модели приходим к решению предложить Игроку 3 освоить прием диагональный дальний, чтобы расширенный таким образом набор его навыков позволял ему выполнять Роль 1. При этом остальные игроки состава способны выполнять возложенные на них роли с их текущими наборами навыков.
Дальнейшие шаги и послесловие
Начинающие команды могут испытывать нехватку тренерских компетенций и игровых навыков, и частично справиться с этой задачей может помочь накопление и систематизация эффективных игровых приемов. Экспертное сообщество опытных игроков и тренеров способно сформулировать список игровых навыков, а также игровых тактик, разложив их на составные части, как в настоящей статье. Взяв готовые тактики и проведя внутреннюю аттестацию на предмет владения навыками, команда получит конкретный список индивидуальных задач, работа над которыми является уже менее абстрактной задачей, и может быть решена более эффективно людьми без надлежащего опыта. Целенаправленная работа над конкретными вопросами позволяет прогрессировать и отслеживать данный прогресс, а также, следует надеяться, будет способствовать закреплению игроков в командах.
На технических деталях настоящей работы я не останавливался, но пару слов скажу. Модель, описанная в статье, может быть решена с использованием бесплатных программных средств. Я пользовался пакетом JuMP для языка Julia, но альтернатив достаточно, в том числе и для других популярных языков. В рамках возможностей алгоритмов модель можно усложнять, что, правда, приведет и к росту объема необходимых для модели данных, которые чаще всего и становятся камнем преткновения. Спасибо за внимание, играйте в алтимат и оптимизируйте!
