Попытка запланировать людей на несколько встреч - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь написать программу на python, чтобы помочь с нашим набором греческих кадров в нашем университете, и у меня возникли проблемы с поиском алгоритма, позволяющего людям посещать разные дома наиболее эффективным способом. Для удобства чтения я собираюсь описать проблему с точки зрения людей, посещающих презентации с рядом докладчиков.

Скажем, у меня есть мероприятие с 7 докладчиками, которые проводят презентации, и есть 4 последовательных временных интервала для презентаций. Для каждого временного интервала все 7 докладчиков будут проводить свои индивидуальные презентации. Присутствуют 100 человек, каждый со своими встречами, которые они хотят посетить. Некоторые люди могут посещать только 1, 2 или 3 собрания, в то время как другие хотят посетить 4. После того, как человек посетил все собрания, которые он хочет, он уходит. Как лучше всего составить расписание для этих людей с учетом этих требований:

1) У каждого запланировано собрание в первом временном интервале, и в течение дня минимальное ожидание (ie. Человек только 2 или 3 собрания имеют минимальные или в идеале нет пустых мест между встречами)

2) Количество людей на каждой встрече для докладчика (не временного интервала) настолько сбалансировано, насколько возможно возможно . Например, если у докладчика есть 60/100 человек, желающих набрать go на свою встречу, постарайтесь сбалансировать как можно более близкие 15 человек на время / интервал.

Примечание: требование 1) имеет приоритет над требованием 2). Кроме того, я понимаю, что приоритет 2) не будет сильно удерживаться, так как люди уходят между каждым временным интервалом.

Я пытался решить эту проблему с помощью какого-то рода планирования приоритетов, когда люди с меньшим количеством встреч планируются первыми, и докладчики с меньшим количеством людей, посещающих их собрания, сначала планируют свою аудиторию. Когда я пытаюсь выполнить это на примере, хотя всегда возникает необходимость переназначить кого-то, чтобы приспособиться, и в настоящее время я пытаюсь найти способ реализовать это. Я думаю, что я мог бы что-то упустить в моем подходе, хотя.

Я включил изображение части автоматически сгенерированного расписания, которое соответствует требованию 2), но игнорирует требование 1). Буквы AG представляют докладчиков

Образец расписания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...