добрый день всем
ситуация следующая: моей знакомой преподаватель задал тему - Алгоритм построения выпуклой оболочки множества точек методом случайного поиска.
Здесь я спросил про литературу по выпуклым оболочкам в
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
-мерном пространстве. Но, как выяснилось, этот метод придумал сам преподаватель, т.е. описания его нигде нет. Единственно, что есть на данный момент - это небольшое описание его со слов преподавателя:
http://www.box.net/shared/ke1cr70fx9. Записано абы как, т.к. преподаватель не стал объяснять и проверять записанное, т.е. там есть ошибки. Я не исключаю также, что метод сам по себе может быть ошибычным. Вообщем надеюсь с вашей общей помощью разобраться в хотя бы в суте метода и по ходу составить вопросы преподавателю. Думаю, что будет проще рассматривать двумерный случай, как частный случай, и если там окажутся какие-нибудь противоречия, можно будет сделать вывод, что метод неправильный.
Итак, ставится задача отыскаяния выпуклой оболочки для конечного множества
![$M$ $M$](https://dxdy-04.korotkov.co.uk/f/f/b/9/fb97d38bcc19230b0acd442e17db879c82.png)
точек
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
-мерного евклидового пространства:
![$M=(x_1, x_2,\ldots x_N)\subseteq E^n,x_i=(x_{i_1},x_{i_2},\ldots x_{i_n})$ $M=(x_1, x_2,\ldots x_N)\subseteq E^n,x_i=(x_{i_1},x_{i_2},\ldots x_{i_n})$](https://dxdy-01.korotkov.co.uk/f/c/9/c/c9c15f9eddd5e1d651f07ec009cdd73682.png)
(заметим, что здесь первое отличие - в файле в самом начале описания самого алгоритма рассматривается
![$E^d$ $E^d$](https://dxdy-04.korotkov.co.uk/f/b/f/a/bfa028ba44e2885d6f3733f7bc02549d82.png)
и
![$\dim M=d$ $\dim M=d$](https://dxdy-04.korotkov.co.uk/f/7/2/3/723cc978d03a856a79b2b40dbdb4852c82.png)
, но далее все векторы имеют
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
координат). Все гиперплоскости (отрезок при
![$n=2$ $n=2$](https://dxdy-02.korotkov.co.uk/f/d/a/6/da60d8ce586cf444dfc2735588ee6cab82.png)
, плоскость при
![$n=3$ $n=3$](https://dxdy-03.korotkov.co.uk/f/a/a/6/aa6905d780872f0007f642420d7a2d9c82.png)
), являющиеся гранями искомой выпуклой оболочки предлагается искать в виде
![$(a,x)=1$ $(a,x)=1$](https://dxdy-01.korotkov.co.uk/f/0/4/b/04b5d2d01501ed1f228d3ac8f6f4da9182.png)
, где
![$a$ $a$](https://dxdy-01.korotkov.co.uk/f/4/4/b/44bc9d542a92714cac84e01cbbb7fd6182.png)
- какой-либо вектор в
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
-мерном пространстве.
Перед началом множество
![$M$ $M$](https://dxdy-04.korotkov.co.uk/f/f/b/9/fb97d38bcc19230b0acd442e17db879c82.png)
преобразовывают с помощью параллельного переноса таким образом, чтобы его центр тяжести лежал в начале координат:
![$x^*=\displaystyle\frac{x_1+x_2+\ldots+x_N}{N},x_i\rightarrow x_i-x^*$ $x^*=\displaystyle\frac{x_1+x_2+\ldots+x_N}{N},x_i\rightarrow x_i-x^*$](https://dxdy-03.korotkov.co.uk/f/a/6/4/a642816c321a6f5002182c71deee1ec182.png)
.
Шаг 1.Выбираем случайное направление: генерируем
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
случайных независимых величин, распределенных по нормальному закону с параметрами
![$m_x=0,D_x=1$ $m_x=0,D_x=1$](https://dxdy-02.korotkov.co.uk/f/5/3/e/53edd05ef14605539a7eac1a73b20ad482.png)
:
![$a_1,a_2,\ldots a_n,r=\sqrt{a_1^2+a_2^2+\ldots+a_n^2}$ $a_1,a_2,\ldots a_n,r=\sqrt{a_1^2+a_2^2+\ldots+a_n^2}$](https://dxdy-03.korotkov.co.uk/f/e/8/4/e84fc703216984627e91ad7a1be0a7e882.png)
и определяем нормированный вектор
![$a=(\frac{a_1}{r},\frac{a_2}{r},\ldots \frac{a_n}{r})$ $a=(\frac{a_1}{r},\frac{a_2}{r},\ldots \frac{a_n}{r})$](https://dxdy-02.korotkov.co.uk/f/1/a/2/1a2b98ce33a6b1108267825d293221ee82.png)
- случайное направление в
![$E^n$ $E^n$](https://dxdy-02.korotkov.co.uk/f/9/a/e/9aef2a3a778a23ff6997ffaf4f98c2ef82.png)
. Затем вычисляем всевозможные скалярные произведения
![$(a,x_i),i=1,\ldots n$ $(a,x_i),i=1,\ldots n$](https://dxdy-03.korotkov.co.uk/f/e/a/9/ea9e9dff6716c1de19c2e2656553d17b82.png)
, где
![$x_i$ $x_i$](https://dxdy-02.korotkov.co.uk/f/9/f/c/9fc20fb1d3825674c6a279cb0d5ca63682.png)
- вектор, имеющий начало в начале координат и конец в точке
![$x_i$ $x_i$](https://dxdy-02.korotkov.co.uk/f/9/f/c/9fc20fb1d3825674c6a279cb0d5ca63682.png)
исходного множества
![$M$ $M$](https://dxdy-04.korotkov.co.uk/f/f/b/9/fb97d38bcc19230b0acd442e17db879c82.png)
. Из этих скалярных произведений выбирают максимальное положительное
![$\beta=\max(a,x_k)$ $\beta=\max(a,x_k)$](https://dxdy-04.korotkov.co.uk/f/7/e/6/7e635226f158a4cb7f32190c2b167e8682.png)
. При этом почему-то утверждается, что такое
![$\beta$ $\beta$](https://dxdy-01.korotkov.co.uk/f/8/2/1/8217ed3c32a785f0b5aad4055f432ad882.png)
обязательно найдется для любого случайного направления, заданного вектором
![$a$ $a$](https://dxdy-01.korotkov.co.uk/f/4/4/b/44bc9d542a92714cac84e01cbbb7fd6182.png)
.
Вопрос 1. Так ли это при условии центрирования множества
![$M$ $M$](https://dxdy-04.korotkov.co.uk/f/f/b/9/fb97d38bcc19230b0acd442e17db879c82.png)
(т.е. когда центр тяжести лежит в начале координат)?
Далее утверждается, что уравнение 1-й гиперплоскости имеет вид
![$(\frac{a}{\beta},x)=1$ $(\frac{a}{\beta},x)=1$](https://dxdy-02.korotkov.co.uk/f/d/5/2/d5271300b73082270ab9318e864b97f382.png)
. Конечно, если мы подставим сюда вместо вектора
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
вектор
![$x_k$ $x_k$](https://dxdy-01.korotkov.co.uk/f/4/1/a/41a0912d0f46af38c7fa2115d8f0386e82.png)
, то получим тождественное равенство, т.е. эта "гиперплоскость" проходит через точку
![$x_k$ $x_k$](https://dxdy-01.korotkov.co.uk/f/4/1/a/41a0912d0f46af38c7fa2115d8f0386e82.png)
.
Вопрос 2. Но откуда следует, что она будет являться одной из искомых гиперплоскостей, являющихся границей выпуклой оболочки.
Далее шаг 2, который вообще плавает. Сначала с 1-м бы разобраться.
Приведу в конце рассуждения преподавателя, переданные в устной форме. Мы имеем множество точек. Задаем случайное направление, находим уравнение первой прямой (в двумерном случае) на шаге 1, и по нему перемещаем эту прямую до тех пор, пока не встретим точку на плоскости. Затем идут манипуляции с шага 2..
PS. Модераторам просьба не переносить тему в Computer science, т.к. на текущий момент необходимо разобраться с математической стороной вопроса.