PDA

Просмотр полной версии : Экономика



Peter
23.07.2009, 22:01
разработал модель спроса.

выкладываю маленькую демонстрационную программку: Спрос на продукты питания (http://project-leviathan.narod.ru/demos/demands.exe).

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

Результаты модели:
при ограниченных средствах человек налегает на дешевые товары.
как только его возможности увеличиваются - стремится к более вкусным и разнообразным продуктам.

зы: для работы программы требуется установленный .NET FrameWork 2.0 или более свежий. Если у вас Windows XP SP3 или Vista - значит он у вас уже установлен.

Dr Gobbels
24.07.2009, 08:05
Уже говорил в аське, повторю здесь. Идея хорошая, но нужно сделать небольшое дополнение: каким-либо путём ограничить потребление снизу. Ввести минимальную прод. корзину, которую человек купит в любом случае, не глядя на траты (т.е. превысит собственный доход, если необходимо, - продав что-то из собственности) - а если она не накидывается (нет товаров), умрет.

Peter
24.07.2009, 08:23
Вообще-то такое ограничение введено - обрати внимание для продуктовой корзины в 2$ и в 7$ количество потребляемых продуктов примерно равно единице (норма калорий на человека). Разница в том что для 2$ это в основном картофель, а для 7$ - мясо и молочка.

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

Dr Gobbels
24.07.2009, 08:47
При доходе 0,1 общий расход получается 0,1, а количества, соответственно, лилипусткие :yes:

ЗЫ: А за то, что корзина грамотно при этом сползает в картошку и хлеб - респект! :.V.: Но вот от минимумов не уйдешь, не уйдешь, колобок! :nono:

Peter
24.07.2009, 10:48
<div class='quotetop'>Цитата(Dr Gobbels * 24.7.2009, 8:47) 297179</div>

При доходе 0,1 общий расход получается 0,1, а количества, соответственно, лилипусткие
[/b]
ну так.. а как иначе? :)

Dr Gobbels
24.07.2009, 11:22
Как - это щас придумаем. :)

А вообще, в принципе с тем, что люди не могут есть так мало, и при низком доходе должны продавать имущество - ты согласен?

Peter
24.07.2009, 11:29
<div class='quotetop'>Цитата(Dr Gobbels * 24.7.2009, 11:22) 297189</div>

Как - это щас придумаем. :)

А вообще, в принципе с тем, что люди не могут есть так мало, и при низком доходе должны продавать имущество - ты согласен?
[/b]
естественно.
или продавать что нибудь, или умирать (если все продано).
человек может оценивать свою покупательную способность исходя из дохода и потребительской корзины прошлого хода и соответственно выставлять собственность на продажу если появилась перспектива голодной смерти.

superregistr
24.07.2009, 12:14
Интересная программа. А можно по-подробнее: что там к чему.

ЗЫ Я тут тоже думаю над экономикой. Я просто ввел потребности одного стандартного человека. Потребности человека из определенной половой, возрастной и благосостоятельной группы связал процентным соотношением с потребностями одного стандартного человека. Отсюда и вытекает спрос. А предложение -- это то, что они производят или привозят.

И еще: в самом начале игры не будет денег, а будет натуральный обмен. Это надо тоже учесть.

Peter
24.07.2009, 12:26
<div class='quotetop'>Цитата(Finansist&#39;s sworn brother * 24.7.2009, 12:14) 297194</div>

Интересная программа. А можно по-подробнее: что там к чему.
[/b]
а что конкретно не понятно?

<div class='quotetop'>Цитата(Finansist&#39;s sworn brother * 24.7.2009, 12:14) 297194</div>

И еще: в самом начале игры не будет денег, а будет натуральный обмен. Это надо тоже учесть.
[/b]
была такая идея уже.

AFro
24.07.2009, 12:54
<div class='quotetop'>Цитата(Peter * 24.7.2009, 11:29) 297190</div>

или продавать что нибудь, или умирать (если все продано).
[/b]
есть еще один вариант - человек становится вором/грабителем/etc. Криминальная составляющая общества...

sergius33
24.07.2009, 13:01
<div class='quotetop'>Цитата(AFro * 24.7.2009, 12:54) 297198</div>

есть еще один вариант - человек становится вором/грабителем/etc. Криминальная составляющая общества...[/b]
процент в зависимости от уровня воспитания) не все же идут воровать)

sergius33
24.07.2009, 14:26
глюки...

sergius33
24.07.2009, 14:32
Посмотрел программку. Не совсем понятно:
1. Это бюджет 1 семьи или1 человека?
2. На какой период такой бюджет и почему при потреблении на 7$ картошку вообще прекращают потреблять?
3. Какова сама идея?
4. Выживаемость питающегося присутствует всегда?
5. Какова область применения?

6. Какая связь с рождаемостью и продолжительностью жизни?

superregistr
24.07.2009, 15:11
<div class='quotetop'>Цитата(Finansist * 24.7.2009, 14:32) 297202</div>

Посмотрел программку. Не совсем понятно:
1. Это бюджет 1 семьи или1 человека?
2. На какой период такой бюджет и почему при потреблении на 7$ картошку вообще прекращают потреблять?
3. Какова сама идея?
4. Выживаемость питающегося присутствует всегда?
5. Какова область применения?
6. Какая связь с рождаемостью и продолжительностью жизни?
[/b]
Попробую ответить :)
1. На одного абстракточеловека с неким бюджетом, например 7 . (Хотя я против абстрактолюдей, их можно принять как стандарт, от которого в процентном соотношении считаются люди по группам: пол, возраст, благосостояние).
2. На один ход. Больше 7 программа не учитывает :)
3. Видимо сделать модель как бюджет человека влияет на количество и качество покупаемых им продуктов питания.
4. Это лучше внести отдельно, пока что речь идет только о питании.
5. Просто модель питания, область применения любая :)
6. Никакая. Речь идет только о питании.

ЗЫ Брату привет :.V.:

Peter
24.07.2009, 16:03
<div class='quotetop'>Цитата(Finansist * 24.7.2009, 13:32) 297202</div>

и почему при потреблении на 7$ картошку вообще прекращают потреблять?
[/b]
потому что она не вкусная :)
можно поменять на репу. картошкой я хотел показать как работает невкусный дешевый товар.

больше семи - учитывает. но человек их уже на еду не тратит.

Aku_Aku
24.07.2009, 16:03
<div class='quotetop'>Цитата</div>
ЗЫ Брату привет[/b]

Чето я не пойму, какие между вами отношения?
Или это просто ник для прикола?

Dr Gobbels
24.07.2009, 16:05
Дополню по п.3 (и одновременно п.5): тут речь не только о питании, но и вообще о любой группе взаимозаменяемых товаров, включая псевдотовар "на черный день" (мы промеж себя привыкли называть его "кубышка"). Из кубышки оплачиваются крупные покупки - дома, например.

П.4: По состоянию на сейчас - да. Сейчас идут дебаты, надо ли устанавливать минимум потребления, и когда человека считать голодающим :bye:

Peter
24.07.2009, 16:11
<div class='quotetop'>Цитата(Dr Gobbels * 24.7.2009, 15:05) 297209</div>

П.4: По состоянию на сейчас - да. Сейчас идут дебаты, надо ли устанавливать минимум потребления, и когда человека считать голодающим :bye:
[/b]
я считаю просто количество съеденного должно быть равно единице. съел меньше единицы - недоедание. в общем то это показано в моей программе - при любом доходе старается съесть столько продуктов чтобы получилась единица (строка "всего", колонка "количество")

sergius33
24.07.2009, 16:53
В животноводстве, конечно, привязано питание к обязательному содержанию условных кормовых единиц, но все очень сильно зависит от возраста и пола :)

<div class='quotetop'>Цитата(Aku_Aku * 24.7.2009, 16:03) 297208</div>

<div class='quotetop'>Цитата
ЗЫ Брату привет[/b]

Чето я не пойму, какие между вами отношения?
Или это просто ник для прикола?
[/b][/quote]
Почитай ветку "Вопросы Веры" и все поймешь)))

Peter
24.07.2009, 22:06
<div class='quotetop'>Цитата(Finansist * 24.7.2009, 16:53) 297212</div>

В животноводстве, конечно, привязано питание к обязательному содержанию условных кормовых единиц, но все очень сильно зависит от возраста и пола :)
[/b]
я думаю нам такие тонкости ни к чему :)

Dr Gobbels
25.07.2009, 16:00
Кстати, Петер, такой вопрос: а как будет новый спрос коррелировать с возможностями предложения?

Например: человек хочет мяса, но скотоводов в посёлке нет. Что тогда?

Peter
25.07.2009, 16:39
проще простого - добавляем в задачу еще одно условие, на количество продукта.

я сейчас погонял задачу на разных данных, метод градиентного спуска все же плоховато с ней справляется, иногда по 100 и более итераций производит - это безобразие :(

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

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

Aku_Aku
25.07.2009, 17:51
Это все хорошо и интересно.
Но меня с ходу интересуют возможные оптимизации подобного алгоритма.
Можно его оформить в виде выборки из таблицы например?
Чтобы не пересчитывать каждый раз

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

superregistr
25.07.2009, 20:47
:yes: Все расчеты нужно сделать заранее, а в готовую игру подставлять уже полученные значения, например, в виде матрицы.

Peter
25.07.2009, 22:50
это понятно и естественно что чем быстрее будет работать алгоритм - тем лучше. вопрос в том как этого достичь. с одной стороны нам нужен реализм а с другой производительность. вопрос в том как совместить одно с другим. сделать более логически адекватную модель, более интересную и интуитивно понятную с одной стороны и не переборщить с вычислениями - с другой.

Dr Gobbels
26.07.2009, 10:52
<div class='quotetop'>Цитата(Finansist&#39;s sworn brother * 25.7.2009, 20:47) 297314</div>

:yes: Все расчеты нужно сделать заранее, а в готовую игру подставлять уже полученные значения, например, в виде матрицы.
[/b]

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

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

Сейчас, как я понимаю, этот расклад рассматривается как запасной, аварийный вариант, на случай если Петеру не удастся совладать с производительностью своей модели :bye:

Aku_Aku
26.07.2009, 14:13
//вопрос в том как совместить одно с другим. сделать более логически адекватную модель

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

потому я и повторяю постоянно, о необходимости общения в режиме онлайн конференции. ИМХО, только таким способом можно адекватно обсудить и объеденить разношерстные наши представления...

Peter
27.07.2009, 11:17
нужно будет собрать собрание скажем во второй половине недели. пока все ставим скайп и учимся с ним управляться. обсуждать будем архитектуру игры.

зы: почему же не понятно как сливать?

Peter
27.07.2009, 12:12
Насчет спроса: в потребительской функции заменил нелинейные ограничения на линейные, соответственно градиентный метод на симплекс-метод. На 4х товарах расчет выполняется в 1000-1500 раз быстрее. чем больше число товаров, тем больше будет выигрыш в производительности.

Потребительская функция задается следующим образом:
k1*x1 + k2*x2 + ... + kn*xn -> max
Summ(p1*x1..pn*xn) <= M
Summ(xf) = 1

x1..n - товары
k1..n - коэффициенты полезности (выражают субъективную ценность товара для потребителя)
p1..pn - цены на товары
xf - продукты питания, подмножество x1..n

M - наличные средства

Dr Gobbels
27.07.2009, 12:18
:applau2: :.V.:

ЗЫ: а можно исходники посмотреть?

superregistr
27.07.2009, 12:58
<div class='quotetop'>Цитата(Peter * 27.7.2009, 11:17) 297422</div>

нужно будет собрать собрание скажем во второй половине недели. пока все ставим скайп и учимся с ним управляться. обсуждать будем архитектуру игры.
[/b]
На этой неделе точно не смогу, в лучшем случае на следующей (если на работе все будет гладко).

Peter
27.07.2009, 20:05
<div class='quotetop'>Цитата(Dr Gobbels * 27.7.2009, 12:18) 297429</div>

:applau2: :.V.:

ЗЫ: а можно исходники посмотреть?
[/b]
сейчас оформлю там всё, и выложу.

<div class='quotetop'>Цитата(Finansist&#39;s sworn brother * 27.7.2009, 12:58) 297438</div>

На этой неделе точно не смогу, в лучшем случае на следующей (если на работе все будет гладко).
[/b]
а после работы? из дома скажем вечером между 8 и 10 по москве

superregistr
27.07.2009, 20:44
<div class='quotetop'>Цитата(Peter * 27.7.2009, 20:05) 297463</div>

а после работы? из дома скажем вечером между 8 и 10 по москве
[/b]
:nono: у меня интернет повременной дома. Большая разница тратить чужие деньги (причем по безлимитке) на работе или тратить свои дома ;) Обсуждайте пока без меня, потом присоединюсь. Или выложите здесь, до чего договорились. :.V.:

Peter
10.08.2009, 10:08
Привет!
Предлагаю вернуться к обсуждению концепции спроса. Я тут на прошлой неделе пробовал и так и эдак исхитриться, но что-то концепция не клеится. нужны свежие идеи!

для начала опишем то как это сейчас реализовано в концепции Гоббельса:

1. Есть производители различных товаров, каждый товар имеет некоторую фиксированную цену, на которые могут быть назначены надбавки (см. ниже).
2. На рынке соответственно присутствуют товары по разным ценам в различных количествах. На каждый тип товара имеется только одна цена, то есть нет такого что продают к примеру 5 носков по 20 рублей и 10 носков по 15.
3. Каждый ход потребитель определяет, какие товары он будет покупать. У потребителя имеются потребности. Они могут быть удовлетворены путем потребления соответствующих товаров.

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

Какую модель потребления предлагал я:

1. Все виды товаров имеют различную привлекательность (потребительную стоимость, ПС) в глазах потребителя. ПС одного товара может быть разной для различных людей.
2. Потребитель распределяет имеющиеся у него средства между имеющимися на рынке товарами согласно потребительской функции ПФ, определяющей количества приобретаемых товаров в зависимости от их ПС и стоимостей (меновая стоимость, МС).

Как это реализовать с технической точки зрения?
Вариант 1.
Каждый товар описывается тремя характеристиками:
1. Цена (за абстрактную единицу товара, для продуктов питания например единица товара это такое его количество, которым может полностью удовлетворить свою потребность в пище человек в течение одного хода).
2. Привлекательность - число характеризующее потребительскую стоимость данного товара в глазах покупателя.
3. Насыщение - число, определяющее порог насыщения. При покупке товара в количестве, превышающем данное значение, его удельная привлекательность становится отрицательной.
Механизм привлекательность/насыщение иллюстрирует закон убывающей полезности (см. википедию). Графически потребительскую функцию товара можно представить как параболу, ветви которой направлены вниз, левая ветвь проходит через точку (0,0), вершина находится в точке (Насыщение,Привлекательность). По оси абсцисс откладывается соответственно количество купленного товара, по оси ординат - субъективная полезность данного количества товара.

Полная ПФ покупателя - это сумма ПФ по отдельным товарам плюс штрафные слагаемые (например значение ПФ сильно уменьшается если сумма количеств покупаемой пищи меньше единицы).

Определение затрат потребителя на различные товары осуществляется путем оптимизации ПФ. В моей демонстрационной программе оптимизация осуществляется методом градиентного спуска.

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

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

В этом случае невозможно сформулировать закон убывающей полезности - человек будет стремиться затариться под завязку самым выгодным товаром по соотношению цена/качество, проигнорировав все остальные товары. В реальности я думаю мало кто питается одними только батонами к примеру.
Выход состоит в том, чтобы ввести еще одну абстракцию над товарами - "потребительские корзины", ПК. в этом случае спрос определяется следующим образом:
1. Разбиваем все товары на группы по их стоимости, к примеру: дешевые, средние, дорогие.
2. Составляем типовые наборы товаров: минимальный - состоящий из одного, самого дешевого продукта (например картошка); экономный - состоящий из продуктов различных типов, при этом для каждого типа (мясные, молочные, овощи, фрукты) выбираются самые дешевые товары (например: рыба, молоко, картошка, бананы); сбалансированный - то же что и предыдущая ПК, но вмето самых дешевых товаров выбираются соответствующие товары скажем первых двух ценовых категорий в равных пропорциях (например: рыба/баранина, молоко/творог, картошка/капуста/морковка, бананы/апельсины); разнообразный - выбираются товары из всех ценовых категорий.
3. Далее определяем сумму, которую человек тратит на питание. Она равна стоимости единицы самого дешевого продукта + надбавка. Надбавка зависит от менталитета.
4. Далее составляем симплекс-таблицу и находим решение. Типовое решение будет состоять из товаров двух различных ПК, в сумме - единица: более дорогой и более дешевой корзины. Например, 30% сбалансированной корзины и 70% экономной. Если расходы на еду превышают стоимость самой дорогой корзины, тогда потребитель покупает единицу данной корзины. Если денег недостаточно - единицу или меньше самой дешевой корзины (однопродуктовой).

Вариант 2 сейчас работает примерно в 1000 раз быстрее. Но с ним возможны проблемы. Сейчас я занимаюсь его доведением до ума и сообщу когда демонстрационная программа будет готова.

Прошу высказываться.

Peter
10.08.2009, 11:04
ps: у меня на работе новая аська, 156665975

Dr Gobbels
10.08.2009, 11:11
Ага. Ждем демонстрашку :yes:

ЗЫ: А я думаю - куда пропал? :huh1: Грешным делом травианство заподозрил уже...

superregistr
10.08.2009, 11:31
<div class='quotetop'>Цитата</div>
Механизм привлекательность/насыщение иллюстрирует закон убывающей полезности (см. википедию). Графически потребительскую функцию товара можно представить как параболу, ветви которой направлены вниз, левая ветвь проходит через точку (0,0), вершина находится в точке (Насыщение,Привлекательность). По оси абсцисс откладывается соответственно количество купленного товара, по оси ординат - субъективная полезность данного количества товара.
[/b]
Здесь речь идет об одном товаре? Как будет осуществляться выбор между разными товарами?

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

Peter
10.08.2009, 11:45
<div class='quotetop'>Цитата(der Blutsbruder des Finanzieres * 10.8.2009, 10:31) 299245</div>

Здесь речь идет об одном товаре? Как будет осуществляться выбор между разными товарами?[/b]
путем оптимизации функции полезности, написано же :)

<div class='quotetop'>Цитата(der Blutsbruder des Finanzieres * 10.8.2009, 10:31) 299245</div>

У меня была такая идея. Есть население, различное по возрасту, по полу и по благосостоянию. Задаем стандартные потребности для одного стандартного человека. потребности населения (а именно определенной группы) связываем процентным соотношением с потребностями стандартного человека.
[/b]
можно поподробнее? можно без пола и возраста, только благосостояние.
что такое стандартные потребности? фиксированные? 1 булочка 1 бивидок? или как

superregistr
10.08.2009, 11:59
<div class='quotetop'>Цитата</div>
можно поподробнее? можно без пола и возраста, только благосостояние.
что такое стандартные потребности? фиксированные? 1 булочка 1 бивидок? или как[/b]
Группы благосостояния: отребье, нищие, бедные, средняки, зажиточные, состоятельные, богачи.

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

Peter
10.08.2009, 12:04
<div class='quotetop'>Цитата(der Blutsbruder des Finanzieres * 10.8.2009, 10:59) 299254</div>

Группы благосостояния: отребье, нищие, бедные, средняки, зажиточные, состоятельные, богачи.

Потребности отребья: плохая пища, лохмотья и ... ну не знаю еще что, палка чтобы собак отгонять.
...
Потребности средняка: средняя пища, средняя одежда и в таком роде.
...
Потребности богача: дорогая пища, дорогая одежда, предметы роскоши, дорогие украшения и т.п.
[/b]
ну так бы и написал, "как в модели Гоббельса" :)
этот подход имеет множество минусов

superregistr
10.08.2009, 12:09
Какие именно минусы?

Peter
10.08.2009, 12:16
негибкость, громоздкость, нереалистичность

удобнее и логичнее не списками товаров оперировать а характеристиками самого потребителя и самих товаров.

superregistr
24.08.2009, 01:45
Формирование цены на товар должно быть по принципу предложение и спрос. Изначально можно принять, что все товары необходимы в каком-то процентном соотношении (изначально задать как постоянную потребность). Допустим еда: хлеб, масло, сыр. Все 3 товара нужны одинаково, т.е. потребность будет 0.33, 0.33 и 0.33 для каждого товара. Допустим масла производится меньше чем хлеба, а сыра меньше чем масла. Следовательно появляется дефицит и цена на 2 последних товара увеличивается пропорционально их дефициту. Если хлеба (или другого любого товара) производится больше чем надо, то излишки пропадают. Цена на хлеб (и на любой другой товар) не может опуститься себестоимости (в моей модели очки труда). Если же хлеба мало, а сыра много, то, наоборот, появляется дефицит на хлеб и цена на хлеб растет.

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

Peter
15.04.2010, 11:26
думаю реализовать самый первый вариант (с убывающей предельной полезностью) через генетические алгоритмы. должно работать довольно быстро. результат будет не слишком "точным" но это и не надо, т.к. люди при покупке товаров руководствуются скорее общими соображениями и спонтанными предпочтениями нежели детально анализируют свой выбор.

Peter
19.04.2010, 11:50
новая реализация потребительской функции: [attachmentid=6513]
для работы нужен .Net Framework 3.5

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

Алгоритм пока сыроват, его надо настраивать. Часто "застревает" на плохом решении.

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

superregistr
19.04.2010, 11:59
Пока не запускается, думаю почему ...

Peter
19.04.2010, 12:00
фреймворк установлен?
какая ошибка при запуске?

superregistr
19.04.2010, 12:03
Ошибка при инициализации приложения (0xc0000135). Для выхода из приложения нажмите кнопку "ОК".

Фреймворк был одно время, потом снес. Без него никак?

Peter
19.04.2010, 12:04
никак, написано же :)

ps: у кого нет .Net Framework 3.5 но есть 2.0: [attachmentid=6514]

PavelZ
19.04.2010, 17:43
Прикольно, работает вроде. Только весь вопрос в том сколько стоит cash

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

Peter
19.04.2010, 17:55
стоимость товаров определяется рыночными отношениями - спросом и предложением.

это следующая вещь которую я хочу сделать. основную идею я уже разработал.

деньги я планирую реализовать как некий особый товар который будет обмениваться [практически] по тем же правилам что и остальные товары.

бартер возможно сделаю также (а может и нет).

PavelZ
19.04.2010, 18:23
кстати для поиска экстремумов (вроде так правильно математически) можно попробовать алгоритм пчёл, вроде он быстрее генетического

Peter
19.04.2010, 18:36
мне кажется алгоритм пчел не очень подходит, т.к. действует много ограничений.
я попробую его если у меня появятся с производительностью проблемы.