Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Оптимальное соответствие

11K
26 апреля 2005 года
strlen
5 / / 26.04.2005
Задача такова:

имеются N туристов и K гостиниц. Необходимо разместить всех туристов в гостиницах.

Ограничения:
- туристы состоят из семей. Семья может состоять из одного или более человек.
- каждая гостиница имеет минимум и максимум вместительности (минимум означает, что хозяин гостиницы не согласен поселить меньше минимума)
- одна отдельно взятая семья обязана быть поселена в одну гостиницу

Также дано:
- общее количество свободных мест в гостиницах больше или равно количеству туристов
- всего M семей

Пример:
туристы: 1, 1, 1, 1, 1, 1, 4, 1, 1, 7, 1, 2, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 1, 1, 2
свободные места в гостиницах: [10], [2..6], [5..10], [11], [8], [12..17], [4], [1], [2] ,[1]

[10] - хозяин гостиницы согласен поселить у себя только 10 человек (не меньше и не больше)
[2..6] - хозяин гостиницы согласен поселить у себя от 2 до 6 человек

Как расселить туристов?

Разумееться речь идет об алгоритме, который потом можно будет применить на практике.

Если это уже известная проблема, то это, конечно, прекрасно. Если нет, подскажите как подобную проблему можно решить.
Заранее благодарен за любую помошь.
247
27 апреля 2005 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by strlen
Задача такова:

имеются N туристов и K гостиниц. Необходимо разместить всех туристов в гостиницах.

Ограничения:
- туристы состоят из семей. Семья может состоять из одного или более человек.
- каждая гостиница имеет минимум и максимум вместительности (минимум означает, что хозяин гостиницы не согласен поселить меньше минимума)
- одна отдельно взятая семья обязана быть поселена в одну гостиницу

Также дано:
- общее количество свободных мест в гостиницах больше или равно количеству туристов
- всего M семей

Пример:
туристы: 1, 1, 1, 1, 1, 1, 4, 1, 1, 7, 1, 2, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 1, 1, 2
свободные места в корпусах: [10], [2..6], [5..10], [11], [8], [12..17], [4], [1], [2] ,[1]

[10] - хозяин гостиницы согласен поселить у себя только 10 человек (не меньше и не больше)
[2..6] - хозяин гостиницы согласен поселить у себя от 2 до 6 человек

Как расселить туристов?

Разумееться речь идет об алгоритме, который потом можно будет применить на практике.

Если это уже известная проблема, то это, конечно, прекрасно. Если нет, подскажите как подобную проблему можно решить.
Заранее благодарен за любую помошь.


Переборчик, возвратный алгоритм и т.д.

488
27 апреля 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by wanja
Переборчик, возвратный алгоритм и т.д.

Кроме этого, сперва нужно бы вычеркнуть те гостинницы и группы, которые "соответствуют" друг другу. Т.е. группа состоит из 4 человек и в гостиннице 4 свободных мест.

И нужно бы упорядочить гостинницы и группы в порядке убывания численности.

11K
27 апреля 2005 года
strlen
5 / / 26.04.2005
Спасибо за ответы.

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

Есть также более простая задача о суммах подмножеств - без нее вообще никуда.

Только как это все объеденить воедино и решить данную задачу?

Может кто поможет с общим алгоритмом? На чем основываеться последовательность выбора, например?
11K
28 апреля 2005 года
strlen
5 / / 26.04.2005
Люди, кто-то знает как решается задача о нескольких рюкзаках?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог