Линейное программирование − 2 (20-е марта 2024)

  1. Паросочетание (произвольный граф)
    1. Задача поиска чётного простого пути min веса

  2. Примеры (один на симплекс, другой на поиск начального решения; цель = закрепеление симплекса вторым проходом)
    1. x1 + 2x2 + x3 ≤ 3, 2x1 + x2 + x3 ≤ 3, x1 + x2 - x3 → max (x1, x2, x3 ≥ 0)
    2. x1 - x2 ≤ -1, x1 + x2 ≤ 9, 2x1 + x2 → max (x1, x2 ≥ 0)

  3. Обучение Перцептрона
    1. Формулировка: нейрон/перцептрон, отделимость точек плоскостью, форма ∀i <ai,x> >0
    2. Алгоритм для Ax > 0: начинаем с x0 = 0, пока ∃ aij <xj, ai> ≤ 0, xj+1 = xj + aij
    3. Конечность числа итераций: |ai| = 1, |xk|2 = |xk-1 + aik|2 ≤ |xk-1|2 + 1 ≤ k
    4. Конечность числа итераций: x* − ответ, |x*| = 1, тогда <xk,x*> ≤ k * mini<ai,x*> и <xk,x*> ≤ |xk|
    5. Точность сходимости (проблема проявляется уже в 2D, когда ∃ ai, aj: <ai, aj> мало)

  4. Сведения разных форм LP, частные случаи LP (m уравнений, n неизвестных)
    1. (cx → max) ↔ (cx → min)
    2. (cx → max) → поиск произвольного решения (бинпоиск по ответу)
    3. Ax = b, x ≥ 0 ⇒ m ≤ n (линейно независимые строки)
    4. Ax ≥ b ⇒ m ≥ n (линейно независимые столбцы)

  5. Ax ≤ b для малых n − пересечение полуплоскостей, полупространств.
    1. Решение для n=1 за O(m)
    2. Рандомизированное решение для n=2 за O(m)
    3. Рандомизированное решение за O(m×n!)