Программа равномерно распределяет субъекты по объектам, учитывая ограничения на владение и приоритет субъектов. Необходимо для запуска
- Импортировать проект в IDEA (Import project)
- Выбрать Import project from external model -> SBT
- Далее, на следующей странице Finish, в диалоговом окне OK
- Правой кнопкой либо по папке с тестами, либо по файлу с тестами -> Run
Предусловие: параметр reallocationResistance. Чем больше параметр, тем устойчивей будет сохраняться предыдущее распределение. При нулевом reallocationResistance состояние между перераспределениями не сохраняется.
Процесс поиска оптимального распределения:
- Производится разделение субъектов по приоритетам
- Для каждой группы в порядке приоритета проиизводятся следующие действия
- Находятся объекты, участвующие в распределении
- Для каждого объекта определяется множество субъектов, на него претендующих
- Производится перебор решений, для каждого возможного распределения расчитывается коэффициент оптимальности, и из всех выбирается распределение с наилучшим коэффициентом
- Распределения для субъектов различных приоритетов объединяются
Добавление и удаление субъектов: при добавлении у удалении субъектов производится поиск нового распределения, с учетом старого. При прочих равных предпочтение отдается такому распределению, к которому можно перейти за меньшее количество назначений и снятий владений