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

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

Для начала давайте попытаемся узнать, есть ли вообще способ действовать на рынке без убытка для себя. Единственная причина убытков содержится в необходимости нести расходы на содержание коров. Понятное дело, что продавец применяет максимально бережливую стратегию, когда в стойле у него находиться не более чем одна корова, и только после ее продажи он заказывает следующую. Применяя такой подход, нужно продавать имеющуюся корову первому же покупателю, принадлежащему любому классу, рентабельному с точки зрения Мужика. Остается решить, какие классы признать рентабельными. Для примера возьмем два класса покупателей: представители первого пусть появляются в среднем 3 раза за час и дают 1 рублей, а представители второго – 2 раза и дают 7. Не сложно смекнуть, что продавая только первому классу, можно заработать 3 руля на каждый час простоя, только второму классу покупателей – 14 рублей, а если продавать любому представителю из этих классов, то 14+3 рубля на каждый час оплаченного простоя коровы. Действительно, в среднем придет 3+2 покупателя на час простоя, при этом в среднем 3 из них будут из первого класса, а 2 из второго. Из этих рассуждений можно заключить, что оптимальной по прибыли бережливая стратегия будет тогда, когда корову продают любому покупателю, дающему неотрицательную надбавку к закупочной цене. Если величина средней прибыли час меньше стоимости прокорма, то вряд ли имеет смысл оставаться на рынке.

Давайте теперь перейдем к дискретному по времени аналогу. Чтобы получить хорошее приближение, разобьем ось времени на столь малые одинаковые промежутки, чтобы их величина не превосходила 1/10 времени доставки коров из деревни и при этом вероятность появится хотя бы одному покупателю, не важно, какого класса, за такой промежуток не превосходила все ту же 1/10. Напрашивается еще условие, которое каким-то образом должно ограничивать размер ошибки дискретизации траты на относительно дорогой прокорм, как, например, в случае с очень богатым и редко появляющимся покупателем и постоянно имеющейся возможности при желании очень быстро продать корову по закупочной цене. Однако условие выбора столь малого промежутка, что в его течение в среднем появляется 1/10 покупателя, ограничивает оперативность реакции на лишнюю корову, делая дальнейшее уменьшение временного промежутка нецелесообразным.

Следующий этап построения аналогии состоит в переходе от независимых пуассоновских потоков к зависимым дискретным потокам покупателей. Пусть в непрерывной модели вероятности появится за бесконечно малый промежуток времени покупателям каждой категории относились как a: b: …: h, а вероятность появится хотя бы одному покупателю в промежутке времени, полученном при разбиении, равнялась p, тогда в дискретной модели в начале каждого шага будем проводить однократное испытание Бернули на «Успех» с вероятностью p, и в случае «Успеха» — какое-нибудь испытание с множеством несовместных исходов: одним для каждого класса покупателей и таким же отношением вероятностей между исходами. В силу того, что в непрерывной модели вероятность появиться сразу двум покупателям в течение одного промежутка разбиения по сравнению с вероятностью появления в точности одному была крайне низкой, построенная таким образом дискретная модель, даже не смотря на зависимость между потоками, будет давать хорошее приближение.

Настало время описать сам процесс действий на дискретном рынке. Пусть время доставки T оказалось разбитым на r интервалов. Далее приведен порядок действий внутри каждого интервала разбиения, называемых далее турами или ходами. В начале каждого тура Мужик получает заказанных на это время коров и оплачивает прокорм всего имеющегося у него скота, затем описанными выше испытаниями определяется, пришел ли покупатель и какова с него возможная прибыль. В конце тура Мужику предстоит выполнить два действия: продать корову, либо отказать в сделке и заказать необходимое количество коров, которых ему доставят ровно через r ходов. На этом ход закончен и начинается новый.

В описанной схеме функционирования рынка состояние Мужика на момент принятия решения полностью описывается

1) количеством имеющихся у него в стойле коров,
2) распределением всех заказанных им коров по ближайшим r ходам,
3) наличием и классом покупателя на текущем ходу.

Я должен здесь особо подчеркнуть, что в 2) важно не только суммарное количество коров в заказе, но и их распределение по ближайшим ходам, на которые заказ уже невозможен.

Гипотетически Мужик имеет счетное количество возможных состояний, однако кажется вполне очевидным, что существует такое количество коров M, иметь в заказе, сверх которого, не выгодно независимо от распределения их доставки по r ближайшим ходам. В результате количество состояний, которые действительно участвуют в игре при сколько-нибудь оптимальной стратегии, оказывается конечным.

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

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

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

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

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

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

1) суммарный входящий поток в любую вершину, соответствующую состоянию на начало хода, перераспределяется по исходящим ребрам, соответствующим вероятности прихода покупателя заданного класса, пропорционально вероятностям для этого класса или тоже самое, как было указано в тексте выше, — весу ребра;
2) потоки вдоль ребер, исходящих из вершин, обозначающих состояния на конец хода, могут быть выбраны любыми, лишь бы их сумма была равна сумме входящих в их вершину потоков;
3) сумма всех компонентов потока равна 1.

Выше давался метод присвоения всем ребра их стоимостей. В качестве целевой функции задачи линейного программирования выступает скалярное произведение вектора потока на вектор стоимостей.
Поделиться с друзьями
-->

Комментарии (62)


  1. SergeyUstinov
    22.03.2017 22:12

    Если у нас есть полные данные о спросе на каждый день, то задача решается легко.

    Например, есть таблички:

    «Ожидаемый спрос»
    Поля:
    — Дата
    — ID варианта спроса
    — Вероятность варианта в этот день

    «Варианты спроса»
    Поля:
    — ID варианта спроса
    — номер строки
    — цена продажи
    — количество продаж по данной цене

    (Предполагаем, что у нас есть конечное число вариантов с ненулевой вероятностью.)

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


  1. koldyr
    22.03.2017 22:14

    Где можно сыграть против вашей стратегии?


    1. Sergey_Kovalenko
      22.03.2017 22:28

      Вы можете попробовать написать программу, я не являюсь программистом.


      1. koldyr
        22.03.2017 22:39

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


    1. SergeyUstinov
      22.03.2017 22:29

      Хм…
      Это не стратегия, и наверно даже не комбинаторика. Просто теория вероятностей.
      А сыграть против…
      Когда мне эту задачу пришлось решать на практике (работал аналитиком по управлению запасами), я вспоминал вузовский курс по учебнику с очень прикольными задачками.
      Примерно такими:
      «Ведется пристрелка орудия по цели. Вероятность попадания в
      цель при первом выстреле равна 0,7, при последующих выстрелах эта ве-
      роятность каждый раз увеличивается на 0,05. Какова вероятность того,
      что цель будет поражена лишь третьим выстрелом?»

      В мире очень много мест, где можно сыграть против. Но вы уверены, что хотите играть в такие игры? :)))


      1. ggrnd0
        22.03.2017 22:40

        (1-0.75)*(1-0.8)*0.85=6.375% — а что тут сложного?

        Я хотел бы сыграть. Но только не торговля на бирже.


        1. SergeyUstinov
          22.03.2017 22:44

          Я не про сложность расчета. Я про саму задачу — как пример того, где работает теория вероятностей.
          И лично у меня нет ни малейшего желания играть в такие игры в реальной жизни.


        1. indocoder
          23.03.2017 07:50
          +1

          Почему не (1-0.7) * (1-0.75) * 0.8 = 6%?


          1. ggrnd0
            23.03.2017 10:46

            Да, ошибся


  1. Sergey_Kovalenko
    22.03.2017 22:32

    Хорошая шутка!


  1. ggrnd0
    22.03.2017 22:34
    +1

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


    1. ggrnd0
      22.03.2017 22:51

      Основная проблема: дискретизация.
      Она очень сильно ухудшает точность.

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


      1. Sergey_Kovalenko
        23.03.2017 07:41
        +1

        Парикмахерская эконом класса в условиях сильной конкуренции. Товар один — руки парикмахеров, остальные роли можете назначить сами. Похоже моя модель неплохо описывает этот жизненный случай.


    1. Sergey_Kovalenko
      23.03.2017 07:45
      -2

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


      1. koldyr
        23.03.2017 08:54
        +1

        Так и вы не решили. Вы разбили Т на 10 кусков, может быть больше, но пусть будет 10.
        Для простоты согласимся с ординарностью, в каждый кусок не больше одного клиента (очевидная лажа) и не больше одной коровы под заказ. Тогда вариантов распределения коров 2^10, клиентов 2^10, всего 2^20 состояний, а значит 22^40 переходных вероятностей. Линейностью там и не пахнет, откуда взялось линейное программирование?


        1. Sergey_Kovalenko
          23.03.2017 12:00
          -1

          Боюсь, вы пропустили то место в моей публикации, где явно было оговорено, что вероятность появления клиента в интервале разбиения, без учета принадлежности к классу, не более 1/10. А если, как в Вашем комментарии, действительно «лажа» получается. Еще смотрите на верхнюю оценку M, ее обычно просто получить, она совсем не велика даже при сравнительно малой стоимости прокорма и больших прибылях. В этом случае, состояний по порядку величины r в степени M. Про линейность я не говорил, я говорил о методах решения задачи линейного программирования.


          1. koldyr
            23.03.2017 12:33

            Вероятность появления хотя бы одному не превосходила 0.1. тогда Вероятность что ни одного 0.9. Тогда вероятность что 1 — 0.094, 2- 0.0049, 3 — 0.000175.
            Теперь о состояниях. Как вы умудряетесь просто получить верхнюю оценку М непонятно, что такое не велика, я не понимаю. Имея r раундов вы можете, опираясь на предположение об ординарности, заказать за них от 0 до r коров. Вот и получается 2^r.
            Хорошо, пусть m=1. Это все еще 2^10 состояний и 2^20 переходных вероятностей.
            И как вы собираетесь применять методы решения задач линейного программирования к нелинейной системе?


      1. ggrnd0
        23.03.2017 10:58

        Я вам в тот же вечер набросал алгоритм решения.

        > по мнению здешних же читателей решить никто так и не смог.

        а как вы это определили?


  1. atikhonov
    22.03.2017 23:08

    Можно попробовать описать и решить DSGE моделями


  1. koldyr
    22.03.2017 23:15
    +2

    1/10, с потолка.
    Рассуждения о продажах с потолка, с ошибкой.
    Линейным программированием решать что? Что целевая функция, что ограничения?
    Что вообще такое предельный вероятностный поток? (из какой это книги).
    Что такое мощность дохода?


    1. Sergey_Kovalenko
      23.03.2017 07:38

      1/10 — просто достаточно малое число, квадрат которого достаточно мал, по сравнению с ним самим. Если у оптимальной стратегии выигрыш над бережливым алгоритмом меньше 1/10, то действительно дискретная модель с таким шагом будет грубовата, да и усилия по оптимизации не то, чтобы оправданы. В этом месте повествования, учитывая интерес и с практической стороны, мне не хотелось писать «эпсилон большее нуля», хотя именно эта фраза здесь и подразумевается с дальнейшим взятием придела.


    1. Sergey_Kovalenko
      23.03.2017 21:09

      Дописал пояснения в статью. Надеюсь теперь она стала немного понятнее.


      1. koldyr
        23.03.2017 21:21

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


        1. Sergey_Kovalenko
          23.03.2017 21:44

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


          1. koldyr
            23.03.2017 21:51

            Прекрасно, вот этот вот поток, это произведение предельной вероятности на вероятность перехода. И дальше вы его сворачиваете с вектром стоимости.
            Предельные вероятности откуда взялись?


  1. Sergey_Kovalenko
    23.03.2017 22:44

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


    1. koldyr
      23.03.2017 23:03

      Как же вас тяжело читать, вы себе не представляете. Предельные вероятности в вычислении
      скалярного произведения участвуют?


  1. Sergey_Kovalenko
    24.03.2017 07:00

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


  1. koldyr
    24.03.2017 07:17

    Да Риман с ней с процедурой. Значение скалярного произведения явно или неявно зависит от предельных вероятностей?


    1. Sergey_Kovalenko
      24.03.2017 08:41

      Так же как выбор азимута и длины радиуса в полярных координатах зависит от декартовых координат на евклидовой плоскости. Если выбраны первые, то вторые определены. В этом случае свободный выбор полярных координат зависит от декартовых, как по-вашему?


  1. koldyr
    24.03.2017 08:56

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


  1. Sergey_Kovalenko
    24.03.2017 09:16
    -2

    Откуда взялись эти альтернативы, кода в статье изложен способ достижения всего, что Вы отвергаете. По потоку очень легко определить, какому же распределению вероятностей он соответствует. Статья рассчитана на людей знакомых с теорией марковских процессов.


    1. koldyr
      24.03.2017 10:19

      Вы корону то снимите, пожалуйста. Если конечно реально хотите консенсуса.
      Приведите пожалуйста ссылку на статью, монографию, учебник, где написано определение потока и как по этому потоку найти вероятности переходов.
      А то у вас все легко, 2^40 легко, М оценить легко, оно почему-то должно быть мало.
      И что делать с вероятностью прихода 2, 3 а может быть и большего числа клиентов за один раунд вы тоже не стали объяснять.


  1. buriy
    24.03.2017 09:53

    Ваше решение слишком сложное.
    У меня к вам предложение пойти от обратного:
    Предположить, что стратегия прошлого дозаказа и наличие будущего покупателя не влияет на систему (поскольку мы ими не можем управлять, как и не можем в вашей модели сказать посетителю «придите через час»), и оптимизировать следующие вещи:
    1) у меня 0 коров на складе => стратегия дозаказа, стратегия обслуживания
    2) у меня 1 корова на складе => стратегия дозаказа, стратегия обслуживания
    3) у меня 2 коровы на складе => стратегия дозаказа, стратегия обслуживания

    Мне кажется, каждый раз эти оптимальные стратегии могут быть вычислены явным образом, исходя из входных данных (в т.ч. они могут ссылаться друг на друга, получая систему линейных уравнений).
    А во-вторых, если хотите, чтобы вам реально помогли, предложите набор тестовых данных, на которых можно сравнить стратегии (хотя бы несколько случаев). Тогда можно будет проверить ваше решение, выяснить его оптимальность, и сравнить с предложенными решениями.


    1. mayorovp
      24.03.2017 09:58

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


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


      1. koldyr
        24.03.2017 10:23

        Представте, что вы играете в рулетку. Но ставки делаете на 10 раундов вперед.
        И вот прямо сейчас, у вас уже распланировано 10 ставок вперед и вы планируете 11ю ставку, исходя из того, что выпало прямо сейчас и выпадет в ближайшие 10 раундов.
        Убедите меня что тут пытаются сделать не то же самое.


        1. buriy
          24.03.2017 10:56
          -1

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


          1. buriy
            24.03.2017 11:24
            -1

            Уважаемый минусующий, пожалуйста, просветите, что не так.
            Любая стратегия опирается на планирование, а идеальная стратегия — на планирование на бесконечный срок вперёд.
            Если у нас есть возможность посмотреть «то, что выпало прямо сейчас» только через 10 ставок, то подобное планирование имеет вполне реальный смысл.
            Если же вы имели в виду, что можно построить более хорошую стратегию, имея возможность сразу же посмотреть то, что выпало прямо сейчас — то вы частично правы, иногда это можно сделать, иногда — стратегию улучшить таким образом нельзя.
            Например, представьте, что у вас 1000 монет, и вы можете делать только ставки стоимостью 1 монету. Тогда вы вполне можете делать ставки на 10 раундов вперёд.


        1. mayorovp
          24.03.2017 12:16

          Убедите меня что тут пытаются сделать не то же самое.

          Не убежу, потому что я вообще не понимаю что пытается сделать автор этого поста.


      1. buriy
        24.03.2017 10:54

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

        > Дело в том, что зависит она не только он остатка коров на складе — но и от ожидаемых поступлений.
        Тут согласен. Интуитивно кажется, что в момент за 10 минут до поставки новых коров продавец будет кричать «распродажа! скидки!» и продавать оставшихся коров всем подряд, но с другой стороны, если это будет выгодно, то мы знали это и тогда, когда заказывали ещё коров, и, значит, могли заказать коров ещё раньше, за исключением случая дозаказа при продаже… (Более того — если бы мы продали корову раньше, это было бы ещё выгоднее — ещё меньше затраты на хранение!)

        Будет ли оптимальным планирование «заранее», или же оно будет зависеть от реального прибытия покупателей — мне кажется, для всех случаев в конкретно этой задаче будет оптимальным планирование «заранее».


        1. mayorovp
          24.03.2017 11:11

          При некоторых условиях — да, так и есть. Но и контрпример легко подобрать.

          Будьте добры, подберите. А то у меня не получилось.




          По поводу же распродаж и планирования заранее — не понял вашей мысли.


          1. buriy
            24.03.2017 11:17

            >При некоторых условиях — да, так и есть. Но и контрпример легко подобрать.
            >Будьте добры, подберите. А то у меня не получилось.
            Если покупатели приходят раз в час, а доставка коров занимает неделю, то заказ коров по расписанию будет ничуть не хуже, чем дозаказ в момент покупки. Если числа некратные (доставка — 4 часа, покупка — раз в 3 часа), то дозаказ по расписанию может быть лучше дозаказа в момент покупки.


            1. koldyr
              24.03.2017 11:33
              +1

              Докажите ваше утверждение, в условиях задачи. Хотя бы второй пункт.


            1. mayorovp
              24.03.2017 12:14

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


              К прочтению: https://habrahabr.ru/post/324266/#comment_10126726


              1. buriy
                24.03.2017 12:32

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


                1. mayorovp
                  24.03.2017 12:34

                  Но зачем? Дозаказанные коровы все равно же не придут раньше


                1. koldyr
                  24.03.2017 12:41

                  А дозаказ по расписанию приводит к тому, что если клиентов мало то вы терпите убытки из-за содержания, а если много то терпите убытки из-за недостачи.
                  А если строго — дозаказ по расписанию приводит вас к независимым, одинаково распределенным временам обслуживания. Так что вы удовлетворяете условиям работы Севастьянова, можете применять формулы Эрланга и результат у вас получится хуже.


                  1. buriy
                    24.03.2017 12:51

                    >А дозаказ по расписанию приводит к тому, что если клиентов мало то вы терпите убытки из-за содержания, а если много то терпите убытки из-за недостачи.
                    То же самое рассуждение применимо и к дозаказу в момент покупки.
                    Но я всё же говорил про крайние случаи, когда оптимальное количество товаров на складе — единица.
                    Если у нас случай, когда много заказов и много покупок — то
                    а) нет существенного колебаний количества клиентов
                    б) выгоды от дозаказа только в момент начала очередного часа от дозаказа в момент покупки я не вижу никакой.
                    Возможно, я неудачно выразился, под дозаказом по расписанию я имел в виду дозаказ в определённые моменты времени, но не фиксированный по количеству.


                    1. koldyr
                      24.03.2017 12:54

                      То что Вы не видите суслика не означает что его нет.


                      1. buriy
                        24.03.2017 12:59

                        Ок. В выходные, если будет время, сделаю формулы и вычисления для крайних случаев.
                        Давайте ещё тогда пройдёмся по условиям задачи.
                        Время за простой коровы — оно считается по факту наличия коровы на начало каждого конкретного часа или за фактическое время её нахождения в стойле до момента продажи? (дискретное или вещественное?) Я считал дискретным, ибо сказано «проедает корма на u рублей за единицу времени».


                        1. koldyr
                          24.03.2017 13:11

                          Непрерывно все. За время t корова съедает u*t. С формулами сложности. Для некоторых случаев они есть. Для некоторых можно добыть из марковских моделей. В некоторых случаях может помочь моделирование. А есть случаи когда на текущем уровне развития математики и вычислительной техники ничего нельзя сделать.


                          1. buriy
                            24.03.2017 13:17

                            А что автор говорит по поводу непрерывности этой величины? Подтверждает? Я быстро просматривал, но нигде не нашёл.
                            Если непрерывно, то тогда формулы будут другими и крайним мой рассмотренный случай скорее всего не будет.


                            1. koldyr
                              24.03.2017 13:21

                              Спросите автора. В исходной постановке всё непрерывно.
                              И будте осторожны с экспонентой и факториалом, они коварны.


                    1. mayorovp
                      24.03.2017 13:23
                      +1

                      Но я всё же говорил про крайние случаи, когда оптимальное количество товаров на складе — единица.

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


                      1. buriy
                        24.03.2017 16:04

                        А может ли быть оптимальное сочетание коров быть «1 на складе + 1 в процессе доставки»? Тогда вы будете говорить, что дозаказывать нужно в момент предпоследней продажи? Может ли быть заказ в момент предпоследней продажи плюс K*T часов выгоднее?


                        1. mayorovp
                          24.03.2017 19:59

                          Вот вы продали корову и у вас осталась одна. Вы решили заказать вторую через, для определенности, 5 минут.


                          Сейчас у вас 1 корова. Допустим, за 5 минут покупатели не пришли и через 5 минут у вас тоже одна корова. Что изменилось-то? Почему в одной ситуации с 1 коровой на руках вы решаете подождать, а в другой точно такой же ситуации вы решаете заказать корову?


                          1. buriy
                            27.03.2017 15:54

                            Посмотрите с другой стороны: Допустим к вам пришло 2 покупателя, а у вас всего одна корова…
                            Распределение Пуассона не означает всюду нулевую плотность вероятности, просто вместо «1 клиент придёт в течение 10 минут» у нас есть «1 клиент придёт в течение 10 минут с вероятностью 95%», «два клиента за 10 минут с вероятностью 50%» и мы можем на эти проценты уже делать ставки.
                            Я ещё не добрался до выч. моделирования, поэтому могу только рассуждать устно и приблизительно.


                            1. mayorovp
                              27.03.2017 16:09

                              Никакие вероятности за эти 5 минут не изменились. Почему через 5 минут вы решили купить корову, а в момент продажи — нет?


                              1. buriy
                                27.03.2017 16:19
                                -1

                                >Никакие вероятности за эти 5 минут не изменились.
                                Прям уж никакие? Посмотрите сами на график, разве у него нулевая плотность в какой-либо точке?
                                https://ru.wikipedia.org/wiki/Распределение_Пуассона
                                Да, если мы выкинули решку, то вероятность в следующий раз выпадения орла та же. Но вероятность выпадения орла за эти два раза — больше вероятности выпадения орла за один раз.


    1. mayorovp
      24.03.2017 09:59

      А во-вторых, если хотите, чтобы вам реально помогли, предложите набор тестовых данных, на которых можно сравнить стратегии (хотя бы несколько случаев). Тогда можно будет проверить ваше решение, выяснить его оптимальность, и сравнить с предложенными решениями.

      Да нет у него решения, одни запутанные математикообразные расуждения


  1. hp6812er
    24.03.2017 10:23
    +2

    Класс, ни кода, ни рисунков с пояснениями :(


    1. koldyr
      24.03.2017 10:24

      Кода не будет, по утверждению самого автора.