Этюды для программистов | страница 34
Длительность исполнения. Одному исполнителю на 4 недели, двум — на 3 или трем — на 2. Две недели должно уйти на программу-игрока.
Развитие темы. Дополнительное удовольствие от программирования игр — возможность поиграть с программой-игроком. Иногда при применении совсем простых эвристических методов может получиться удивительно сложное поведение. В программу, реализующую стратегию игрока, несложно включить элементы самообучения, чтобы ее поведение со временем совершенствовалось. Проведите несколько тренировочных турниров с участием как людей, так и программ (люди тоже обучаемы). Имеется стандартный прием обучения интеллектуальных программ новым стратегиям. Один экземпляр (Альфа) обучается в тренировочной серии игр, второй (Бета) остается на том же уровне знаний, какой он имел перед этой серией. Затем устраивается сравнительная серия игр между ними; если Альфа побеждает, его знания передаются всем копиям программ-игроков, в противном случае Альфа эти знания забывает как бесполезные и с ним проводится новая тренировочная серия.
Игру можно сделать интереснее, если добавить новые правила, которые, видимо, приблизят ее к реальной жизни. Ниже перечислены дополнительные правила. Если какое-либо из правил включается, все правила с меньшими номерами также надо включать.
1. Чрезвычайные ссуды. В случае финансовых затруднений каждый игрок может взять чрезвычайную ссуду. Такая ссуда стоит 2% в месяц вместо обычного 1% и предоставляется сроком на 4 месяца (ссудный процент выплачивается в обычном порядке). Общая сумма непогашенных задолженностей по-прежнему не может быть больше половины суммы, обеспечиваемой всеми фабриками данного игрока. Нельзя брать чрезвычайные ссуды для спасения от банкротства в момент, когда банк уже требует платежа по какому-либо обязательству. Брать чрезвычайную ссуду можно не позже начала цикла, в котором подходит срок платежа.
2. Чрезвычайные происшествия. В начале каждого цикла, непосредственно перед выплатой постоянных издержек, банк объявляет обо всех чрезвычайных происшествиях на этот месяц. На рис. 6.1 приведены вероятности различных чрезвычайных происшествий. Эффект приведенных ниже изменений в расценках накапливается на каждом шаге: так, 10%-ный рост с последующим 10%-ным спадом дает в результате 99% исходного уровня. К чрезвычайным происшествиям относятся:
Забастовка — игрок, у которого началась забастовка, может прекратить производство на 3 месяца, начиная с текущего, или вплоть до конца игры увеличить на 10% все издержки (как постоянные, так и производственные). Игрок, прекративший производство, может участвовать во всех прочих действиях и должен по-прежнему нести постоянные издержки.