Открытое пространство, находящееся алгоритм оптимизации

В результате изменений в компании мы должны перестроить наш находящийся план: одна комната с 10 столами в нем. Некоторые столы более популярны, чем другие для количества причин. Одно решение состояло бы в том, чтобы потянуть число стола из шляпы. Мы думаем, что существует лучший способ сделать это.

У нас есть 10 столов и 10 человек. Позволяет дают каждому человеку в этом конкурсе 50 гипотетических маркеров для предложения цены за столы. Нет никакого предела того, сколько Вы предлагаете на одном столе, можно поместить все 50, которые сказали бы, что "Я хочу сидеть только здесь, период". Можно также сказать, что "Я не забочусь" путем предоставления каждому столу 5 маркеров.

Важное примечание: никто не знает то, что делают другие люди. Все должны решить базирующийся только на его интересах (звучит знакомым?)

Теперь позволяет, говорят, что мы получили эти гипотетические результаты:

#  | Desk# >| 1  | 2  | 3  | 4  | 5  | 6  | 7  | 8  | 9  | 10 |
1  | Alise  | 30 | 2  | 2  | 1  | 0  | 0  | 0  | 15 | 0  | 0  | = 50
2  | Bob    | 20 | 15 | 0  | 10 | 1  | 1  | 1  | 1  | 1  | 0  | = 50
   ...
10 | Zed    | 5  | 5  | 5  | 5  | 5  | 5  | 5  | 5  | 5  | 5  | = 50

Теперь, то, что мы должны найти, - то, что один (или больше) конфигурация (конфигурации), которая дает нам максимальную удовлетворенность (т.е. люди получают столы, которые они хотели принять во внимание все предложения и максимизировать на общем количестве группы. Естественно предположение - больше, каждый предложил цену на столе, больше он хочет это).

С тех пор существует только 10 человек, я думаю, что мы можем грубая сила это изучающий все возможные конфигурации, но я задавался вопросом это, там лучший алгоритм для решения этого вида проблем?

5
задан Georgy Bolyuba 11 June 2010 в 13:17
поделиться

2 ответа

Вы, кажется, смотрите на Задачу присвоения, которая может быть решена с помощью Венгерского алгоритма. Это хорошо изученная проблема, и вы, вероятно, найдете код в Интернете, готовый к использованию.

В Вашем случае Вы можете использовать стоимость = 50 - ставка и использовать вышеуказанное (любое решение проблемы назначения).

3
ответ дан 15 December 2019 в 06:16
поделиться

Еще быстрее, если у вас есть Excel, вам также должна быть доступна версия SOLVER. Просто настройте свою матрицу ставок (10x10 со ставками), матрицу назначения (10x10 с назначениями 0/1), используйте sumproduct (ставки, назначения) для вычисления значения назначения, сделайте это своей целевой функцией и добавьте ограничения, чтобы только одно назначение людей столам и столам людям. Убедитесь, что у вас отмечены опции> поле «линейная модель» и «принять неотрицательное значение» и приступайте к решению! Я только что поставил образец проблемы 10x10 - вроде работает нормально.

0
ответ дан 15 December 2019 в 06:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: