2013-03-08 2 views
4

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

Проблема заключается в том, чтобы устраивать n wifi-маршрутизаторы, чтобы свести к минимуму самое длинное расстояние между любым домом и ближайшим Wi-Fi маршрутизатором. Я могу предположить, что дома расположены в одномерном пространстве. Мне присваивается положение домов как расстояние от начальной точки, а позиции указаны в отсортированном порядке. Кроме того, я должен решить эту проблему в O (m log L), где m - количество домов, а L - максимальное положение, которое может быть задано.

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

+0

Не зависит от 'n'? Кроме того, вы можете предположить WLOG, что все метры расположены в доме или на полпути между двумя домами. – Antimony

+0

Я думал, что странно, что не было никакой зависимости от «n». Я понял, что LOG должен был дать мне способ упростить расстояния, но я не могу понять, как это сделать, исходя из сложности L. –

+0

Являются ли точки, по которым вы можете разместить маршрутизаторы на дискретных или непрерывных? –

ответ

1

Подсказка.

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

Теперь найдите самое большое расстояние, которое использует не более n маршрутизаторов.

+0

Алгоритм, о котором вы думаете (если это возможно), дает существование решения, но не фактические координаты для него. –

+0

«Легкая» функция, я думаю, он ссылается на определение «минимума», жадно вычисляя размещение маршрутизатора, которое может быть возвращено с помощью счетчика. Что меня подвешивает, так это то, может ли жадный алгоритм пропустить истинный минимум. – phs

+0

@phs Вы можете использовать индукцию, чтобы разрешить эту деталь. Я намеренно оставляю работу в своем описании, потому что считаю, что это домашнее задание. – btilly

Смежные вопросы