РефератыЭкономико-математическое моделированиеИмИмитационная модель интеллектуального агента в условиях конкуренции

Имитационная модель интеллектуального агента в условиях конкуренции

Московский Государственный Университет


Прикладной Биотехнологии


Кафедра «Компьютерные технологии и системы»


Реферат:


«Имитационная модель интеллектуального агента в условиях конкуренции»


Выполнила:


студентка АБС IV-3


Рогожкина Е.А.


Проверил:


д.т.н. проф.


Ивашкин Ю.А.


Москва


2004


Имитационная модель поведения интеллектуального агента в условиях конкуренции


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


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


· во-первых, речь идет о рыночной конкуренции, то есть о непосредственном взаимодействии фирм на рынке;


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


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


Под немногочисленностью участников конкуренции понимается относительно малое (в пределах десятка) число фирм господствующих на рынке товаров или услуг. Олигополии могут производить как однородные, так и дифференцированные товары.


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


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


В экономической литературе принято разделять конкуренцию по ее методам на:


· ценовую (конкуренцию на основе цены);


· неценовую (конкуренцию на основе качества потребительной стоимости).


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


· фирмами-аутсайдерами в их борьбе с монополиями, для соперничества с которыми, в сфере неценовой конкуренции, у аутсайдеров нет ни сил, ни возможностей;


· для проникновения на рынки с новыми товарами;


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


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


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


К незаконным методам неценовой конкуренции относятся: промышленный шпионаж; переманивание специалистов, владеющих производственными секретами; выпуск поддельных товаров, внешне ничем не отличающихся от изделий-подлинников, но существенно худших по качеству, а потому обычно на 50% дешевле; закупка образцов с целью их копирования.


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


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


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


Основными методами являются:


1. повышение качества продукции


2. снижение цен («война цен»)


3. реклама


4. развитие до- и послепродажного обслуживания


5. создание новых товаров и услуг с использованием достижений НТР и т.д.


Одной из традиционных форм конкурентной борьбы, как уже было сказано, является манипулирование ценами, т.н. «война цен», используемая, в основном, для выталкивания с рынка более слабых соперников или проникновения на уже освоенный рынок.


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


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


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


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


Постановка задачи


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


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


Модель построена с помощью имитационной системы Simplex 3.


QueryStock1 - накопитель предложений 1 фирмы


QueryStock2 - накопитель предложений 2 фирмы


QueryStock3 - накопитель предложений 3 фирмы


FirmStock- накопитель предложений всех фирм – конкурентов


ff- количество покупателей 1 фирмы


ff2 - количество покупателей 2 фирмы


ff3 - количество покупателей 3 фирмы


balances [1..3] - массив остатков товара


LOST_clients [1..3] - массив, элементы которого показывают есть ли у фирмы необслуженные клиенты


criterian [1..9] [1..100] - массив критериев покупателей


demand [1..3] - массив, содержащий объем упущенных продаж по каждой фирме


EQUIPOISE- логическая переменная: EQUIPOISE = TRUE – на рынке установилось равновесие цен


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


#Вызов внешней с-функции для формирования критериев покупателей


(tmp^):=fillClients(ARRAY criterian,100);


#include <iostream>


#include <stdlib.h>


#include <math.h>


#include <stdio.h>


#include "sys_struct.h"


#include "sys_extern.h"


#include "rts_func.h"


#include "c_macros.h"


using namespace std;


// экспоненциальное распределение


realexprasp(realm)


{


real r;


real exprasp_result;


do {


r=rand()%100;


r=r/100;


} while (!(r!=0));


exprasp_result=-m*log(r);


return exprasp_result;


}


// нормальноераспределение


real nrasp(real m,real stddev)


{


real r1,r2,radsqr;


real nrasp_result;


do {


r1=rand()%100;


r2=rand()%100;


r1=2*r1/100-1;


r2=2*r2/100-1;


radsqr=r1*r1+r2*r2;


} while (!((radsqr>0) && (radsqr<1)));


nrasp_result=r1*sqrt(-2*log(radsqr)/radsqr)*stddev+m;


return nrasp_result;


}


void fillClients(array a,integ r,integ *tmp)


{


int i,j;


srand(1);


for (j=1;j<=r;j++) {


InPara2(a,real,1,j) = rand()%200 + 10;


InPara2(a,real,2,j) = rand()%40 + 30;


InPara2(a,real,3,j) = rand()%2;


InPara2(a,real,4,j) = nrasp(25,5);


InPara2(a,real,5,j) = exprasp(50);


InPara2(a,real,6,j) = rand()&2+1;


InPara2(a,real,7,j) = nrasp(2.5,0.5);


InPara2(a,real,8,j) = exprasp(200);


InPara2(a,real,9,j) = nrasp(0.5,0.5);


}


}


BASIC COMPONENT buyer


MOBILE SUBCOMPONENT OF CLASS query


LOCAL DEFINITIONS


C_PROCEDURE fillClients (ARRAY[n][s] REAL,INTEGER --> INTEGER)


DECLARATION OF ELEMENTS


STATE VARIABLES


ARRAY[9][100] criterion (REAL):=0,


TNext(INTEGER):=0,


tmp(INTEGER):=0


DYNAMIC BEHAVIOUR


ON START DO


(tmp^):=fillClients(ARRAY criterion,100);


DISPLAY(" BUYERS ADDED.n");


END


WHENEVER T>=TNext DO


IF TNext>47 DO


(tmp^):=fillClients(ARRAY criterion,100);


DISPLAY(" NEW BUYERS ADDED.n");


END


TNext^:=TNext+1;


END


END OF buyer


Для каждого олигополиста также случайным образом разыгрываются параметры предлагаемого продукта и сопутствующих услуг. Но каждая фирма описывается в отдельном базисном компоненте: Firm, Firm2, Firm3, а ее параметры записываются в виде вектора в мобильный компонент.


BASIC COMPONENT Firm


MOBILE SUBCOMPONENT OF CLASS query


DECLARATION OF SUBFUNCTION


strategy(INTEGER:past_buy2,LOCATION FOR query:Stock,


ARRAY [l] LOGICAL:LOST_c,ARRAY [l] REAL:bal,INTEGER:ff1,


INTEGER:I,INTEGER:g,ARRAY[n]REAL:param1,INTEGER:cash,


ARRAY[l]REAL:dem-->ARRAY [n] REAL,INTEGER),


form(ARRAY [n] REAL:PP-->ARRAY [n] REAL)


DECLARATION OF ELEMENTS


STATE VARIABLES


ARRAY[2] past_buyers (INTEGER):=0, # количествоклиентовзапрошлыйпериод


ARRAY[9]parameters1(REAL):=0, # массивпараметровфирмы


ARRAY[9]p1(REAL):=0,


TNext(INTEGER):=0,


count(INTEGER):=1,


past_b(INTEGER):=0,


past_b2(INTEGER):=0,


invest(INTEGER):=0 # количество свободных денежных средств


SENSORVARIABLES


ff(INTEGER), # количество покупателей за текущий период


ARRAY [3]balances(REAL), # остатки


ARRAY [3]LOST_cl(LOGICAL), # наличиенеобслуженныхклиентов


ARRAY [9]parameters2(REAL),


ARRAY [9]parameters3(REAL),


firm_leader(INTEGER),


g(INTEGER),


ARRAY [3]demand(REAL) # недостающийобъем


RANDOM VARIABLES


PRI(REAL):UNIFORM(LowLimit:=200,UpLimit:=400), # цена


QUAN(

INTEGER):IUNIFORM(LowLimit:=100,UpLimit:=200), # объемвыпуска


SAL(REAL):UNIFORM(LowLimit:=0,UpLimit:=1), # скидки


ADV(REAL):UNIFORM(LowLimit:=15,UpLimit:=35), # реклама


QUAL(REAL):EXPO(Mean:=50), # качество


ASSORT(INTEGER):IUNIFORM(LowLimit:=1,UpLimit:=3), # товарныйассортимент


TRU(INTEGER):IUNIFORM(LowLimit:=2,UpLimit:=5), # доверие


REMOT(REAL):EXPO(Mean:=150), # удаленность


DELIV(INTEGER):IUNIFORM(LowLimit:=1,UpLimit:=3), # доставка


Inv(INTEGER):IUNIFORM(LowLimit:=1,UpLimit:=4) # денежныепоступленияизвне


TRANSITIONS INDICATORS


print,


ffm,


ffm2,


ffm3


LOCATION


QueryStock1(query):=0 query, # накопитель, содержащий параметры предложения


F1Stock(query):=0 query# накопитель, содержащий параметры предложения фирм- конкурентов


SENSOR LOCATION


FStock(query)


DYNAMIC BEHAVIOUR


ON START DO


parameters1[1]^:=PRI;


parameters1[2]^:=QUAN;


parameters1[4]^:=ADV;


parameters1[5]^:=QUAL;


parameters1[6]^:=1;


parameters1[7]^:=TRU;


parameters1[8]^:=REMOT;


parameters1[9]^:=DELIV;


SIGNAL ffm;


END


WHENEVER T>=TNext


DO IF (NUMBER(FStock)<>0) DO


SIGNAL ffm3;


(ARRAY p1^,past_b^):=strategy(past_b2,LOCATION FStock,ARRAY LOST_cl,


ARRAY balances,ff,1,g,ARRAY parameters1,invest,ARRAY demand);


SIGNAL ffm2;


END


SIGNAL ffm;


TNext^:=TNext+1;


END


ON ffm DO


QueryStock1^: ADD 1 NEW query


CHANGING


(ARRAY QB^):=form(ARRAY parameters1);


END


END


ON ffm2 DO


(ARRAY parameters1^):=form(ARRAY p1);


END


ON ffm3 DO


past_b2^:=past_b;


invest^:=Inv;


END


ENDOFFirm


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


FUNCTION FChoice


MOBILE SUBCOMPONENT OF CLASS query


DECLARATION OF ELEMENTS


INPUT PARAMETERS


FStock(LOCATION FOR query),


ARRAY[n][s]CRITER(REAL), #покупатель


ARRAY [l] Dummy(REAL),


g(INTEGER)


OUTPUT PARAMETERS


ARRAY[l]balance(REAL), #остатокнаскладе


f(INTEGER), #количество покупателей фирмы 1


f2(INTEGER), #количество покупателей фирмы 2


f3(INTEGER), #количество покупателей фирмы 3


ARRAY[n][l]copy_param(REAL),


ARRAY[l]LOST_clients(LOGICAL),


leader(INTEGER),


ARRAY [l]dem(REAL)


LOCAL VARIABLES


ss(INTEGER):=100,


k(REAL):=0, #количествосовпадающихпараметров


rem(REAL):=0,


maxim(REAL):=0,


imaxim(INTEGER):=0,


JMAX(INTEGER):=0,


ARRAY[l][s]QuBu(REAL):=0, #массивсовпадений


ARRAY[l][s]QuanBuy(INTEGER), #массив распределения покупателей


ARRAY [l]clients(INTEGER),


max_cl(INTEGER)


BEGIN


FOR W FROM 1 TO 9


REPEAT


FOR I FROM 1 TO g


REPEAT


copy_param[W][I]:=FStock:query[I].QB[W];


balance[I]:=FStock:query[I].QB[2];


END_LOOP


END_LOOP


#Процесс сравнения критериев покупателей с параметрами продавцов


FOR J FROM 1 TO g


REPEAT


FOR I FROM 1 TO ss


REPEAT


k:=0;


FOR R FROM 1 TO 9


REPEAT


IF R<>2 DO


# Для удовлетворения покупателя параметр продавца не должен отклоняться более чем на 20% от требования покупателя.


IF (FStock:query[J].QB[R]<=CRITER[R][I]+CRITER[R][I]*0.2) AND


(FStock:query[J].QB[R]>=CRITER[R][I]-CRITER[R][I]*0.2)


DO


k:=k+1/9;# степень удовлетворенности покупателя


END


END


END_LOOP


QuBu[J][I]:=k;


END_LOOP


END_LOOP


# Выбор покупателем наиболее подходящей фирмы


FOR I FROM 1 TO ss


REPEAT


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


IF (QuBu[1][I]=QuBu[2][I]) AND (QuBu[1][I]=QuBu[3][I])


AND (QuBu[1][I]<>0)


DO LOOP <ch>


FOR J FROM 1 TO g


REPEAT


# подсчет остатков и выявление упущенных клиентов


IF balance[J]>=CRITER[2][I] DO


balance[J]:=balance[J]-CRITER[2][I];


QuanBuy[J][I]:=1;


LOST_clients[J]:=FALSE;


EXIT <ch>;


END


END_LOOP <ch>


END


ELSIF (QuBu[1][I]<>QuBu[2][I]) OR (QuBu[1][I]<>QuBu[3][I])


DO


maxim:=0;


FOR J FROM 1 TO g


REPEAT


IF QuBu[J][I]>maxim DO


maxim:=QuBu[J][I];


imaxim:=J;


JMAX:=I;


END


END_LOOP


Подсчет остатков и объема упущенных продаж


IF balance[imaxim]>=CRITER[2][I] DO


balance[imaxim]:=balance[imaxim]-CRITER[2][I];


QuanBuy[imaxim][JMAX]:=1;


LOST_clients[imaxim]:=FALSE;


END


ELSIF balance[imaxim]<CRITER[2][I] DO


DISPLAY("Товара НЕТ на %d !!!n",imaxim);


LOST_clients[imaxim]:=TRUE;


dem[imaxim]:=dem[imaxim]+CRITER[2][I];


END


END


END_LOOP


FOR J FROM 1 TO ss


REPEAT


f := f + QuanBuy[1][J];# подсчет количества покупателей 1 фирмы


END_LOOP


FOR J FROM 1 TO ss


REPEAT


f2 := f2 + QuanBuy[2][J];# подсчет количества покупателей 2 фирмы


END_LOOP


FOR J FROM 1 TO ss


REPEAT


f3 := f3 + QuanBuy[3][J];# подсчет количества покупателей 3 фирмы


END_LOOP


clients[1]:=f;


clients[2]:=f2;


clients[3]:=f3;


#Выявление фирмы-лидера


max_cl:=0;


FOR I FROM 1 TO g


REPEAT


IF clients[I]>max_cl


DO


max_cl:=clients[I];


leader:=I;


END


END_LOOP


RETURN


END OF FChoice


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


HIGH LEVEL COMPONENT Market_HIGH


SUBCOMPONENTS


Firm,


Firm2,


Firm3,


buyer,


Market


COMPONENT CONNECTION


Firm.QueryStock1-->Market.QStock1;


Firm2.QueryStock2-->Market.QStock2;


Firm3.QueryStock3-->Market.QStock3;


buyer.criterion{i OF 1..9}{j OF 1..100}-->Market.criterion[i][j]; массивкритериевпокупателей


Firm.parameters1{i OF 1..9}-->Firm3.parameters1[i]; параметры 1 фирмыв 3-ю


Firm2.parameters2{i OF 1..9}-->Firm3.parameters2[i]; параметры 2 фирмыв 3-ю


Market.g-->Firm.g;


Market.g-->Firm2.g;


Market.g-->Firm3.g;


# Количество покупателей


Market.ff-->Firm.ff;


Market.ff2-->Firm2.ff2;


Market.ff3-->Firm3.ff3;


# Остатки на складах


Market.balances[1]-->Firm.balances[1];


Market.balances[2]-->Firm2.balances[2];


Market.balances[3]-->Firm3.balances[3];


# Необслуженные клиенты


Market.LOST_clients[1]-->Firm.LOST_cl[1];


Market.LOST_clients[2]-->Firm2.LOST_cl[2];


Market.LOST_clients[3]-->Firm3.LOST_cl[3];


# Фирма - лидер


Market.firm_leader-->Firm.firm_leader;


Market.firm_leader-->Firm2.firm_leader;


Market.firm_leader-->Firm3.firm_leader;


# Массив, содержащий объем упущенных продаж по каждой фирме


Market.demand[1]-->Firm.demand[1];


Market.demand[2]-->Firm2.demand[2];


Market.demand[3]-->Firm3.demand[3];


Market.EQUIPOISE-->Firm3.EQUIPOISE;


END OF Market_HIGH


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


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


Каждая фирма считает недостающий объем выпуска и в событии 2
при наличии необслуженных клиентов, увеличивает выпуск на недостающую величину.


Событие 3.
Если остаток фирмы больше 1/3 всего выпущенного объема, то олигополист вводит скидки для распродажи и уменьшает выпускаемый объем на 2%.


Далее, исходя из изменений спроса, олигополист варьирует неценовые факторы (событие 4
). Если в текущем периоде увеличивается количество покупателей по сравнению с прошлым периодом, то фирма увеличивает предлагаемый товар на 10 ед. Если же спрос снижается, то фирма предпринимает действия в соответствии с количеством имеющихся свободных денежных средств (переменная cash). При величине cash = 1, соответствующей большой сумме денежных поступлений, олигополист разрабатывает новый продукт и увеличивает свой товарный ассортимент. Дальнейшие изменения переменной cash означают уменьшение денежных средств. При cash = 2 олигополист улучшает качество имеющегося товара, тем самым улучшая свой имидж и увеличивая доверие клиентов. При cash = 3 улучшается реклама. При cash = 4 – доставка.


Данный алгоритм в программе реализован следующим образом.


FUNCTION strategy


MOBILE SUBCOMPONENT OF CLASS query


LOCAL DEFINITIONS


DECLARATION OF SUBFUNCTION


form(ARRAY [n]REAL:PP-->ARRAY[n]REAL)


DECLARATION OF ELEMENTS


INPUT PARAMETERS


past_buy2(INTEGER), #j=2 l=3 n=9


Stock(LOCATION FOR query),


ARRAY[l] LOST_c(LOGICAL),


ARRAY[l] bal(REAL),


ff1(INTEGER),


I(INTEGER), #номерфирмы


g(INTEGER),


ARRAY [n]param1(REAL),


cash(INTEGER),


ARRAY [l]dem(REAL)


OUTPUT PARAMETERS


ARRAY[n] par(REAL),


past_buy(INTEGER)


LOCAL VARIABLES


average_price(REAL):=0,


cash1(INTEGER):=0


BEGIN


(ARRAY par):=form(ARRAY param1);


#Событие 1


FOR J FROM 1 TO g


REPEAT


average_price:=average_price+Stock:query[J].QB[1];


END_LOOP


average_price:=average_price/g;


DISPLAY("средцена %3.2fn",average_price);


IF par[1]>average_price


DO


par[1]:=par[1]-par[1]*0.01;


END


ELSIF par[1]<average_price


DO


par[1]:=par[1]+par[1]*0.01;


END


#Событие 2


IF LOST_c[I]


DO


par[2]:=par[2]+dem[I];


END


ELSIF LOST_c[I]=FALSE


DO


par[2]:=par[2];


END


#Событие 3


IF bal[I]>par[2]/3


DO


par[3]:=par[3]+1;


par[2]:=par[2]-par[2]*0.02;


END


#Событие 4


IF ff1>past_buy2


DO


par[2]:=par[2]+10;


END


ELSIF ff1<=past_buy2


DO


IF cash=1


DO


par[6]:=par[6]+1;


END


ELSIF cash=2


DO


par[5]:=par[5]+5;


IF (par[5]>230) AND (par[7]<6)


DO


par[7]:=par[7]+1;


END


END


ELSIF cash=3


DO


par[4]:=par[4]+5;


END


ELSIF (cash=4) AND (par[9]<3)


DO


par[9]:=par[9]+1;


END


END


past_buy:=ff1;


RETURN


END OF strategy


Результаты


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



Рис. 1 - Процесс установления средней цены



Рис. 2 - Доля рынка каждой фирмы


На графике представлено количество покупателей каждой фирмы. Синяя линия соответствует первой фирме (Firm), красная – второй (Firm2), а зеленая – третьей (Firm3). Очевидно, что некоторая доля рынка перейдет к новичку. Модель показала, какой эта доля будет и статус, который займет новая фирма – олигополист.


На рис. 3 отражена конкурентная борьба, происходящая между олигополистами.



Рис. 3 - Объем выпуска каждой фирмы – олигополиста


Объем выпускаемой продукции напрямую связан со спросом на нее. Чем выше спрос, тем больше выпуск.


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



Рис. 4 - Изменение спроса на товар 1 фирмы



Рис. 5 - Изменение спроса на товар 2 фирмы



Рис. 6 - Изменение спроса на товар 3 фирмы

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Имитационная модель интеллектуального агента в условиях конкуренции

Слов:2624
Символов:29490
Размер:57.60 Кб.