Репозиторій git можна розглядати як частково впорядкований набір редакцій (де одна редакція є раніше, ніж інша в порядку, якщо вона є прямим або непрямим наступником попередньої). Часткові замовлення, які ви отримуєте з репозиторіїв git, мають тенденцію до низької ширини (розмір найбільшого набору взаємозалежних ревізій), оскільки ширина безпосередньо пов'язана з кількістю активних розробників та кількістю різних вилок, якими може працювати будь-який окремий розробник. на.
Виходячи з цього фону, я б запропонував теорему Ділворта , в якій сказано, що ширина будь-якого часткового порядку дорівнює мінімальній кількості ланцюгів (повністю упорядкованих підмножин), необхідних для покриття всіх версій. І щоб зробити це на темі для цієї дошки, ви можете також згадати алгоритми, що базуються на графіках, що базуються на обчисленні ширини та знаходження кришки мінімальною кількістю ланцюгів у поліноміальний час.
Один із способів, що це може бути актуальним для фактичного використання в Git, - це система візуалізації історії версій системи: більшість систем візуалізації Git, які я бачив, малюють час на вертикальній осі, і незалежні версії сховища по горизонталі, так що це дав би змогу організувати візуалізацію в невелику кількість незалежних вертикальних доріжок.
Крім того, якщо ви хочете чогось більш амбітного та передового, спробуйте структуру даних про дерева вин Demaine et al. , Яка безпосередньо мотивується вирішенням конфліктів у системах управління версіями, схожими на git.