Планарность
- Теорема Эйлера. E + K + 1 = V + G.
- Любой граф можно уложить в R3. Например, все вершины на прямой, каждому ребру своя плоскость.
- Укладка на сфере = укладке на плоскости. Любую грань можно сделать внешней.
- K3,3 и K5 не планарны.
- Теорема Куратовского: если в графе нет подграфов гомеоморфных K3,3 или K5, граф планарен.
- Алгоритм Демукрона укладки графа за O(V2).
- Док-во времени работы (разбиение на k компонент работает за O(Vk), сумма всех k = O(V)).
- Алгоритм разбиения графа на грани за O(V + sort). Как этот алгоритм применить к результату алгоритма Демукрона?
- Алгоритм определения внешних граней за O(V).
2-SAT
- Постановки задачи. Решение перебором за O(2N*N)
- Жадное решение за O(NE). Алгоритм = пусть (x[i] = 0) из этого что-то следует... dfs. Если нашли противоречие, значит x[i] = 1.
- Док-во: если есть ребро (x[i]=a) --> (x[p]=b), то есть ребро (x[p]=!b) --> (x[i]=!a). То же можно сформулировать для путей.
- Решение за O(E) = топологическая сортировка вершин в орграфе из 2N вершин.
Нейрон. Нейросети.
- Общий случай: "кошка" или не "кошка".
- Линейные неравенства и пороговое значение.
- Разделение: меньше t=0.3 или больше 1. Бинпоиск по t.
- Если все неравенства выполняются - Л.П.
- Обучение нейрона.
- Л.П. с выкидыванием строк
- Л.П. с итеративным наращиванием множества строк
- Градиентный спуск (сглаживание целевой функции до arctg(t) или e-t)
- Примеры
- Распознавание распределения в
R
.
- Распознавание распределения в более сложном пространстве (строки).
- Кто автор этого стиха? Пушкин или Лермонтов?
- Обобщение
- (Выбор 1..N) = {N - 1 последовательный метод 0..1)
Линейное программирование.
- Системы Ax = b. Решение ее методом Гаусса за O(nm2), где m - число строк, n - число столбцов.
- Метод Гаусса приводит матрицу A к виду (E,A'). Храним p[1..m] --- переменные, которые соответствуют первым m столбцам.
- Добавляем условие x >= 0 и условие summ (x[i]*c[i]) --> min|max. Получаем задачу Л.П. в виде, с которым можно работать.
- Если b[i] < 0, то поиск начального решения = summ z[i] --> min. Где x[i] = y[i] - z[i];
- p[1..m] - наш базисный план.
- Собственно Simplex-метод = последовательный переход к следующему базисному плану
- Переход = замена p[i] на некоторое j.
- Собственно код.
- Решение задач maxflow и mincostflow с помощью Л.П.