Я пытаюсь перечислить несколько случаев сбоев для системы, над которой я работаю, чтобы упростить написание контрольных примеров. По сути, у меня есть группа «точек», которые связываются с произвольным числом других точек через «пути» данных. Я хочу придумать случаи сбоев в следующих трех сетах ...
- Набор 1 - Разбить каждый путь индивидуально (тривиально)
- Набор 2 - Для каждой точки P в системе разделите пути так, чтобы P полностью отрезался от остальной части системы (также тривиально)
- Набор 3 - Для каждой точки P в системе разбивайте пути так, чтобы система была разделена на две группы точек (A и B, исключая точку P), так что единственный способ добраться из группы A в группу B через точку P (т. е. я хочу, чтобы весь трафик данных в системе проходил через точку P, чтобы гарантировать, что он может идти в ногу). Если это невозможно для определенной точки, то ее следует пропустить.
Набор 3 - это то, с чем у меня проблемы. На практике системы, с которыми я имею дело, являются небольшими и достаточно простыми, чтобы я мог, вероятно, «перебрать» решение (как правило, у меня есть около 12 точек, каждая точка соединена с 1-4 другими точками). Однако мне было бы интересно найти более общий алгоритм для этого типа проблемы, если у кого-то есть какие-либо предложения или идеи о том, с чего начать.