добрый день всем
ситуация следующая: моей знакомой преподаватель задал тему - Алгоритм построения выпуклой оболочки множества точек методом случайного поиска.
Здесь я спросил про литературу по выпуклым оболочкам в
-мерном пространстве. Но, как выяснилось, этот метод придумал сам преподаватель, т.е. описания его нигде нет. Единственно, что есть на данный момент - это небольшое описание его со слов преподавателя:
http://www.box.net/shared/ke1cr70fx9. Записано абы как, т.к. преподаватель не стал объяснять и проверять записанное, т.е. там есть ошибки. Я не исключаю также, что метод сам по себе может быть ошибычным. Вообщем надеюсь с вашей общей помощью разобраться в хотя бы в суте метода и по ходу составить вопросы преподавателю. Думаю, что будет проще рассматривать двумерный случай, как частный случай, и если там окажутся какие-нибудь противоречия, можно будет сделать вывод, что метод неправильный.
Итак, ставится задача отыскаяния выпуклой оболочки для конечного множества
точек
-мерного евклидового пространства:
(заметим, что здесь первое отличие - в файле в самом начале описания самого алгоритма рассматривается
и
, но далее все векторы имеют
координат). Все гиперплоскости (отрезок при
, плоскость при
), являющиеся гранями искомой выпуклой оболочки предлагается искать в виде
, где
- какой-либо вектор в
-мерном пространстве.
Перед началом множество
преобразовывают с помощью параллельного переноса таким образом, чтобы его центр тяжести лежал в начале координат:
.
Шаг 1.Выбираем случайное направление: генерируем
случайных независимых величин, распределенных по нормальному закону с параметрами
:
и определяем нормированный вектор
- случайное направление в
. Затем вычисляем всевозможные скалярные произведения
, где
- вектор, имеющий начало в начале координат и конец в точке
исходного множества
. Из этих скалярных произведений выбирают максимальное положительное
. При этом почему-то утверждается, что такое
обязательно найдется для любого случайного направления, заданного вектором
.
Вопрос 1. Так ли это при условии центрирования множества
(т.е. когда центр тяжести лежит в начале координат)?
Далее утверждается, что уравнение 1-й гиперплоскости имеет вид
. Конечно, если мы подставим сюда вместо вектора
вектор
, то получим тождественное равенство, т.е. эта "гиперплоскость" проходит через точку
.
Вопрос 2. Но откуда следует, что она будет являться одной из искомых гиперплоскостей, являющихся границей выпуклой оболочки.
Далее шаг 2, который вообще плавает. Сначала с 1-м бы разобраться.
Приведу в конце рассуждения преподавателя, переданные в устной форме. Мы имеем множество точек. Задаем случайное направление, находим уравнение первой прямой (в двумерном случае) на шаге 1, и по нему перемещаем эту прямую до тех пор, пока не встретим точку на плоскости. Затем идут манипуляции с шага 2..
PS. Модераторам просьба не переносить тему в Computer science, т.к. на текущий момент необходимо разобраться с математической стороной вопроса.