OLAP.ru   Rambler's Top100
Вы находитесь на страницах старой версии сайта. Перейдите на новую версию OLAP.ru
  
Поиск по сайту
Новости
Основы OLAP
Продукты
Business Objects/ Crystal Decisions
Каталог
OLAP в жизни
Тенденции
Download
Яndex
 
 
 
TopList
 

Что, если... ? Или экономическое моделирование средствами ORACLE Express


РУССКОЕ ИЗДАНИЕ ORACLE MAGAZINE - №3(5) 1997г.

"Будущее принадлежит тому, кто сможет его
предвидеть и первым к нему приблизится"

Neil Raden, president of
Archer Decision Sciences Inc.

Сергей Архипенков
Консультант LVS/PW BS, Москва

Одним из основных назначений хранилищ данных является поддержка принятия решений средствами оперативного анализа данных (OLAP), другими словами - повышение эффективности деятельности руководcтва организаций. В связи с этим активно обсуждаются технические вопросы об организации этих хранилищ, однако, интересно взглянуть на хранилища данных с другой стороны, с точки зрения системного аналитика - конечного потребителя новой технологии.

Можно утверждать, что любое хранилище и в 10 гигабайт, и в 10 терабайт не поможет нам ответить на ключевой вопрос “что, если... ?” при принятии решения, если мы не будем располагать совокупностью моделей, адекватно отражающих предметную область. Даже когда мы оцениваем тривиальное среднее значение на некотором множестве данных, например, средний доход подразделений компании, то, оперируя с полученным значением, мы априори полагаем (к сожалению, как правило, неосознанно), что низкий доход в одних подразделениях компенсируется более высоким доходом в других. Однако, далеко не всегда такая модель может быть оправдана. Вряд ли кому придет в голову, опираться при принятии решения на оценку средней по палатам температуры больных.

Начиная с 60-х годов активное применение в качестве средства анализа сложных экономических систем получила машинная имитация - проведение на ЭВМ экспериментов с математическими моделями, которые описывают поведение сложной системы в течение заданного или формируемого интервала времени. Известно, что многие крупнейшие корпорации США, такие как КСЕРОКС, Сан Ойл, Филадельфия Электроник, ИБМ и другие, эффективно используют разработанные для своих нужд сложные имитационные модели. Вместе с тем, в силу конкуренции, вне этих корпораций о данных моделях, включая классификацию параметров, гипотезы функционирования, результаты расчетов, практически ничего не известно.

Адекватная экономическая модель предпринимательской деятельности в условиях рыночной неопределенности позволяет руководящему персоналу фирмы:

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

Методологические вопросы имитационного моделирования рассмотрены в [1]. В данной статье предлагается рассмотреть возможности семейства программных продуктов ORACLE Express [2,3] в качеств средства экономического моделирования.

Основные требования к модели

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

  • Прогностический, при котором осуществляется проверка конкретных управленческих решений на множестве всех возможных реализаций “внешних” факторов и управлений конкурирующими фирмами. Поиск и оценка вероятности и условий наиболее вероятного исхода, самого неблагоприятного исхода.
  • Стратегические исследования. Команда (или команды) определяют важнейшие стратегические решения, а оперативное управление фирмами осуществляется машинными имитаторами в соответствие с выбранными стратегическими целями
  • Игровой, при котором оперативные и стратегические управления определяются рядом команд специалистов, играющих за конкурирующие фирмы. Должна быть предусмотрена возможность вмешательства “посредников” (ведущих игры) в управление внешними факторами. Возможна замена всех или части игроков “болванами” (имитационными моделями управленческой деятельности фирм).
  • Диагностический. Апостериорный анализ и выявление причин реально наблюдаемых неблагоприятных явлений.

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

В общем случае к основным моделируемым компонентам экономической системы можно отнести следующие подмодели:

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

Моделируемая экономическая единица (фирма или компания) должна иметь возможность определять значения следующих основных управлений:

  • цена, количество и рынки закупки сырья
  • цена, количество и рынки сбыта готовой продукции
  • расширение / снижение производственных мощностей
  • наем / увольнение работников
  • затраты на оплату труда
  • затраты на НИР и ОКР
  • затраты на рекламу
  • затраты на маркетинговые исследования
  • расходы на торговлю
  • расходы на обучение персонала
  • вступление в коалиции и компенсационные выплаты
  • другие

Основными переменными состояния модели должны быть:

  • спрос на продукцию фирмы
  • объем реализаций фирмы
  • доля фирмы на рынке
  • полный доход фирмы
  • запасы сырья
  • запасы готовой продукции
  • производственная мощность
  • амортизационные отчисления
  • выплачиваемые налоги
  • производственные затраты
  • денежный актив
  • выплаты по кредитам
  • эффективные торговые затраты
  • эффективные затраты на НИР и ОКР
  • другие
Моделирующие алгоритмы должны описывать следующие взаимосвязи:
  • влияние на суммарный потребительский спрос и на спрос продукции данной фирмы:
    • “внешних” факторов
    • цены на продукцию
    • затрат на рекламу
    • расходов на торговлю
    • затраты на НИР и ОКР
    • другие
  • влияние на производительность труда
    • “внешних” факторов
    • заработной платы
    • расходов на обучение
    • другие

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

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

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

Описание модели

экономического моделирования можно, лишь реализовав полномасштабный проект моделирования экономической деятельности фирмы, включающий в себя базу данных от нескольких гигабайт. В нашем случае оценка продукта проводилась в ходе разработки упрощенного макетного варианта, представляющего модификацию экономической модели Management (Avalon Hill Company, Baltimor).

Моделируемые компоненты.

Экономическая деятельность фирмы. Деятельность фирмы заключается в ежемесячной закупке сырья на рынке и производстве некоторое продукции на имеющихся фабриках. Фирма может обрабатывать сырье на фабриках двух типов: обычных и автоматизированных. Сырьевой рынок. Ежемесячно на сырьевом рынке объявляется количество предлагаемых единиц сырья (ЕС) и минимальная продажная цена каждой единицы. Каждая фирма представляет на рынок заявку на некоторое количество ЕС и цену (не ниже рыночной минимальной), которую она готова заплатить за каждую единицу. Удовлетворение заявок фирм осуществляется в порядке убывания цен за ЕС, начиная с максимальной.

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

Рынок транспортных услуг. Данный рынок моделируется в виде случайного потока событий - транспортных кризисов. При транспортном кризисе фирма, которую он затронул (предполагается, что фирмы производители находятся в различных географических регионах) не имеет возможности в данном месяце ни продать продукцию, ни закупить сырье.

Финансовый рынок. Каждая фирма сроком на один год может получить кредит в банке в объеме 50% стоимости своей недвижимости (имеющихся фабрик) под определенный месячный процент 1%(опция). Новый кредит может быть получен только после полного расчета за предыдущий. Срочная ссуда - кредит на 4 месяца стоимостью 2 х 1% процентов в месяц.

Рис.1. СОСТАВ И ВЗАИМОСВЯЗИ ОСНОВНЫХ КОМПОНЕНТ МОДЕЛИ.
Рис.1. СОСТАВ И ВЗАИМОСВЯЗИ ОСНОВНЫХ КОМПОНЕНТ МОДЕЛИ.

Определяющие факторы.

Тенденции общенационального производства. Объемы спроса и предложения на рынках определяются в зависимости от общего состояния национальной экономики (опция), которое может быть на подъеме, стабильным и в состоянии коллапса.

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

Законодательные. Каждая фирма платит 300 $ за каждую не обработанную в данном месяце ЕС и 500 $ - за каждую наличную не проданную ЕП, 1000 $ за владение каждой обычной фабрикой и 1500 $ - за владение автоматизированной фабрикой. Выплаты производятся независимо от объемов производства (постоянные издержки).

Чрезвычайный налог. Те фирмы которых он коснулся, выплачивают в текущем месяце налог, в размере P% (опция) от имеющихся наличных средств.

Чрезвычайные происшествия:

  • авария на фабрике - фабрика в этом месяце не выпускает продукцию
  • рационализация производства - у фирма, которой коснулось это событие, на P% снижаются производственные расходы.

Управления.

Цена и количество закупаемых в данном месяце ЕC.

Цена и количество продаваемых в данном месяце ЕП.

Производство. Каждая фирма решает сколько ЕП и на каких фабриках она произведет в данном месяце. Количество производимых ЕП не может превосходить количества наличных ЕС. Обычная фабрика за месяц может переработать одну ЕС при затратах 2000 $ . Автоматизированная фабрика может сделать то же, либо переработать две ЕС при затратах 3000 $

Расширение / снижение производственных мощностей.

Каждая фирма может строить фабрики. Строительство обычной фабрики стоит 5 000 $ и длится 5 месяцев. Строительство автоматизированной фабрики стоит 10 000 $ и длится 7 месяцев. Обычную фабрику можно автоматизировать за 7 000 $ реконструкция продолжается 9 месяцев, но все это время фабрика может работать как обычная. Половину стоимости фабрики необходимо оплачивать в начале строительства, а вторую половину - за месяц до начала выпуска продукции.

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

Моделирующие алгоритмы.

Спрос на готовую продукцию и предложения по продаже сырья моделируются в виде Марковских процессов с пятью (опция) состояниями. Переход рынка из одного состояния в другое определяется в соответствии с матрицей Pnm вероятности перехода из состояния n в состояние m. Кроме того, в конкретном состоянии рынка объемы закупок и продаж, а также минимальная цена ЕС и максимальная цена ЕП определяются в соответствие с состоянием общенациональной экономики (см. выше).

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

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

Конспект реализации модели средствами ORACLE Express

Первым делом создадим многомерную базу данных:
-> database create business

Ключевым элементом многомерной базы данных являются размерности (dimensions), определяющие пространство, в котором будет происходить изменение переменных модели. Определим главные:
-> define month dimension month
-> ld Simulation time with 1 month step
“Время моделирования с шагом 1 месяц

-> define owner dimension id
-> ld Owners of business list
“Список участников предпринимательской деятельности

Определим основные переменные (variables) модели, которые в ходе имитации будут изменяться по времени и описывать состояние каждого предпринимателя:
-> define factory integer <time owner >
-> ld Curent quantity of factory for each owner
“Текущее количество обычных фабрик каждого участника

-> define factory_a integer <time owner >
-> ld Curent quantity of automatic factory for each owner
“Текущее количество автоматизированных фабрик каждого участника

-> define product integer <time owner >
-> ld Curent quantity of products for each owner
“Текущее количество ЕП у каждого участника

-> define matereal integer <time owner >
-> ld Curent quantity of matereals for each owner
“Текущее количество ЕС у каждого участника

Еще одна вспомогательная иерархическая размерность line позволит наглядно отражать структуру текущих доходов и расходов (рис.3). Она даст нам возможность с необходимым уровнем детализации анализировать как свое финансовое положение, так и положение конкурентов при помощи механизма отношений (relations) и агрегирования данных в Oracle Express.

Рис.2. ИЕРАРХИЧЕСКАЯ РАЗМЕРНОСТЬ LINE
Рис.2. ИЕРАРХИЧЕСКАЯ РАЗМЕРНОСТЬ LINE

Текущее финансовое состояние участников будем характеризовать переменной cash:
-> define cash decimal <time owner line>
-> ld Curent cash for each owner
“Текущее количество наличных средств каждого участника

В соответствие с описанием модели целесообразно ввести еще одну размерность state, по которой будем различать плановые заявки на продажу-покупку сырья и готовой продукции и фактически реализованные сделки:
-> define state dimension id
-> ld Plan/fact state
“Плановые и фактические сделки

Текущее состояние рынка будем описывать заявками на продажу сырья и закупку готовой продукции:
-> define m.sales integer <time state>
-> ld Plan/fact quantity of matereals for sales
“Планируемое и фактическое количество продажи ЕС на рынке

-> define m.purch integer <time state>
-> ld Plan/fact quantity of products for purchases
“Планируемое и фактическое количество закупки ЕП на рынке

-> define m.sales_price decimal <time state>
-> ld Minimal/fact(average) price of matereals for sales
“Минимальная и фактическая(средняя) цена продажи ЕС на рынке

-> define m.purch_price decimal <time state>
-> ld Maximal/fact(average) price of products for purchases
“Минимальная и фактическая(средняя) цена закупки ЕП нарынке

Взаимодействие предпринимателей с рынками сырья и готовой продукции будем описывать переменными:
-> define o.sales integer <time owner state>
-> ld Plan/fact quantity of product sales
“Планируемое и фактическое количество продажи ЕП на рынке

-> define o.purch integer <time owner state >
-> ld Plan/fact quantity of matereals purchases
“Планируемое и фактическое количество закупки ЕC на рынке

-> define o.sales_price decimal <time owner>
-> ld Price of products sales
“Предлагаемая предпринимателем цена продажи ЕП на рынке

-> define o.purch_price decimal <time owner>
-> ld Price of products for purchases
“Предлагаемая предпринимателем цена закупки ЕС на
рынке

Аналогично вводятся переменные, описывающие заявки предпринимателей на производство, получение кредитов, строительство и реконструкцию фабрик. Константы и параметры(опции) модели задаются в виде обычных безразмерных переменных. Безусловно целесообразно определить вспомогательные размерности quarter (квартал) и year (год) связанные с размерностью month необходимыми отношениями. Введенная иерархия позволит более эффективно анализировать исторические данные. Для облегчения создания и наполнения базы можно использовать Express Administrator (рис.3)

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

  • setup - настройка модели и инициализация переменных моделирования
  • step - главная моделирующая программа, осуществляющая последовательный запуск подпрограмм:
    • get_request - обработка заявок участников
    • sales - продажа на рынке ЕП в соответствие с предложениями
    • credit - обслуживание кредитов
    • building - обработка запросов на строительство/реконструкцию
    • product_tax - оплата за хранение не реализованной продукции
    • purchase - закупка ЕС в соответствии с предложениями
    • manufacturing - производство продукции
    • realty_tax - оплата за недвижимость
    • matirial_tax - оплата за хранение необработанного сырья
    • event - моделирование случайных событий (кризисы, забастовки и проч.)
    • balance - расчет текущего финансового состояния участников
    • send_request - формирование состояния рынков, рассылка заявок на приобретение готовой продукции и продажу сырья
  • destroy - эпилог модели.

Реализация перечисленных программ на языке Express не вызывает затруднений. Для иллюстрации изящности многомерных операций приведем программу product_tax:
“Оплата хранения нереализованной продукции
cash(line product_tax) = cash(line product_tax) -
tax.product * product

При этом предполагается, что настройка на текущий шаг выполнена в головной программе step:
limit time to cur_step “рассматриваем только текущий шаг
limit owner to cash(line total) gt 0 “только
кредитоспособные участники

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

Рис.4. РАЗМЕРНОСТИ, ОТНОШЕНИЯ И ПЕРЕМЕННЫЕ МНОГОМЕРНОЙ БАЗЫ ДАННЫХ BUSINESS.
Рис.4. РАЗМЕРНОСТИ, ОТНОШЕНИЯ И ПЕРЕМЕННЫЕ МНОГОМЕРНОЙ БАЗЫ ДАННЫХ BUSINESS.

Более сложная задача - написание программы-игрока. Для этого целесообразно использовать Express Objects, визуальную объектно-ориентированной средой разработки, которая поддерживает объектные механизмы и язык программирования Express Basic. Стандартные объекты предоставляют возможность разработчику использовать любые необходимые интерфейсные компоненты MS Windows и всю мощь таблиц и графиков, которые не только отображают многомерную информацию, в удобном для конечного пользователя виде, но и позволяют ему эффективно гибко манипулировать как представлением данных на экране, так и содержанием отображаемой информации (включая в том числе и прогнозирование временных рядов). Это является необходимым условием для их оперативного анализа при принятии управленческого решения. Поэтому главная трудность состояла в написании “болвана” - машинного имитатора игрока и носила чисто алгоритмический, не связанный со средой программирования характер.

Рис.5. ИНТЕРФЕЙС КОНЕЧНОГО ПОЛЬЗОВАТЕЛЯ, РЕАЛИЗОВАННЫЙ СРЕДСТВАМИ EXPRESS OBJECTS
Рис.5. ИНТЕРФЕЙС КОНЕЧНОГО ПОЛЬЗОВАТЕЛЯ, РЕАЛИЗОВАННЫЙ СРЕДСТВАМИ EXPRESS OBJECTS

Анализ опыта

Реализация средствами Oracle Express описанного макетного варианта экономической модели заняла около месяца. Многомерное представление данных позволило легко и естественно описать моделируемое пространство. Язык программирования Express проявил себя как мощное средство манипулирования массивами данных, которое содержит все необходимые конструкции для эффективной реализации моделирующих алгоритмов. Express Objects позволил с минимальными затратами реализовать интерфейс конечного пользователя-игрока (рис.4), а технология клиент/сервер позволяет, не затрагивая базу данных на сервере, наращивать число игроков-клиентов, использующих разные алгоритмы, и проводить их состязания. Гибкость манипулирования представлением данных на экране и содержанием отображаемой информации может быть по достоинству оценена специалистом-аналитиком (рис.5).

Рис.6. ГРАФИК КОНКУРЕНТНОЙ БОРЬБЫ В УСЛОВИЯХ ОЛИГОПОЛИИ
Рис.6. ГРАФИК КОНКУРЕНТНОЙ БОРЬБЫ В УСЛОВИЯХ ОЛИГОПОЛИИ

Даже такая простая экономическая модель позволила сделать некоторые нетривиальные выводы. Первоначально программа “болван” была реализована по стратегии “добросовестной конкуренции”, которая исходила из того, что каждый участник рынка стремится обеспечить себе максимальную прибыль. При этом, управление осуществлялось по алгоритму “не высовывайся” - в соответствие со среднерыночными показателями фактической цены закупки сырья и продажи готовой продукции. Данный алгоритм хорошо зарекомендовал себя при числе игроков от 5 (олигополия). Однако уже после двух-трех игр в условиях дуполии (два конкурирующих на рынке монополиста) быстро удалось найти (подозреваю, что для специалистов этот результат может быть очевиден) по крайней мере два способа разорения конкурента и монополизации рынка.

Первый способ более быстрый, но работает только при “жесткой” конкуренции на рынке готовой продукции, когда число закупаемых ЕП меньше, числа ЕП, находящихся в наличие у игроков. Способ состоит в продаже своей продукции по демпинговым ценам (возможно даже с убытком). Это позволяет заблокировать продажу ЕП конкурентом и заставляет его нести ежемесячные убытки, связанные с постоянными издержками и оплатой хранения готовой продукции.

Второй способ несколько более медленный, но позволяет разорить конкурента независимо от текущего состояния рынка. Он состоит в “перекрытии кислорода” - закупке сырья по явно завышенным ценам (также возможно с убытком). Это позволяет остановить у конкурента производство, а следовательно и продажу, готовой продукции, что разоряет его, хотя и медленнее, за счет ежемесячных убытков, связанных с постоянными издержками.

Наделение “болвана” способностью распознавать агрессивную стратегию конкурента и адекватно реагировать на нее сделало его более достойным соперником.

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

Литература.

  1. Архипенков С.Я., Завьялов Б.П., Шеховцов А.И. Объектно-ориентированный подход в задачах моделирования сложных систем. Сб. Вопросы кибернетики, серия “Моделирование сложных систем и виртуальная реальность”, Москва, 1997
  2. Persanal Express, User's Guide, Part #A42989-1
  3. Oracle Expresss Objects, User's Guide, Part #A43967-1

 Обсудить на форуме   Написать вебмастеру 

© 2001 Interface Ltd