Задача заключается в построении графа-описания схемы боя: 3 мушкетёра против 6 гвардейцев (вдвое больше). По условиям
- Athos сражается с 1 гвардейцем
- Portos — с 3 гвардейцами
- Aramis — с оставшимися 2 гвардейцами
Поэтому граф будет двудольным (мушки и гвардейцы) с соответствующим числом ребер.
Что именно будем строить
- Левое множество вершин: Мушкетёры = {Athos, Portos, Aramis}
- Правое множество вершин: Гвардейцы = {G1, G2, G3, G4, G5, G6}
- Ребра соединяют мушкетёров с теми гвардейцами, с кем они борются:
- Athos — с G1
- Portos — с G2, G3, G4
- Aramis — с G5, G6
ASCII-рисунок графа
Мушкетёры Гвардейцы
Athos ---- G1
Portos ---- G2
Portos ---- G3
Portos ---- G4
Aramis ---- G5
Aramis ---- G6
Граф можно представить и в виде списка соседей:
- Athos: {G1}
- Portos: {G2, G3, G4}
- Aramis: {G5, G6}
- G1: {Athos}
- G2: {Portos}
- G3: {Portos}
- G4: {Portos}
- G5: {Aramis}
- G6: {Aramis}
Уточнение: это один из множества возможных вариантов распределения. Любые замены номеров гвардейцев (например Athos может сразиться с G4 вместо G1 и т. д.) приводят к эквивалентной схеме.
Фактический чертёж графа в формате Graphviz (DOT)
Если хотите получить аккуратное изображение графа в графическом редакторе, можно использовать следующий DOT-код:
digraph battle {
node [shape=ellipse, fontsize=12];
Athos [label="Athos"];
Portos [label="Portos"];
Aramis [label="Aramis"];
G1 [label="G1"];
G2 [label="G2"];
G3 [label="G3"];
G4 [label="G4"];
G5 [label="G5"];
G6 [label="G6"];
Athos -> G1;
Portos -> G2;
Portos -> G3;
Portos -> G4;
Aramis -> G5;
Aramis -> G6;
}
Как использовать
- Вставьте этот код в любой инструмент Graphviz (например, http://www.webgraphviz.com/), получите визуальное изображение графа.
- При желании можно изменить названия вершин (например заменить G1..G6 на конкретные имена гвардейцев) и получить персональную схему.
Краткое объяснение подхода
- Поскольку численность гвардейцев вдвое больше, чем мушкетёров (6 против 3), распределение боёв задаётся как: Athos − 1, Portos − 3, Aramis − 2.
- Граф здесь является двудольным. Ребра показывают, какие конкретно противники находятся под управлением каждого мушкетёра.
- Это простая модель соприкосновений и её легко расширить: можно менять распределение боёв, добавлять или удалять вершин, сохраняя идею bipartite графа.
Если хотите, могу привести ещё одну версию графа с другим распределением номеров гвардейцев или сделать компактное графическое изображение.