none_smilodon's Friends
 
[Most Recent Entries] [Calendar View] [Friends View]

Below are the most recent 25 friends' journal entries.

    [ << Previous 25 ]
    Friday, April 26th, 2024
    lj_xaxam
    3:40p
    Ирландское рагу иным манером (нЕ. Молоховец)

    Последам. Краткое содержание просмотренной серии и спойлер следующей

    Перечитав текст выше, понял, что всё же получилось довольно запутанно, технично и уж совсем непонятно, что уж такого примечательного есть в задаче землекопа. Попробую ещё раз её сформулировать, опуская технические детали, и обсудить промежуточный вывод в рамке.

    Задача землекопа Канторовича, стоящего на одной ноге

    Отбрасывая не совсем безобидные, но слишком технические подробности, задача формулируется так. Дана двумерная площадка Х, на которой насыпан грунт. Профиль грунта (высота в точке x ∈ X) задаётся числовой функцией f(x). Для любых двух точек x,y ∈ X задано неотрицательное число C(x,y) ≥ 0, стоимость перевозки кубометра грунта из точки х в точку у; в простейшей ситуации эта стоимость зависит только от расстояния |y − x| = |x − y|, но нам интересны и несимметричные и анизотропные ситуации (в гору вообще говоря везти дороже, чем под гору). Задача состоит в определении того, каким образом надо перемещать грунт так, чтобы получить другой (заданный) профиль грунта, описываемой функцией g(x). Чтобы задача была разрешима, начальный и конечный объёмы грунта должны совпадать, что выражается интегральным тождеством ∫X f(x) dx = ∫X g(x) dx. Важный частный случай — f(x) ≡ 0 (исходно площадка ровная, надо вырыть траншеи, насыпав вынутый грунт в форме бруствера заданного профиля).

    Допустимым решением задачи Канторовича является функция F(x,y) ≥ 0, показывающая, "сколько грунта надо перевезти из точки х в точку у". Подразумевается инфинитезимальная ситуация, когда мы берём маленький столбик грунта высотой f(x) над бесконечно маленьким квадратом с центром в точке х площади dx и высыпаем его на бесконечно маленький параллелограмм с площадью dy с центром в y так, чтобы объёмы f(x) dx = g(y) dy совпадали (аккуратная формулировка требует известной аккуратности). Стоимость такой допустимой перевозки даётся "двойным" интегралом ∫X×X C(x,y)F(x,y) dx dy, и цель землекопа — минимизировать стоимость перевозки при условии, что профиль f превратится в профиль g (мы будем называть это требование краевым условием).

    Таким образом, исходными данными задачи являются "тарифная матрица стоимости перевозок", неотрицательная функция С = С(х,у), и два профиля, начальный f =f(x), x ∈ X и конечный g = g(y), y ∈ X. Решением задачи является неотрицательная функция F = F(x,y), описывающая, как именно перевозить.

    Вся дискуссия выше призвана мотивировать другую, двойственную задачу: найти две функции φ(x) и ψ(y), тоже определённые на Х, так что выполнены условия, выделенные выше в зелёную рамочку.

    Такие функции, вообще говоря, определены неединственным образом, и дальнейший выбор должен оптимизировать целевой функционал:
    ❝Нас будет интересовать комбинация (φ,ψ), доставляющая максимум интегральному функционалу

    ∫ φ(x)f(x) dx + ∫ψ(y)g(y) dy ⟶ maximum,

    где оба интеграла вычисляются по всей площадке Х в предположении равных объёмов профилей f и g.❞

    Спойлер: о чём пойдёт речь в последующих главах

    Заметим, что "семейство локальных экстремальных задач" в зелёной рамочке определяется исключительно тарифной матрицей перевозок и не зависит от того, что и куда надо везти. В отличие от этих соотношений, "розовый" критерий оптимальности явно использует начальное и конечное условия в транспортной задаче (что и куда везти).

    Такое "расщепление" не случайно: решение задачи Канторовича, конечно, зависит от обоих факторов, но есть и "скрытый смысл": тарифная матрица не совсем произвольна. В самом деле, рассмотрим три точки x,y,z и три значения, C(x,y), C(y,z) и C(x,z). Если C(x,y) + C(y,z) < C(x,z), то складывается "парадоксальное" (на первый взгляд) положение: везти из х в z напрямую сто́ит дороже, чем везти транзитом через точку у. Так не может быть, если функция C(x,y) равна (евклидову) расстоянию |x − y| (мешает неравенство треугольника), но при перевозках по существующим транспортным сетям в подобном "парадоксе" нет ничего невозможного. Соответственно, влияние граничных условий снижается: в задаче может появиться несколько "хабов" (hub), и оптимизация сведётся к выбору из того, в какой хаб везти из каждого склада и наоборот, какой хаб обслуживает каждый магазин. Скажем (точный результат будет сформулирован позже) если Х — выпуклое ограниченное множество, а тарифная функция С(х,у) выпукла по совокупности переменных, то "хаб", описанный выше, окажется единственным. Подобные эффекты называются в экономике магистральным свойством (turnpike property), впервые обнаруженным фон Нейманом (von Neumann, одним из самых ярких математиков 20 века, умершим в 53 года и скандально обойдённым всеми заслуженными им призами) и Полом Самуэльсоном (1958, нобелевка в 1970).

    На самом деле рассуждение с неравенством треугольника не совсем корректно, поскольку исключает из задачи фактор времени. Перевозка на перекладных через хаб требует двух шагов, а не одного, а как известно, время — деньги, и за срочность приходится доплачивать, что вносит коррективы в тарифную матрицу.

    При правильной постановке задачи время (непрерывное или дискретное) должно явно войти в формулировку, и мы поговорим об этом в следующий раз. В динамических терминах упомянутый выше магистральный эффект можно описать так: если задача T-шаговой оптимизации ставится на относительно коротком промежутке времени, то оптимальная траектория сильно зависит от начального и конечного состояний, и двигаться надо по местным дорогам, выбирая кратчайший путь. Но если Т велико, то оптимальное решение выглядит по-другому: надо как можно скорее выехать на скоростную магистраль и ехать по ней почти до конца, чтобы съехать в наиболее удобный момент по самому удобному съезду. Это весьма приблизительное описание, я надеюсь объяснить эффект в последующих публикациях.

    Коспойлер: о чём речь не пойдёт (в ближайшем будущем)

    В предыдущих сериях читатель мог уже получить первые впечатления о чисто математической нетривиальности вопросов, связанных с задачей о перемещении масс.

    Пример. Пусть у нас есть два пространства с борелевскими мерами (способом приписать счётно-аддитивную меру μ(A) любому открытому подмножеству A ⊆ X, и любому другому множеству, полученному из открытых и замкнутых множеств взятием счётных объединений и пересечений; аналогично для подмножеств пространства Y) (X, μ) и (Y, ν). Возникает проблема, как "спарить" две эти меры, "склеить" из них нечто типа прямого произведения? Точнее, нам нужна борелевская мера π на X × Y так, чтобы для любых двух открытых подмножеств А ⊆ X и В ⊆ Y выполнялись условия π(A × Y) = μ(A) и π(X × B) = ν(B). Это можно сделать многими способами, например, приписав "открытым прямоугольникам" вида А × B меру μ(A)ν(B), что соответствует независимости случайных переменных, распределённых с вероятностями μ и ν (соответствующая мера обозначается как тензорное произведение μ ⊗ ν). Другая крайность — детерминированный перенос: предположим, что существует измеримое отображение f: X ⟶ Y, и носитель π лежит на графике отображения f: supp π ⊆ { (x,y): y = f(x) }. Можно проверить, что это условие эквивалентно требованию fμ = ν, что по определению означает, что ∀ B ⊆ Y ν(B) = μ(f−1(B)). Другое эквивалентное требование — интеграл ∫ φ(y) dν(y) можно посчитать "заменой переменной" ∫ φ(f(x)) dμ(x). Условие измеримости f можно усилить, например, потребовав гладкости отображения: соответствующее спаривание между мерами μ и ν есть допустимое "решение" задачи Монжа в её исходной постановке.

    Есть много других более или менее "физических" моделей переноса масс. Например, можно предположить, что на по пространству Х течёт поток сжимаемой жидкости (т.е., задано векторное поле V), и этот поток переносит сам себя, подчиняясь уравнению неразрывности.

    Задача Канторовича формулируется теперь в следующих терминах: при заданных мерах μ, ν на одном и том же пространстве Х, среди всех спариваний между ними найти то, которое реализует минимум функционалу ∬ C(x,y) dμ(x)dν(y) с заданной функцией С(х,у). Разумеется, существование решения задачи надо доказывать отдельно для разных классов тарифных функций.


    Пример. Рассмотрим задачу Канторовича для простейшей тарифной функции С(х,у), которая равна нулю при x = y и единице при x ≠ y (стоимость перевозки кубометра груза не зависит ни от чего, как пятачок-на-рыло в московском метро, конечно, если ты туда спустился). Решением задачи будет "расстояние между мерами" |μ − ν| = supA ⊆ X |μ(A) − ν(A)|.

    Изучению решений задач Монжа и Канторовича посвящена гигантская (1000 страниц, 846 наименований в списке литературы) относительно недавняя (2009) книга филдсовского лауреата (2010) Седрика Виллани Optimal transport, old and new. Седрик — известный эпатёр (в русском смысле этого слова, не путать с гораздо более мягким французским значением), всюду появлявшийся в неизменном прикиде (смокинг, кричащий шарф, повязанный на французский манер, брошка-паук на лацкане, см. фото). Он успел побывать и директором Института Анри Пуанкаре в Париже, и депутатом Национальной Ассамблеи (ихняя французская Дума), но его книжку вполне можно читать; она могла бы быть впятеро тоньше, если б не пространнейшие библиографические комментарии, в точности и надёжности которых я не уверен. В книжище есть несколько сюжетов, которые вполне могли бы заинтересовать подкованного читателя, но я не буду их разбирать, ограничившись всего одним, над которым я немного успел подумать в самом конце 80-х.

    Предположим, что у нас дано т.н. гладкое  многообразие  М, — можно представлять себе (многомерную, хотя и двумерный вариант уже вполне содержателен) гладкую (гипер)поверхность в многомерном пространстве. У такой гиперповерхности в каждой точке x ∈ M есть касательные векторы (их много, целое линейное касательное пространство). На множестве всех касательных векторов, т.е., пар (х,v), где v  вектор, касательный к М в х, может быть задана функция L = L(x,v), называемая лагранжианом (в честь того самого Лагранжа). Мы будем рассматривать только гладкие лагранжианы, выпуклые по v.

    Рассмотрим гладкую кривую γ: t → x(t) ∈ M, описывающую движение на интервале времени [0,T] по М, и пусть v(t) — вектор скорости этой кривой (он по определению касательный к М). Тогда можно вычислить число, значение лагранжиана L(x(t),v(t)) в момент t, и проинтегрировать его по интервалу [0,T]. Полученный интеграл называется действием (если надо уточнить, — то действием лагранжиана). Например, если L(x,v) = |v| (длина вектора v, которая корректно определена если М ⊆ ℝn или при наличии абстрактной римановой метрики), то действие будет просто (геодезической) длиной кривой γ.

    Зная способ вычисления длин кривых на М, можно перенести на новые пастбища все привычные геометрические понятия (если кто думает, что это досужее занятие — у меня для вас новость: мы живём на таком многообразии, если верить Эйнштейну, и наша геометрия от этого не совсем евклидова). В частности, можем определить "отрезки" как кривые наименьшего действия (кратчайшие), соединяющие пары концевых точек, и "метрику" (расстояние от х до у вдоль кратчайшей геодезической, соединяющей эти точки). Такая метрика будет удовлетворять неравенству треугольника.

    В общем случае, когда лагранжиан отличен от |v|, действие будет зависеть от Т (длины промежутка времени). Обозначим через сТ(х,у) наименьшее действие, которое достигается на кривой γ: [0,T] → M, t ↦ x(t), выезжающей из точки х в начальный момент времени t=0 и приезжающей в точку у в момент времени t=Т. Соответствующая функция действия сТ(х,у) будет зависеть от трёх параметров (две точки на М и время на переезд), и нетрудно проверить, что для неё выполнено "неравенство треугольника", которое вырождается в равенство при специальном выборе промежуточной точки: для любых времён T,S ∈ ℝ, T,S ≥ 0,

    сТ+S(х,z) ≤ сТ(х,у) + сS(y,z),                 сТ+S(х,z) = miny∈M (сТ(х,у) + сS(y,z)).
    Замечание. Те, кому случалось в жизни сталкиваться с формулами вида GT+S = GT ∗ GS, где ∗ какая-то бинарная операция с объектами из семейства {GT: T ≥ 0}, наверняка вспомнят слово "однопараметрическая полугруппа". Например, если GT: ℝn → ℝn — преобразование потока вдоль векторного поля на ℝn, то тождество GT ∗ GS с операцией "композиция преобразований", ∗ = ∘ , означает стационарность (независимость от времени) векторного поля: чтобы доплыть из начальной точки х до точки z за время S+T, надо сначала доплыть из х в у за время Т, а потом из у в z за время S. В этом случае преобразование GT определено и для отрицательных значений Т < 0: надо плыть "в обратном времени" против потока.

    Описанная конструкция позволяет построить по лагранжиану L однопараметрическую полугруппу чисел {сТ(х,у): x,y ∈M, T ≥ 0}, удовлетворяющих соотношениям в жёлтой рамочке. А разрешима ли обратная задача? При каких условиях по функции сТ(х,у) можно восстановить лагранжиан L так, чтобы его действие совпало с заданной функцией?

    Есть и более сложная задача, — интерполяция по времени. Предположим, нам дана функция ⚭(x,y), про которую мы подозреваем, что она есть функция действия за единичное время. Можно ли включить её в полугруппу функций {сТ(х,у): x,y ∈M, T ≥ 0} так, чтобы ⚭(x,y) = c1(x,y)? Для этого, как минимум, нужно уметь извлечь "композиционный корень" из ⚭(x,y), т.е., найти функцию ζ(x,y) =  c½(x,y) такую, что ⚭(x,y) = minz∈M (ζ(x,z) + ζ(z,y)). Если честно, я пока так и не разобрался, насколько ограничительны те предположения, при которых Седрик решает эту задачу (соответствующее место в книжке локализовано с точностью до десятка страниц, но в 1000-страничном тексте разобраться непросто).

    Всё, на этом математический зуд, снедавший меня несколько последних дней, слегка поутих, пойду поживу привычной ЖЖизнью. Как всегда, — исправление ошибок, пожелания на будущее, требования не выпендриваться — всемерно приветствуется, пожалте в комментарии.
    Thursday, April 25th, 2024
    lj_xaxam
    6:03p
    Почём овёс для лошадей?

    Линейное программирование и немного капитализма

    Отступим на шаг назад и посмотрим, как будет выглядеть задача Канторовича в "конечномерном" приближении, ср. с тем, с чего мы начинали, но только сейчас у нас из задачи полностью исчезла геометрия, остался только бухгалтерский учёт. Ну, и немножко сменим бытовой контекст для разнообразия.

    Есть m источников (складов, ..., пронумерованных индексом i), в каждом из которых находится μi ≥ 0 единиц товара (единственного, однородного, неограниченно делимого, ...), и n магазинов, в каждый (j-й) из которых надо доставить νj ≥ 0 единиц этого товара. Предполагается, что всё сбалансировано, и спрос равен предложению,

    j=1μi    =    ∑j=1n  νj.

    Для любой пары (i,j) = (склад, магазин) задано неотрицательное число cij ≥ 0 — стоимость перевозки (транспортировки) единицы товара между двумя соответствующими точками.

    Транспортный план в такой задаче — матрица (не обязательно квадратная — бывают на свете и прямоугольные матрицы!) Fij ≥ 0,  i =1, ..., m,  j = 1, ..., n,   элементы которой есть количество товаров, перевозимых со склада i в магазин j. Стоимость такой перевозки — двойная сумма, подлежащая минимизации

    i,j  Fij cij → minimum
    при ограничениях

    j=1,...n Fij = μi,       ∑i=1,...,m Fij = νj

    означающих соблюдение "граничных условий" (каждый склад опустеет, каждый магазин затарится полностью).

    Как находить минимум функции на подмножестве, заданном одним или несколькими равенствами? Ответ в этой задаче нашёл великий Лагранж (см. его грустный портрет: история математики знает очень немного подобных универсалов, революционизировавших несколько областей математики, матфизики и астрономии). Его рецепт прост: если надо найти минимум функции F(x) при ограничениях G1(x)=0, ..., Gr(x)=0, то надо составить линейную комбинацию H = F + λ1G1+...+λr Gr с неопределёнными пока вещественными множителями λk ("множителями Лагранжа") и искать минимум этой комбинации "так, как если бы переменные были независимы". Сказанное означает, что надо выписать все частные производные H = H(x,λ) по иксам и по лямбдам и приравнять их нулю. Вторая половина уравнений имеет вид G1(x)=0, ..., Gr(x)=0 поскольку зависимость Н от лямбд линейная, а первая половина означает геометрически, что градиент функции F = F(x) раскладывается как линейная комбинация градиентов функций Gk. Мы получаем систему уравнений относительно неизвестных (x,λ), которую надо решать как обычно.

    Замечание. Описанный метод без долгих комментариев понятен физикам. Пусть F — потенциал силы, действующей на материальную точку. Точка вынуждена оставаться на поверхности, заданной ограничениями. Предположим для простоты, что r = 1, т.е., в пространстве задана гладкая (гипер)поверхность, с которой точка не может сходить. Где будет равновесие? Если б ограничений не было, равновесие было бы достигнуто в минимуме потенциала, там, где сила (градиент потенциала) обращается в нуль. При наличии ограничения возникает сила нормальной ("перпендикулярной") реакции, направленной перпендикулярно поверхности в каждой точке (скажем, если точка вынуждена жить на сфере, сила будет направлена по радиусу). Правило Лагранжа состоит в том, что в точке условного равновесия внешняя сила должна уравновешиваться реакцией опоры. Это позволяет составить уравнения статического баланса: реакция опоры неизвестна по абсолютной величине, но известна по направлению.  Если ограничений несколько, то каждая "опора" вносит свой вклад.

    Замечание. Не только физики понимают это. Предположим, что вы делаете покупку из нескольких товаров и заинтересованы в том, чтобы сделать её подешевле. При этом в свою тележку вы можете класть не произвольный набор продуктов, а обязаны подчиниться каким-то ограничениям. Например, мы составляем план платежей по ипотеке по месяцам на ближайший год, и должны возвращать банку какие-то деньги. Их можно возвращать не сейчас, а через три или через семь месяцев, но при этом надо соблюдать балансовые ограничения: на наш счёт, конечно, приходит известная вам зарплата, и мы не можем выплатить какую-то сумму до того, как она придёт. Выпишем балансовые ограничения, в которые надо "вписаться". Тогда наша задача станет в точности задачей минимизации при ограничениях. Правило Лагранжа состоит в том, что надо назначить себе штрафы за нарушение разных ограничений, после чего искать минимум затрат с учётом штрафов. Утверждается, что таким образом мы можем найти минимум, совместный с наложенными ограничениями.

    Линейное программирование. Задача оптимальной перевозки, описанная выше, имеет (если приглядеться) очень специфический вид: целевой функционал (критерий оптимизации) является линейной функцией независимых переменных (однородность несущественна, поскольку прибавление константы никак не влияет на решение), а наложенные ограничения задаются линейными (неоднородными) нестрогими неравенствами заметим, что ограничение, имеющее вид равенства G(x) = 0 может быть формально заменено двумя "встречными" неравенствами G(x) ≤ 0 и G(x) ≥ 0. Кроме того, по причинам, связанным с двойственностью, мы добавляем к списку ограничений условия неотрицательности независимых переменных х. С учётом сказанного общая задача линейного программирования может быть записана в векторно-матричной форме

    c·x → maximumx       при ограничениях    А·x ≤ b,   x ≥ 0
    Здесь:
    1. x — вектор-столбец высоты n, составленный из неизвестных переменных xj, j =1,...,n,
    2. c — вектор-строка длиной n, состоящая из коэффициентов максимизируемого линейного функционала, c·x = cx — матричное произведение, дающее 1х1-матрицу (число),
    3. b  — вектор-столбeц высоты m,
    4. 0 — вектор-столбец высоты n,
    5. A — прямоугольная m×n-матрица, (m строк, n столбцов), так что произведение А·x = Ax является вектор-столбцом высоты m.
    6. Неравенство между векторами означает набор неравенств между всеми соответствующими компонентами: матричное ограничение Аx ≤ b эквивалентно набору из m линейных неоднородных ограничений ai·x ≤ bi, i=1,...,m, где ai суть вектор-строки матрицы А, это же относится к условиям неотрицательности xj ≥ 0, j =1,...,n.
    Стандартная экономическая интерпретация этой задачи прозрачна: неизвестный вектор х обозначает вектор товаров, которые некто (производитель, предприниматель) собирается произвести и продать "государству", т.е., по фиксированным внешним ценам с, максимизируя стоимость продаж c·x. Стратегия производителя — выбрать х наиболее выгодным для себя образом из имеющихся возможностей, т.е., с соблюдением определённых ограничений.

    Мы предполагаем, что (производственные) возможности ограничены имеющимися ресурсами (вектор b), которые расходуются при производстве товаров линейным образом, описанным матрицей А. Элемент (число) Aij ≥ 0 есть количество единиц i-го ресурса, используемого при производстве единицы j-го товара. Сумма ∑j Aijxj есть общее количество этого ресурса, требуемое при производстве всего пакета товаров х = (x1, ... , xn). Балансовые (ресурсные) ограничения состоят в том, чтобы при выпуске набора х = (x1, ... , xn) обойтись имеющимся вектором ресурсов b = (b1, ... , bm).

    Согласно общей идеологии Лагранжа, для нахождения решения надо прибавить к целевому функционалу c·x = ∑ cjxj линейную комбинацию, состоящую из ограничений  ai·x − bi ≤ 0 (где ai — i-я строка матрицы А) и ("перевёрнутых") условий неотрицательности − xj ≤ 0 (при всех допустимых i,j) с неопределёнными множителями Лагранжа. После этого надо искать критическую точку полученной билинейной функции. В силу билинейности частные производные по иксам окажутся функциями множителей Лагранжа. Обозначив через ξi ≥ 0, i = 1, ..., m множители, соответствующие i-му "ресурсному" ограничению и ηj ≥ 0 — требованию неотрицательности xj, мы увидим, что условия оптимальности примут вид ξ·A − η ≥ c, что соответствует двойственной экстремальной задаче (переменные η легко изгоняются)

    ξ·b → minimumξ       при ограничениях    ξ·A ≥ c,   ξ ≥ 0.

    Здесь:
    1. ξ — вектор-строка длиной m,
    2. Матричное произведение ξ·A (обратите внимание на то, что порядок множителей заменен на обратный) есть строка длиной n.
    3. Параметры b,c (наряду с матрицей А) — общие для прямой и обратной задач.


    Двойственность

    Обе задачи (и прямая, и двойственная) имеют почти одинаковый вид: задано выпуклое множество в линейном пространстве независимых переменных (x ∈ ℝn в первом случае, ξ ∈ ℝm во втором). Разница в том, что в первом случае мы рассматриваем переменные как вектор-столбец, а во втором — как вектор-строку. Разница проявляется в том, с какой стороны (слева или справа) эти векторы можно умножать на (неквадратную в общем случае) матрицу А. Далее, двойственные ξi переменные соответствуют "ресурсным" ограничениям и могут быть интерпретированы как цены   на лимитированные ресурсы. Их неотрицательность отражает знак ≤ в ограничениях Ax ≤ b. Сам вектор доступных ресурсов b становится критерием двойственной задачи. Напротив, компоненты вектора с, задающего критерий ("цены" переменных х), становятся ограничениями, накладываемыми на цены ξ в векторной форме ξА ≥ c. Заметим, что задача минимизации сменилась задачей максимизации.

    Решения (векторы) x и ξ называются допустимыми, если каждый из них удовлетворяет всем линейным неравенствам соответствующей задачи. Первая теорема двойственности утверждает, что любые два допустимых решения можно "сравнить" между собой.

    Теорема (слабая теорема двойственности).
    Если x°, ξ° — допустимые векторы двойственной пары задач, то cx° ≤ ξ°b (это скалярное неравенство, а не векторное!).

    Доказательство. cx° ≤ ξ°Аx°, поскольку ξ°А ≥ c и x° ≥ 0 (умножаем неравенства допустимости в двойственной задаче на неотрицательные координаты вектора x°). Осталось воспользоваться неравенствами Аx° ≤ b (допустимость в прямой задаче) и неотрицательностью координат вектора ξ°. ∎

    Слабая теорема двойственности позволяет по любому допустимому решению двойственной задачи дать оценку сверху значения оптимума в прямой задаче: это полезно, чтобы понимать, на что в принципе можно рассчитывать, решая прямую задачу линейного программирования. Если нам удастся найти допустимое решение двойственной задачи, которое лучше, чем ξ°, то новая оценка решений прямой задачи будет ещё точнее. Разумеется, в силу полной симметрии аналогичные утверждения верны и после перемены ролями между прямой и двойственной задачами. В связи со слабой теоремой двойственности возникает естественная гипотеза, — если мы найдём самое наилучшее допустимое решение двойственной задачи (настоящий экстремум), то нестрогое неравенство в теореме двойственности превратится в точное равенство.

    Но в задаче линейного программирования решение существует не всегда. Заметим, что если бы мы не ограничились исключительно нестрогими неравенствами, а позволили бы строгие, это было бы совершенно очевидно: на одномерной оси иксов поиск максимального значения x → maximum при нестрогом ограничении x < 0 безнадёжен. Но и в случае, когда все неравенства нестрогие, мы можем столкнуться с одной из двух неприятностей:
    1. Множество допустимых векторов х пусто (система линейных ограничений несовместна), или
    2. Линейный функционал на множестве допустимых векторов неограничен (пример: x → maximum, x ≥ 0).
    Во всех остальных случаях решение существует (возможно, неединственное).

    Теорема (сильная теорема двойственности).
    Если одна из двух проблем имеет оптимальное решение x°, то и двойственная проблема тоже имеет оптимальное решение ξ° (и наоборот), и неравенство вырождается в равенство cx° = ξ°b. ∎

    Замечание. Читатель-математик может поднять бровь при виде того, как сформулирована задача линейного программирования. Слишком много обстоятельств выглядят насилием над вожделенной симметрией. Почему "ресурсные неравенства" Ax ≤ b записаны таким образом, а не привычным для математиков образом Ax + b ≤ 0? И почему неравенства в эту сторону, а не в противоположную (мы же не делам никаких предположений про знаки матричных элементов А и знака свободных членов b? Откуда взялись условия неотрицательности для иксов? Что делать с ограничениями типа равенств? В общем, вопросов много. Некоторые условия являются "нормировкой" и могут быть достигнуты при помощи переносов из одной части в другую, умножения неравенств на −1 или замены ограничения типа равенства двумя "встречными" нестрогими неравенствами.

    Есть определённая мнемоника, позволяющая запомнить, как писать двойственную задачу по исходной задаче линейного программирования:
    1. Каждая переменная x исходной задачи соответствует "векторному" ограничению в двойственной задаче и наоборот,
    2. двойственным образом, каждое ограничение на иксы (за исключением ограничения на знак) соответствует двойственной переменной
    3. Знаки переменных соответствуют направлению соответствующих неравенств: ограничение на иксы вида ...  ≤ bi соответствует знаку ξi ≥ 0, ограничение ...  ≥ bi соответствует знаку ξi ≤ 0, ограничение ...   = bi означает, что на знак ξi не накладывается ограничения. Аналогичным образом, неотрицательность xj ≥ 0 означает, что в двойственной задаче ограничение имеет вид ... ≥ cj, неположительность xj ≤ 0 — ограничению ... ≤ cj, отсутствие ограничений на знак xj означает ограничение типа равенства ... = cj.
    4. Коэффициенты исходного функционала с соответствуют правым частям ресурсных ограничений b,
    5. Исходная задача соответствует максимизации функционала cx, двойственная — минимизации ξb.
    Но мнемоника мнемоникой, а ощущение того, что тебе рассказывают кулинарный рецепт вместо того, чтобы объяснить стоящие за ним химические свойства и законы, остаётся. И правильно. Правильный рассказ про эти вещи нужно начинать с теории выпуклых множеств и соответствующей теории преобразования Лежандра. Чтобы не растекаться мысию по древу, я пока поставлю в этом месте дорожный указатель, чтоб не забыть.

    Двойственность в задаче Канторовича

    Рассмотрим задачу Канторовича и, распознав в ней задачу линейного программирования, напишем двойственную к ней. Начнём с дискретного варианта, описанного в начале параграфа.

    "Иксами" (неизвестными переменными) будут элементы Fαβ, α = 1, ..., A, β = 1, ..., B матрицы перевозок: в отличие от "стандартной" формы наши иксы организованы в прямоугольную матрицу, и нам надо как-то упорядочить их, чтобы индексировать одним индексом j =(α,β) размерности AB. Соответствующий вектор цен c тоже организован в матрицу тех же размеров с элементами cαβ. Заметим, что в исходной задаче ищется минимум (а не максимум, как в стандартной задаче), поэтому для приведения к стандартной форме надо поколдовать со знаками. Переменные неотрицательны, F ≥ 0 (теперь это неравенство матричное), а "ресурсные ограничения" имеют вид балансовых соотношений по всем источникам и стокам (их число равно сумме A + B числа складов и магазинов)

    α=1A  Fαβ  =  νβ,    ∀ β =1, ..., B,      и       ∑β=1B  Fαβ  =  μα,    ∀ α =1, ..., A.

    Обозначим соответствующие двойственные переменные через qβ и pα . Согласно "мнемонике", описанной выше, двойственная задача будет иметь вид максимизации суммы

    α pαμα + ∑β qβνβ

    при ограничениях

    pα + qβ ≤ cαβ при всех α = 1, ..., A,   β = 1, ..., B.

    "Экономический" смысл двойственной задачи тоже довольно прозрачен, по крайней мере на первый взгляд. Надо "справедливо поделить" стоимость перевозки cαβ единицы товара (единственного, напомним) со склада α в магазин β между складом и магазином, назначив цену для отправителя pα ("отпускную цену" ) и "цену для получателя" qβ, обе неотрицательных, так, чтобы минимизировать общие суммарные расходы и тех и других.

    Однако ж есть нюансы©.

    Замечание о знаках. В исходной постановке балансовые ограничения сформулированы в виде точных равенств, тем самым в двойственной задаче мы не имеем априорной информации о знаках двойственных переменных. Если общий баланс (суммарное количество товара на складах и общий заказ в магазинах) не сходится, то в задаче нет допустимых решений вовсе. Чтобы избавиться от такого досадного обстоятельства, надо заменить балансовые равенства на балансовые неравенства. Руководствуясь "логикой снабженца", направление неравенств надо расставить таким образом:
    α=1A  Fαβ    νβ,    ∀ β =1, ..., B,      и       ∑β=1B  Fαβ    μα,    ∀ α =1, ..., A.
    Эти неравенства означают, что со склада нельзя вывезти больше товара, чем там есть, а в каждый магазин надо завезти не меньше обязательного минимума товара. В этой ситуации задача всё ещё может оказаться неразрешимой, если товар в глобальном дефиците, но если он имеется в избыточном количестве, то допустимо оставить часть товара гнить на складах или завезти в некоторые магазины больше планового количества. А главное, — все ограничения приобретут канонический вид нестрогих неравенств, и знаки двойственных переменных становятся определёнными. Но — achtung! — "цены" qβ становятся при этом неположительными! qβ = −rβ, где rβ ≥ 0 при всех β = 1, ..., В. После всех подстановок мы получаем двойственные ограничения, имеющие "коммерческий" смысл: расходы rβ для магазина β складываются из затрат на перевозку и "отпускную" стоимость товара со склада (я несколько раз пытался расставить правильно неравенства и знаки, но всякий раз провирался; буду признателен, если кто-нибудь возьмёт на себя труд написать правильный ответ).

    Краткий исторический экскурс

    Экстремальными задачами, в частности, задачами, которые потом будут названы задачами линейного программирования, Леонид Витальевич Канторович (1912—1986) стал заниматься в 1938 году, и при помощи общего метода множителей Лагранжа (разумеется, известного математикам) он описал построение двойственной задачи к задаче линейного программирования. Результаты были изложены в тоненькой брошюрке (68 страниц) в 1939 году. Многочисленные "народнохозяйственные примеры" занимали бо́льшую часть её объёма, и решались эти задачи при помощи мелкого трюкачества с использованием двойственных задач, имевших более простую форму.

    Но с интерпретацией результатов возникла идеологическая проблема. Идея приписать каждому ресурсному ограничению определённую величину "штрафа", после чего убрать ограничения, заменив их штрафами пропорционально объёму нарушения (перерасходу дефицитного ресурса) ещё как-то могла поместиться в головах советских доктринеров-от-экономики, проповедников планового хозяйства. Но идея назвать эти коэффициенты ценами ресурсов, по которым они должны были бы свободно покупаться и продаваться, оставляя советскому хозяйственнику "всего лишь" задачу максимизации чистой прибыли (доход от продажи минус затраты на сырьё) уже была ересью, за которую могли и на костёр отправить. И это ещё до обсуждения вопроса о том, кто будет назначать эти самые цены. Если их назначить абы как, то никакой баланс не свести: продукты, цены которых ниже "правильных", окажутся в дефиците, а переоцененные продукты будут пылиться на складах.

    Канторович, понимая, в какое болото он забрёл, ни разу в своём тексте не использовал слово "цены". Термин для обозначения двойственных переменных, который он предложил — "объективно обусловленные оценки". В таком виде можно было с видом невинности отвечать на вопросы разных савонарол, что-де нахождение объективно обусловленных оценок — прерогатива составителя разумного плана развития народного хозяйства. Отсюда уже (учитывая уровень логической грамотности партийных доктринеров) можно было любые "цены", назначенные Госпланом СССР, объявить объективно обусловленными. А ежели что в дефиците окажется, так это по экономической неграмотности руководителей на местах.  

    Непрерывная/измеримая версия задачи Канторовича

    Поскольку все рецепты уже обкатаны в конечномерной ситуации, можно просто написать двойственную задачу к задаче оптимального перевоза плоской меры μ(x) области Х в плоскую же меру ν(y); решением должна быть мера Π на декартовом квадрате X2 = { (x,y): x,y ∈ X }, минимизирующая интеграл ∫(x,y) C(x,y) dΠ(x,y) стоимости перевозок.

    Двойственная задача состоит в определении двух функций φ:X → ℝ и ψ: X → ℝ (уж настолько прилично себя ведущих, насколько получится) так, чтобы при всех х,у выполнялось условие

    φ(x) + ψ(y) ≤ C(x,y).

    При этих ограничениях надо максимизировать некий функционал, равный интегралу ∫ φ(x) dμ(x) + ∫ ψ(y) dν(y).

    ❝Учитывая, что меры источника и стока неотрицательны, мы можем только выиграть, если увеличим наши функции, соблюдая ограничения. Для этого надо будет решить локальные экстремальные задачи:

    φ(x) = maxy ∈ X C(x,y) − ψ(y),        соответственно,            ψ(y) = maxx ∈ X C(x,y) − φ(x).

    Если мы сможем решить эти уравнения, то мы найдём очень хорошее допустимое решение двойственной задачи, а значит, по слабой теореме двойственности получим очень важное знание про исходную задачу Канторовича. ❞
    Эти соотношения настолько интересны, что я возьму их в рамочку для удобства ссылок из последующих бесед.
    Wednesday, April 24th, 2024
    elesin
    10:36a
    Я редко бывал в ЦДЛ на рассвете
    Я редко бывал в ЦДЛ на рассвете,
    Я здесь на рассвете почти не бывал.
    Пойду набухаюсь я в Нижнем буфете,
    А то больно грустен у вас Малый зал.

    Нет повести, дети, печальней на свете,
    Куда мы плетемся, скажи, адмирал.
    Пойду набухаюсь я в Нижнем буфете,
    А то больно грустен у вас Малый зал.

    Давайте заткнем социальные сети,
    Давайте уймем социальный накал.
    Пойду набухаюсь я в Нижнем буфете,
    А то больно грустен у вас Малый зал.
    Tuesday, April 23rd, 2024
    alex_moma
    4:34a
    Перевод фрагмента о Кердоне и Маркионе из трактата Псевдо-Тертуллиана
    Работа Андрея Васильева.
    Неискушенному читателю я бы, впрочем, посоветовал иметь в виду, что все эти россказни ересиологов (многие из которых и сами потом, кстати, в еретиках ходили - а не рой другому йаму) про то, что Маркион не был самостоятельной фигурой, а это его Кердон надоумил "искажать Павла" и т.п., не заслуживают серьезного к себе отношения. Как совершенно справедливо заметил в свое время на одной конференции Богомилос, изучать гностических учителей по трудам ересиологов - примерно то же самое, что историю еврейства - по Геббельсу.
    А Андрею за труд спасибо, даже уже потому, что у меня пока библиография к Маркиону на русском не сказать чтоб огромна... Да и у вас...
    alex_moma
    4:31a
    Сохраненное Маркионом Синопским
    ЕВАНГЕЛИЕ ГОСПОДНЕ на Телемапедии
    Работа вашего непокорного.
    Monday, April 22nd, 2024
    elesin
    7:24a
    OnlyBLM
    Плохо про БЛМ говорить негоже
    Он хамасекам – лимонная долька
    Вы не поставили слово «тоже»
    Тем самым поставили слово «только»

    Черный расизм – расизм хороший
    Палестина – вообще домисолька
    Вы не поставили слово «тоже»
    Тем самым поставили слово «только»
    Sunday, April 21st, 2024
    elesin
    11:52p
    Читаю в новостях
    Читаю в новостях:
    «ХАМАС представил
    План политических реформ
    В Палестине».
    Хамас?
    Представил?
    План?!
    Политических?!?
    Реформ???
    В Палестине?!!

    Да вы охуели?..
    alex_moma
    6:06p
    Я-то, прям назло, физически очень далеко, и не ходил на сходы,
    а бандиты Охтинский мыс уничтожают. Я полагаю, что рано расслабились в свое время, убрав оттуда газпромовскую Башню на Лахту и полагаясь на путинское "заступничество", исходя из того, что он тоже публично (и вроде бы даже не один раз) выступал за археопарк на Охте и т.п. Проблема в том, что ни одному его слову верить в принципе нельзя, как нельзя было верить в свое время заступничеству за гонимых СИ, за отменяемые в провинции электрички, за выселяемых из нормального жилья в бараки и т.п. Всё это оказалось сотрясанием воздуха. Но верить продолжали, вот что самое удивительное. Теперь уже не верят, наконец-то, а петиции пишут просто потому, что это налаженный механизм реагирования, и делать-то больше нечего в принципе. Других рычагов влияния нет. Даже если можно было бы устраивать манифестации, как еще в 10-е годы, это уже не помогло бы никому и никак. Сейчас в Рашке миллион людей выведи по любому поводу - толку будет ноль. Сообщат в НЕКОТОРЫХ газетах, и назавтра все об этом забудут, вот и всё.

    Вот группа:
    https://vk.com/okhtacape
    elesin
    12:49p
    Один мудак на свете жил
    Один мудак на свете жил,
    Уродливый и старый.
    Он был вояка и дебил,
    И рвался в янычары.

    Хотел героем стать дебил,
    А также зоофилом.
    И бодро голову сложил,
    Ведь был мудак дебилом.

    Людей так любит людоед
    В отечестве немилом.
    Мудак сказал ему: привет,
    Ведь был мудак дебилом.

    А может выебан он был
    Корявым крокодилом.
    И мирно жил среди кобыл,
    Ведь был мудак дебилом.

    А, может быть, среди красот,
    Сражен кудрявым шилом,
    Попал он повару в компот,
    Ведь был мудак дебилом.

    Он лез повсюду на рожон
    И был убит кадилом.
    Он был мудак, он был гондон,
    И был еще дебилом.

    Его загрызла детвора,
    И труп сплавляли Нилом.
    Его нам жалко? Ни хера.
    Ведь был мудак дебилом.
    Saturday, April 20th, 2024
    elesin
    7:20p
    Я знаю многих. И давно
    Я знаю многих. И давно.
    Ни с кем особо не сближаюсь.
    Везде и всюду лишь одно
    Литературное говно.
    Я в нем отлично разбираюсь.

    Есть безобидное. Оно
    В себя настолько влюблено,
    Что не ударит даже сзади.
    А также спереди. На дно
    Себе расчистит путь говно.
    Но просто так – чего же ради?

    А есть похуже. За пятак
    Тебя продаст оно. Не сладить
    С таким говном, такой мудак
    Тебе нагадит просто так.
    С одною целью – чтоб нагадить.
    alex_moma
    6:58p
    Был очень даже причастен. Спасибо за титанический труд! Кто захочет издать книгой - пишите автору.
    АПОСТОЛИКОН

    https://skifos.livejournal.com/82419.html
    elesin
    11:13a
    Какая-то муть у дверей
    Какая-то муть у дверей,
    Зато обязательно строем.
    Мне нужен приличный еврей,
    А то я бухаю запоем.

    Яркевич! Какой же ты гад,
    Зачем же ты умер, дружище?
    Разруха вокруг и разлад.
    И полное, знаешь, говнище.

    Мразота мерзоты бодрей,
    И дроны над вечным покоем.
    Мне нужен приличный еврей,
    А то я бухаю запоем.

    Не буду я ваш сельдерей,
    Валите дорогой имперской.
    Мне нужен приличный еврей,
    И лучше с Большой Пионерской
    Friday, April 19th, 2024
    elesin
    10:07p
    Слава науке и спасение хорьков-гоев
    Читаю в новостях: «Ученые спешно клонировали четвероногих хорьков». Я прямо в шок упал. Во-первых, оказывается, не все хорьки четвероногие. Даже напротив, большинство-то хорьков, как выяснилось, не четвероногие. Видимо, шестиногие (еврейская их часть) и двенадцатиногие (хорьки-гои). А четвероногих как раз мало. И они еще и гибнут!
    Что же делать, думают, ученые? Сначала переживать, потом паниковать, а потом – пропадать? Нет, говорит самый ученый среди ученых: надо спешно клонировать. Спасем хорьков! И они спасли. У меня прямо от сердца отлегло.
    И я смог наконец вчитаться. Оказывается, хорьки не четвероногие, а черноногие. То есть они, видимо, конечно, четвероногие, но еще и черноногие. И клонировали их не спешно, а успешно.
    Я совсем расцвел. С хорьками еще все более или менее в порядке, а их уже на всякий случай клонировали.
    Потом дочитал статью до конца, и выяснил, что они все-таки вымирали. Но теперь не вымрут! Ура!
    «И науки размах огневой!..»

    Примечание.
    Следующая новость была такая: «Названа опасность лап для маникюра». Но я ее даже открывать не стал. Ну их, какие-то лапы.
    Конец примечания.
    elesin
    1:34p
    Курица-наседка
    Курица-наседка
    Истина в вине
    Храбрая Креветка
    Едет на коне

    Было все уныло
    Горе впереди
    Если ты кобыло
    Лошадью ходи

    Паутина-сетка
    И мусоровоз
    Мудрая Креветка
    Рыцарь-крестонос

    Старая нимфетка
    Пена дней и пней
    Бодрая Креветка
    Утро мудреней

    У пирата метка
    Палку перегнем
    Пьяная Креветка
    Дремлет под конем
    Thursday, April 18th, 2024
    alex_moma
    10:25p
    Два гностических текста на Телемапедии
    Обещанная обновленная мною версия статьи о гностическом "Послании Евгноста" а также валентинианский гностический текст "Премудрость Иисуса Христа" (в западной историографии - Sophia Jesu Christi) на Телемапедии.
    alex_moma
    10:09p
    Правду не высмеять
    В электричке ехали тьолки и обсуждали духовно-нравственные основы, которые то ли уже ввели, то ли ещё введут в их россиянском говновузике...
    Нагло вмешался и спросил: "Ну, может, вам там хотя бы объяснят, что духовность - это когда срут в ведро?"
    Долго ржали. А напрасно... Правду высмеять нельзя.
    elesin
    8:55p
    Голые креветки моют пьяного Солженицына
    Радуются детки,
    Ликует Голицино и Гурьяново:
    Голые креветки
    Моют Солженицына пьяного.

    А тот не рад,
    Говорит: уходите скорее,
    А не то ваш зад
    Привяжу к батарее.

    И буду критике подвергать
    Несправедливой, но строгой.
    Креветки, молчать!
    Оберните меня тогой.

    Обернули креветки классика.
    И ушли теребить карасика.
    elesin
    12:21p
    Пьяные креветки моют голого Солженицына
    Раздали конфетки
    После дня тяжелого.
    Пьяные креветки
    Моют Солженицына голого.

    А тот не рад,
    Говорит: уходите отсюда.
    Где мой новый наряд?
    И фарфоровая посуда?

    Где она, вашу мать?
    Сейчас надавлю коленцем.
    Креветки, молчать!
    Оберните меня полотенцем.

    Обернули креветки гения.
    И продолжили песнопения.

    Следующий текст данной дилогии называется «Голые креветки моют пьяного Солженицына»
    Wednesday, April 17th, 2024
    lj_xaxam
    5:59p
    Почему начали с парикмахеров

    Загогулины математики

    Поздний СССР. Приходит мужик в парикмахерскую. Сидит, очереди ждёт: пятеро мастеров щёлкают ножницами, но всё время с улицы прибегают какие-то люди и запрыгивают в кресла, а очередь не движется. Мужик разозлился, пошёл к заведующему:
    — Послушайте, что у вас тут происходит? Что у вас за система такая?
    — Товарищ, я всё понимаю... но если вам система не нравится, почему вы решили начать с парикмахерских?


    Барон Гаспар Клэр Франсуа Мари Риш де Прони́ (Gaspard Clair François Marie Riche de Prony, 1755 – 1839) был эдаким французским келдышем во времена Великой Революции. Как Келдыш, он был Президентом ФРАН, как Келдыш, он занимался прикладной математикой (придумав немало нового), как Келдыш, он был талантливым администратором нескольких грандиозных инженерных проектов.

    Но Прони был ещё и Брадисом фанатиком-вычислителем. Под его началом трёхуровневая команда вычислителей составила таблицы тригонометрических функций и логарифмов с двадцатью (в среднем) значащими цифрами: такая точность нужна была для геодезических нужд при составлении земельного кадастра земель, конфискованных у французской аристократии в пользу революционного народа. Будучи поклонником Адама Смита, Прони организовал поточное производство вычислений. На верхнем уровне несколько "настоящих математиков": они подбирали аналитические формулы и задавали точность, с какой надо было делать вычисления. На втором уровне трудились "профессиональные вычислители", табулировавшие опорные значения функций и "программировавшие" простые итерации, которые позволяли интерполировать и повышать точность. На нижнем уровне работали "таджики", ни бельмеса не понимавшие в том, что они делали, но терпеливо (и с не слишком большим числом ошибок, которые "вычислители" могли отловить) выполняли арифметические операции (сложение и вычитание) с многозначными числами. Через сто пятьдесят лет ровно такой же цех по number crunching был организован для расчёта Бомбы, разве что "таджиков" заменили железными "Феликсами"-арифмометрами.

    История Прони не заслужила бы публикации в "ХВ", если б не одно любопытное обстоятельство. "Таджиками" в цехе у Прони работали в основном цырюльники и парикмахеры. Дело в том, что основная клиентура парикмахеров, аристократы и их жёны, были только что массово гильотинированы, отчего профессия пришла в упадок и многим пришлось поменять работу. А на что ещё может быть нужен парикмахер? Не дашь же ему в руки серп?

    Потомки оценили вклад Прони в науку и инженерное дело. Его имя выбито на Эйфелевой башне в числе 72 величайших учёных Франции.

    В те времена не было никаких хиршей, и величие учёного определялось исключительно общественным мнением и, скорее всего, интригами в Академи де-Сиянс. Среди математиков зияющими пустотами выглядят имена Галуа, Лиувилля и Эрмита. А скольких великих сыновей французского народа среди 72 учёных и инженеров знаете вы? (дочерям не нашлось места на пьедестале почёта).
    elesin
    10:02p
    Влезли мы не туда
    Влезли мы не туда,
    Срочно меняй разметку.
    Полная чехарда.
    Кошка, спаси Креветку.

    В бешенстве города,
    Скоро пришлют ответку.
    Прыгайте – кто куда,
    Кошка, спаси Креветку.

    Вас окружит среда,
    Бодро загонит в клетку.
    Прыгайте – кто куда,
    Кошка, спаси Креветку.

    Празднуют господа:
    Где-то нашли борсетку.
    Прыгайте – кто куда,
    Кошка, спаси Креветку.

    Хочется без труда
    Вам полюбить соседку?..
    Полная чехарда.
    Кошка, спаси Креветку.

    С неба на вас вода,
    Море пошло в разведку.
    Прыгайте – кто куда,
    Кошка, спаси Креветку.

    Кошка, пришла беда,
    Кошка, грызи салфетку.
    Кошка, топи суда,
    Кошка, спаси Креветку.
    lj_xaxam
    4:21p
    А срок он уже поднял?

    Верю!©

    elesin
    9:53a
    Креветка поверила подлой ООН
    Креветка поверила подлой ООН,
    Решила спасать «палестину».
    Махнула крылом, и ушла за кордон,
    И сразу попала в малину.

    А там хамасеки, игильная муть.
    В притоне у Сектора Газа
    Она проиграла и головогрудь,
    И лычки, и два унитаза.

    Жируют хамасы, брильянты в горшке,
    И тонны халяльного кала.
    Дала унитазом она по башке
    Хамасам, и честь отстояла.
    Tuesday, April 16th, 2024
    elesin
    10:53p
    Стансы
    1.
    Опять не собран урожай.
    Неудивительно.
    Креветку ты не обижай:
    Креветка мстительна.

    2.
    Печально Креветке:
    Есть вишня на ветке.
    И яблоки. Впрочем,
    Зеленые очень.

    3.
    На сердце паршиво.
    И дождик везде.
    Креветка пугливо
    Таится в гнезде.
    alex_moma
    5:56p
    Поздравляю!
    "Друзья! Я запустила новый проект! Поздравьте меня и пожелайте удачи!"

    Представляете? Это люди из Сраной пишут в ленте.
    Из Сраной.
    Ну, разумеется, поздравляю.
    Крутя пальцем у виска.
    lj_xaxam
    5:19a
    Позор оппортунистам-демократам!

    ...До самой ссути

    Наблюдать за быстрым ссучиванием дурака или, скажем, поглупением сучонки (чтоб быть гендерно сбалансированным) — одно из редких поучительных зрелищ, которые в ЖЖ случаются просто на каждом углу.

    Вот, скажем, длинноносая сучка geish_a говнейша. Сидя у себя в Нью-Йорке, она тощей жопой пыталась усидеть на трёх стульях сразу: она и прогрессивная американка либерально-демократических взглядов, она и матриотка нэньки-Украйны, она и гордая еврейка с Брайтон-Бич Салтовки. Когда началось небольшое землетрясение и стулья стали разъезжаться в разные стороны, говнейша недолго рвала жопу в когнитивном диссонансе:
    ❝И гнались за ними не только в этой машине, но прицельно и дальше. Три удара перепутать сложно. Я много смотрела на эту тему, меня убедило. Если они ночью не в состоянии отличить машины гумпомощи, то не надо бить по гражданским целям (по ним вообще бить не надо). Израиль для меня в этой войне уже давно перешел за все мыслимые и немыслимые пределы "самозащиты", поэтому этот удар просто уже последняя капля (хотя, я уверена, далеко не последняя).❞
    Зная блядскую привычку этой носатой сучонки тереть посты и комменты, под сукном я скопировал кое-какие брызги из бурного потока актуальных мыслей.



    [ << Previous 25 ]
My Website   About LJ.Rossia.org