Lex Kravetski (lex_kravetski) wrote,
Lex Kravetski
lex_kravetski

Categories:

Про планирование и вычислительную мощность, часть вторая

В первой части я написал про распространённое заблуждение, будто планирование невозможно, поскольку «всех компов не хватит на учёт товаров». Оказалось, домашнего компа в общем-то хватит даже на то, чтобы учесть все физические экземпляры товаров конечного потребления. Как водится, это не все поняли, поэтому оценку количества этих товаров начали ловко обращать в «невозможность планирования производства». Сообщаю: для планирования производства не нужен учёт каждого физического экземпляра. Планирование производство, оно про другое — про сумму физических экземпляров, а не про каждый отдельный.

Однако вопрос планирования производства всё равно для общей массы людей — что-то вроде метафизики тонких миров. Сам никто не считал, однако из спец-передачи «Приведения существуют» точно знает, как оно там в тонком мире всё обстоит. Правда, в случае с экономикой передача называется «Планирование невозможно». И в ней говорится, что оно невозможно, потому что невозможно совсем.

Редкие люди что-то считали сами. Или хотя бы спрашивали специалистов, как посчитать. Один из таких товарищ awas1952. Он в 1996-м году посчитал.

Должен отметить, что Вассерман мне, конечно, друг, но истина дороже. Вся математика в статье по ссылке — правильная. То есть, при постановке именно такой задачи и решении её именно таким методом получится так, как написано в статье. Однако из этого никак не следует, что плановая экономика в принципе невозможна на данном этапе и даже не следует, что она на данном этапе хуже рыночной. А всё потому, что решена не та задача не теми методами.

Вкратце, вот о чём в статье говорится. Есть у нас сколько-то там видов продукции. Производство одних видов завязано на другие виды. Нам надо посчитать, сколько и чего нам следует произвести в условиях ограниченности ресурсов. Для этого мы строим систему линейных уравнений, где описывается «взаимоотношение» каждого вида продукции с каждым другим. И эту систему нам надо решить для нахождения наших плановых значений.

Видов продукции, положим, у нас миллиард (Вассерман говорит о 20 миллионах, но жизнь же не стоит на месте). Это — 109. Если мы построим для решения системы уравнений матрицу, то она будет иметь 109 столбцов и 109 колонок. Искать решения будем методом Гаусса, который имеет сложность О(n3). Это означает, что для поиска решения нам понадобится порядка n3 операций, где n — размерность матрицы. В нашем случае операций, соответственно, будет 1027. Полагая скорость топовых современных процессоров равной 10 гГц, мы выясним, что для поиска решения нам понадобится 1027/1010 = 1017 секунд (понятно, что это значение — приблизительное, но нам сейчас нужен порядок величины). Год состоит из, приблизительно, 3*107 секунд. Значит, на решение задачи нам потребуется 3*109 лет. Распараллелив вычисления и подключив к решению миллион компьютеров, мы всё равно будем решать её 3000 лет, что нам никак не подходит.

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

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

Как снова совершенно верно замечает автор, для такой матрицы поиск решения даже методом Гаусса уже имеет сложность O(n2,5), однако оценку по времени почему-то уже не даёт, полагая, что «всё равно очень долго». Но, друзья мои, сложность — степенная функция. В такой функции понижение степени может радикально всё изменить. Давайте всё-таки посчитаем.

(109)2,5 = 3*1022 операций

3*1022 / 1010 = 3*1012 секунд = 105 лет

С миллионом компьютеров это уже один месяц на решение. От трёх тысяч лет такой результат радикально отличается. Даже точное решение в лоб уже не выглядит нереальным. Ведь, повысив частоту процессора в десять раз, мы обойдёмся уже сотней тысяч компьютеров. Заделав девайс (который, к слову, уже есть и называется «видеокарта») для матричных операций, реализованных на уровне железа, мы и в тысячу раз скорость вычислений повысим. Тысяча компьютеров уже за месяц справится. Усовершенствуем алгоритм хотя бы до сложности O(n2,4)… В общем, вариантов масса. Но даже безо всяких усовершенствований ясно: задачу реально решить на современном уровне развития за вполне приемлемое время.

Но самый мега-бонус в том, что нам не обязательно решать эту задачу. Конечно, самое точное и общее решение — это приятно, тут без базара. Но наш мир не идеален: это решение — переуточнённое. Оно находится за пределами «шума» — неизбежных ошибок в процессе производства. Такая точность нам просто не нужна. Нам нужна ощутимо меньшая, на которую мы, тем не менее, будем ориентироваться с некоторым её превышением — для надёжности.

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

У того же Вассермана в статье написано вот что: «Рынок добивается избытка. По возможности во всём. Каждого товара должно быть больше, чем нужно». Всё правильно, но с чего бы ровно так же не делать и плану? При рынке ведь товары не возникают из ничего — их кто-то делает. А раз делает, то кто-то распорядился это делать. Плановая экономика тоже распорядится — нет проблем.

Итак, неточный метод решения будет иметь ещё меньшую сложность, нежели в случае с разреженными матрицами. То есть, не точно, но с наперёд заданной точностью, посчитать можно ощутимо быстрее. И такие методы тоже уже есть. Но и это ещё не всё.

Нам не нужен учёт всего миллиарда товаров разом. Мы можем выделить из них однотипные и упростить исходную матрицу. Так, например, яблоки разных сортов для своего выращивания требуют примерно одного и того же оборудования, специалистов одного и того же профиля, примерно одинаковых трудозатрат. Этих сортов, положим для определённости, — сто штук. Мы можем в общем плане считать их просто яблоками, решить задачу оптимизации по яблокам, а потом, внутри решения для «обобщённых яблок» уже оптимизировать по сортам. Это не так точно, но точность — вполне достаточная. В среднем каждый продукт из миллиарда имеет, положим, сто сортов. То есть, наша матрица уменьшается с миллиарда строк до 10 миллионов. Ну и с колонками — аналогично.

(107)2,5 = 3*1017 операций. В тридцать тысяч раз меньше. Вместо миллиона компьютеров безо всяких усовершенствований нам достаточно сотни. И за месяц всё посчитаем.

Ещё, конечно, есть задача по оптимизации «детальных матриц» — их у нас 10 миллионов. Но их размерность существенно меньше.

Но и это ещё не всё. В «общей» матрицы даже после упрощения по сходным типам можно выделить независимые миноры (матрицы, более низких порядков) — ведь будут такие виды продуктов, которые в своём производстве вообще практически никак не пересекаются по своим связям с другими. Пусть таких миноров будет хотя бы десять. И мы сможем решать систему уже для десяти матриц с порядком примерно в миллион.

10*(106)2,5 = 3*1016 операций. Сложность упала ещё на порядок. Сто компьютеров будут решать эту задачу три дня. При незначительных (и уже существующих в реальности) усовершенствованиях — несколько часов.

При этом мы имеем почти точное решение задачи.

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

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

Действительно, представив поведение виртуального собственника в виде некоторого набора параметров, мы можем, например, сгенерировать популяцию «собственников» случайным образом, а потом искать при помощи генетического алгоритма того «собственника» (тот набор параметров), который в результате даст наиболее хорошо соответствующее плану смещение. Совокупность «собственников», обратно же, может выступать как единица популяции. И сгенерировав множество их совокупностей мы генетическим алгоритмом найдём ту совокупность, которая лучше всех справилась с планом. Радость от такого подхода в том, что мы не завязаны на некоторую детерминируемую сложность алгоритма, а можем сами подбирать количество итераций, соответствующую доступному нам времени.

Реальная задача, которую решает планирование, может быть сформулирована так: имеется текущее состояние производства, включающее в себя производственные мощности, человеческие и природные ресурсы, план работ. Надо найти новое состояние, относительно близкое к текущему, но лучше соответствующее спросу. Эта задача — задача принципиально иной сложности, нежели «планирование с нуля», рассмотренное в середине статьи.

С потерей точности, конечно — она от количества итераций зависит. Но нам же не надо получить самое правильное решение, нам достаточно более хорошего, чем при рынке — с чисто экспериментальным поиском (который, кстати, тоже можно организовать). И такое решение таки будет.

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

Tags: контрманипуляция сознанием, политика, социализм-2.0, философия
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 305 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →