zodo / allocation-problem-test

Тестовое

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Задaча кoллективнoго влaдения

Описание

Программа равномерно распределяет субъекты по объектам, учитывая ограничения на владение и приоритет субъектов. Необходимо для запуска

Запуск

  1. Импортировать проект в IDEA (Import project)
  2. Выбрать Import project from external model -> SBT
  3. Далее, на следующей странице Finish, в диалоговом окне OK
  4. Правой кнопкой либо по папке с тестами, либо по файлу с тестами -> Run

Описание принципа работы

Предусловие: параметр reallocationResistance. Чем больше параметр, тем устойчивей будет сохраняться предыдущее распределение. При нулевом reallocationResistance состояние между перераспределениями не сохраняется.

Процесс поиска оптимального распределения:

  1. Производится разделение субъектов по приоритетам
  2. Для каждой группы в порядке приоритета проиизводятся следующие действия
  • Находятся объекты, участвующие в распределении
  • Для каждого объекта определяется множество субъектов, на него претендующих
  • Производится перебор решений, для каждого возможного распределения расчитывается коэффициент оптимальности, и из всех выбирается распределение с наилучшим коэффициентом
  1. Распределения для субъектов различных приоритетов объединяются

Добавление и удаление субъектов: при добавлении у удалении субъектов производится поиск нового распределения, с учетом старого. При прочих равных предпочтение отдается такому распределению, к которому можно перейти за меньшее количество назначений и снятий владений

About

Тестовое


Languages

Language:Scala 100.0%