Модель исчерпания ресурсов - 1

Аватар пользователя argr

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

Я хочу рассмотреть так называемую культуру Кловис. Считается, что около 14 тыс лет назад небольшая кучка людей смогла перебраться из Евразии на Американские континенты по обмелевшему Берингову проливу. Это были искусные охотники, с каменными орудиями труда, собаками и отточенной техникой охоты. А у американских зверей не было инстинкта боязни человека. В результате люди заселили обе Америки буквально за несколько сот лет. Культура Кловис названа так по имени того места, где ее остатки были впервые обнаружены. Однако следы этой же культуры находили по всем Американским континентам. Вот что пишет википедия:

Культура Кловис — доисторическая культура аборигенов Северной Америки, первым свидетельствам которой 14 000 лет (11 000 радиоуглеродных лет). Её начало связывают с концом последнего ледникового периода, а гибель — с падением кометы и (по данным 2012 года) с падением метеорита (бугага - прим. авт.).

Сейчас мы этот метеорит разъясним.

Модель такая: в Америке пасутся бизоны, охотники на них охотятся. Я почитал в википедии - 14 тыс лет назад там были не только бизоны, но и прочая фауна, но я буду все приводить к бизонам. Скажем, носорог эквивалентен 3 бизонам, но и съедает в 3 раза больше травы. Заяц эквивалентен 1/100 бизона, но и ресурсов биосферы потребляет меньше. В общем, всех травоядных зверей будем считать бизонами, хищниками пренебрежем, ибо пришел главный хищник.

Для начала разберемся с бизонами. Модель такая: по всей америке растет трава, бизоны ее едят. Среди бизонов есть, внезапно, самцы и самки. Из самок определенная доля приносит раз в год по бизоненку. Чтобы узнать прирост за год, берем количество самок (грубо - половина популяции), умножаем на долю самок, способную размножаться (взято от фонаря за 0.8). Срок жизни бизона я взял за 25 лет - т.е. каждый год 1/25 стада надо вычитать. Ну и последнее: считаем, что есть определенный предел, который может позволить биосфера. Выражается он у меня в том, что когда количество бизонов превышает заданное - прироста уже не происходит. Я смоделировал этот эффект при помощи вот такой функции:

0.5 - 0.5 tanh((x-[предел])/[коэффицент сглаживания])

tanh - это тангенс гиперболический. Вот пример графика этой функции, где предел взят за 500, а коэффицент сглаживания - за 100.

Для своих бизонов я взял такие параметры:

Доля самок0.5
Доля самок, которые телятся0.8
Предельное число бизонов100000000
Срок жизни бизона20
Коэффицент100000000

При этом график размножения бизонов получился вот таким:

По горизонтальной оси - количество шагов, один шаг равен 10 годам, так что не удивляйтесь, это не кролики. Предела популяция достигла боее чем за 100 лет. Бизонов разрослось в 2 раза больше, чем число, обозначенное как предел - да и бог с ними. Вышеупомянутый коэффицент сглаживания пришлось взять большим - если взять его меньше, у бизонов начнутся периодические колебания, что мне совсем не нужно.

Теперь перейдем к охотникам. Концепция размножения охотников - такая же, как у бизонов (берем 50% популяции - это количество женщин. Умножаем на коэффицент ПИ (равный 0.5) - получаем число женщин, которые рожают. Вычитаем смертность). Но есть нюанс: охотники должны убивать бизонов, чтобы питаться. Я прикинул так: если есть одно мясо, по калорийности надо где-то килограмм в день. Лично я с удовольствием ел за раз стейк из 0.5 кг мяса, и это я еще за ним не гнался - так что цифра вполне реальная. В бизоне 1000 килограмм, есть мясо, есть потроха, есть сало, есть кости. Примем, опять же от фонаря, что для пропитания одного человека надо валить пол-бизона в год. Ну т.е. предположим, что у нас племя из где-то 150 человек - им надо убивать одного бизона раз в два дня и делить на всех. Как-то так. Выглядит, опять же, вполне реалистично.

Вопрос, что делать, если бизонов осталось уже недостаточно? Мне потребовалась такая функция, которая бы давала y=x (вариант "съели сколько надо было"), когда x маленький, и плавно выходила бы на константу, когда x больше общего количества доступных бизонов (это вариант "съели всех"). Математику я забыл (не знал, да еще и забыл, да), но функцию в конце концов придумал. Вот плод нескльких часов раздумий и мучания гугла:

=-LN(1+EXP(([доступное_количество]-[потребность])/[коэффицент]))*[тот_же_коэффицент]+[доступное_количество]

Эта функция - сильный математический изврат, поэтому коэффиценты пришлось вводить по 2 раза, но в целом получилось нормально (для селькой местности). Вот график, когда доступно 1000, а коэффицент - 100.

Алгоритм вычислений такой: берем общее число бизонов, считаем, сколько их за 10 лет родилось и померло. Далее берем общее число людей, считаем, сколько им надо завалить бизонов. Из этих двух чисел по формуле считаем, а сколько же им удасться убить. Вычисляем "коэффицент сытости", он влияет на рождаемость. Когад сытость 1 - плодимся как кролики, когда 0 - не плодимся. Смертность от голода я не моделировал, и так хорошо получилось. Дальше, несчастные бизоны. Берем естественную смертность и смертность от охотников. Считаем, что если на охоте убито меньше, чем и так бы померло от старости - то значит охотники могли вполне довольствоваться падалью, слабыми и больными. Ну а если на охоте убили больше, чем умерло бы от старости - значит до старости бизоны не доживают, и все потери - в результате действий охотников.

Подставляем все в эксель, и вуаля:

Что мы видим на этой картине? Мы видим грустную историю о том, как съели всех бизонов. В самом начале охотников было всего 100 человек. В максимуме их народилось 170 миллионов. Пока охотников мало, бизоны их не замечают, охотники берут столько, сколько надо (больше просто лень). Однако население растет по экспоненте. По горизонтали отложены на этот раз года. Через полторы сотни лет демографический взрыв утыкается в предел, всех бизонов съедают, и больше остатков культуры Кловис на американском континенте не встречается.

Кстати, первые 80 лет численность населения тоже растет, просто на графике этого не видно. Экспонента же. Можно было бы построить график в логарифмическом масштабе, но это не так наглядно.

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

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

P.S.2 Думаю, многие знают - есть такая известная модель Лотки — Вольтерры (подробности легко гуглятся). Там есть зайцы и лисы. При определенных коэффицентах система входит в колебательный режим: больше зайцев -> больше лис -> меньше зайцев -> меньше лис -> больше зайцев... Моя модель с бизонами и охотниками тоже поначалу показывала колебания, но после того, как я сделал пожестче условье на убивание бизонов, периодичность исчезла.

P.S.3 Эксельный файл лежит здесь: http://www.sendspace.com/file/y9rnra