Professional Documents
Culture Documents
CENTRO TECNOLGICO
PROGRAMA DE PS-GRADUAO EM ENGENHARIA DE
PRODUO
TESE DE DOUTORADO
Florianpolis
2013
i
ii
Florianpolis
2013
iii
iv
vi
___________________________
Prof. Edson Tadeu Bez, Dr.
Examinador Externo
___________________________
Prof. Rafael Machado Casali, Dr.
UFSC JVE
___________________________
Prof. Rogrio Malta
Branco, Dr.
Examinador Externo
___________________________
Daniela Brando
Nascimento, Dra.
Examinadora Externa
vii
viii
AGRADECIMENTOS
Agradeo ao meu orientador, Srgio Fernando Mayerle, pela sua
brilhante e dedicada orientao e sugestes que muito contriburam para
o desenvolvimento desta pesquisa. Agradeo tambm pelo seu apoio,
confiana e pacincia em me atender em longas reunies de orientao
em horrios que, muitas vezes, me eram convenientes.
s minhas filhas, Manuella, Giovanna e Rafaella e a toda minha
famlia pelo incentivo, carinho e principalmente pela compreenso.
Ao prof. Antnio Srgio Coelho pelo apoio e incentivo em
muitos momentos ao longo desta caminhada.
Universidade Federal de Santa Catarina, pela oportunidade de
obter mais esta formao, um dos meus grandes objetivos de vida.
xi
xii
xiii
xiv
RESUMO
CAVALLAZZI, Joo Eugnio; MAYERLE, Srgio Fernando
(Orientador). Modelo de Expanso de Capacidade com Equilbrio
Espacial de Mercados. 2013. 225p. Tese de Doutorado em Engenharia
de Produo Programa de ps-graduao em Engenharia de Produo,
Universidade Federal de Santa Catarina UFSC, Florianpolis (SC), 2013.
Palavras Chaves
Expanso de Capacidade; Equilbrio Perfeito de Markov; Equilbrio de
Nash; Programao Dinmica; Inequaes Variacionais; Opes Reais;
Oligoplio.
xvi
ABSTRACT
CAVALLAZZI, Joo Eugnio; MAYERLE, Srgio Fernando
(Orientador). Capacity Expansion Model with Spatial Market
Equilibrium. 2013. 225p. Doctoral Thesis in Production Engineering
Postgraduate Program in Production Engineering, Federal University of
Santa Catarina UFSC, Florianpolis (SC).
xviii
LISTA DE FIGURAS
Figura 2.1
Figura 5.2
Figura 5.3
Figura 5.4
Figura 5.5
Figura 5.6
Figura 5.7
Figura 5.8
Figura 5.9
Figura 5.10
Figura 5.11
Figura 5.12
Figura 5.13
Figura 5.14
Figura 5.15
Figura 5.16
Figura 5.17
Figura 5.18
Figura 5.19
Figura 5.20
Figura 5.21
Figura 5.22
Figura 5.23
Figura 5.24
Figura 5.25
Figura 5.26
Figura 5.27
Figura 5.28
Figura A.1
Figura B.1
Figura B.2
Figura B.3
xxi
xxii
LISTA DE QUADROS
Quadro 3.1 Lucros da empresa a e empresa b sob
competio Cournot..........................................................73
Quadro 5.1 Premissas bsicas comuns a todas as anlises de
sensibilidade....................................................................123
Quadro 5.2 Dados da rodada base......................................................124
Quadro 5.3 Dados da rodada 1 (rodada base) e 2..............................131
Quadro 5.4 Dados das rodadas 3, 4 e 5..............................................136
Quadro 5.5 Custos de transporte - rodada 6......................................138
Quadro 5.6 Custos de transporte - rodadas 7 a 10.............................140
Quadro 5.7 Dados de capacidades - rodadas 11 e 12.........................145
Quadro 5.8 Dados de probabilidades de investir
- rodadas 13 a 15.............................................................149
Quadro 5.9 Fatores de economia de escala
- rodadas 16, 17 e 18.......................................................152
Quadro 5.10 Plano de expanso e valor presente esperado das
empresas 1 e 2, para uma das sequncias possveis
de investimentos..............................................................154
Quadro 5.11 Crescimento do espao de estados do modelo................158
xxiii
xxiv
SUMRIO
RESUMO........................................................................................xv
ABSTRACT.................................................................................xvii
LISTA DE FIGURAS...................................................................xix
LISTA DE TABELAS................................................................xxiii
1.
1.1
1.2
1.3
1.3.1
1.3.2
1.4
1.4.1
1.4.2
1.5
1.6
1.7
2.
2.1
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.1.6
2.1.7
2.1.8
2.2
2.2.1
2.2.2
2.2.3
3.
3.1
3.2
3.2.1
3.2.2
3.3
INTRODUO..................................................................1
CONSIDERAES INICIAIS............................................1
DEFINIO DO PROBLEMA...........................................2
OBJETIVOS DO TRABALHO...........................................5
Objetivo geral.....................................................................5
Objetivos especficos...........................................................5
INEDITISMO, ORIGINALIDADE E CONTRIBUIO
CIENTFICA.......................................................................6
Ineditismo e originalidade.................................................6
Contribuio cientfica......................................................6
RELEVNCIA E MOTIVAO........................................7
LIMITAES......................................................................8
ORGANIZAO DO TRABALHO...................................9
REVISO BIBLIOGRFICA.......................................11
EVOLUO DA LITERATURA.....................................11
O modelo de Manne e seus sucessores............................11
Substituio de equipamentos.....17
Planejamento de produo..18
Problemas de localizao (transporte)...........20
Teoria de opes reais..... 20
Teoria dos jogos................................................................23
Processos de deciso Markovianos.................................29
Outras formulaes..........................................................31
LITERATURA FOCO DESTA PESQUISA.....................35
Mtodos de soluo...........................................................35
Abordagens conceituais...................................................37
O modelo de Murto et al..................................................42
FERRAMENTAL TERICO........................................47
INTRODUO..................................................................47
PROGRAMAO DINMICA.......................................47
Mecanismo e terminologia...............................................47
Condies de validao de modelos................................50
JOGOS DINMICOS COM INFORMAO
COMPLETA......................................................................53
xxv
3.3.1
3.3.2
3.3.3
3.3.4
3.4
3.4.1
3.5
3.5.1
3.5.2
3.5.3
3.5.4
3.5.5
3.5.6
Introduo.........................................................................53
O equilbrio de Nash de um jogo multiestgio...............54
Jogos sequncias e a programao dinmica reversa...55
Equilbrio de Nash perfeito em subjogo.........................56
EQUILBRIO PERFEITO DE MARKOV (EPM)............58
Definio e existncia de um EPM..................................59
EQUILBRIO ESPACIAL DE MERCADOS...................62
Introduo........................................................................62
Equilbrio na concorrncia perfeita...............................66
Equilbrio no monoplio..................................................68
Equilbrio no oligoplio...................................................70
Mercados espaciais...................76
Algoritmo geral para obteno do equilbrio
espacial...............................................................................87
4.
MODELOPROPOSTO....................................................89
4.1
INTRODUO.................................................................89
4.2
CARACTERIZAO DO AMBIENTE...........................92
4.3
EQUILBRIO DE LONGO PRAZO.................................97
4.4
EQUILBRIO DE CURTO PRAZO................................104
4.4.1 Premissas bsicas do modelo de curto prazo...............105
4.4.2 Formulao do modelo..................................................108
4.5
O ALGORITMO DO MODELO PROPOSTO...............116
5.
APLICAO NMERICA DO MODELO.................119
5.1
INTRODUO...............................................................119
5.2
ANLISE DOS RESULTADOS...... ..123
5.2.1 Consideraes iniciais.. .123
5.2.2 Anlise do modelo com simetria.. 126
5.2.3 Comparativo com uma estrutura sem espacialidade..130
5.2.4 Anlise do modelo com assimetria;..135
5.2.4.1 Assimetria nos custos logsticos..135
5.2.4.2 Assimetria na capacidade.........144
5.2.4.3 Assimetria na probabilidade de decidir....148
5.2.4.4 Assimetria na economia de escala...151
5.2.5 Oligoplio com mais produtores...155
6.
CONCLUSES E RECOMENDAES....................161
6.1
CONCLUSES....... .......161
6.2
RECOMENDAES......................................................164
REFERNCIAS BIBLIOGRFICAS.......................................167
APNDICE A - INTRODUO TEORIA DOS
JOGOS..........................................................................................181
A.1 INTRODUO......................................................................181
xxvi
xxvii
1. INTRODUO
1.1. CONSIDERAES INICIAIS
A produo da indstria de transformao no Brasil cresceu em
torno de 30% nos ltimos 10 anos, acompanhando o crescimento do
PIB, com exceo da crise de 2008 quando sofreu uma queda acentuada.
Em meados de 2009 tornou a crescer, recuperando os nveis de produo
de antes da crise de 2008 (Pastore et al., 2012). Apesar da estagnao
que vem apresentando, a tendncia que a produo industrial
acompanhe o crescimento do PIB em uma perspectiva de longo prazo.
Este cenrio de crescimento, na esteira do aumento da demanda interna,
aliado ao acirramento cada vez maior da competio e o avano
tecnolgico, refora a importncia de um componente do planejamento
das empresas: a gesto da capacidade.
A gesto da capacidade das empresas tipicamente implica em um
planejamento estratgico e um planejamento operacional e ttico. O
segundo hierarquicamente subordinado ao primeiro. As decises
associadas ao planejamento estratgico visam determinar a capacidade
efetiva da operao produtiva, de forma a responder s flutuaes da
demanda ao longo do tempo. Uma vez definido a capacidade de longo
prazo, ou seja, de dois ou mais anos, os gerentes das empresas devem
determinar os ajustes de capacidade ou reconfiguraes de tecnologia ou
de mo de obra medida que uma previso mais acurada de demanda se
torna disponvel.
Segundo Slack et al. (2002), o planejamento operacional,
portanto, frequente e dinmico de forma a acomodar flutuaes da
demanda no curto prazo, ou seja, at 24 meses.
Se determinar a adequada capacidade considerado um dos
componentes mais importantes no planejamento de qualquer empresa de
manufatura ou de servio, para alguns segmentos da indstria, tais
como, de computadores, eletroeletrnicos, telecomunicao e
farmacutica, a gesto da capacidade indiscutivelmente um dos fatores
mais crticos de sucesso no longo prazo. Os produtos de alta tecnologia
tm seus ciclos de vida encurtados com a introduo de novas
tecnologias e, como consequncia, o seu plano de expanso de
capacidade deve ser reestruturado. O papel da gesto de capacidade
igualmente crtico em indstrias nas quais o custo de capital
significativo, tais como, nos segmentos de energia, siderurgia, leo e
gs, e outras indstrias pesadas. O foco deste trabalho o
planejamento estratgico da capacidade, ou seja, a gesto da capacidade
1
OBJETIVOS DO TRABALHO
1.4.
Programao Dinmica
Teoria de Opes Reais
Teoria dos Jogos e Equilbrio de Cournot-Nash
Processos de Deciso Markoviano e Equilbrio Perfeito
de Markov
Teoria da Inequao Variacional
6
RELEVNCIA E MOTIVAO
LIMITAES
ORGANIZAO DO TRABALHO
10
2.
REVISO BIBLIOGRFICA
2.1.
EVOLUO DA LITERATURA
12
C ( x) = kx + e rx C ( x)
O primeiro termo do lado direito do sinal de igualdade representa
os custos de instalao incorridos no incio do ciclo atual. O segundo
termo representa a soma de todos os custos de instalao incorridos nos
ciclos subsequentes e descontados do incio do ciclo seguinte ao
momento presente, ou seja, descontados de um intervalo de x anos. A
rt
expresso e representa o valor presente de uma unidade monetria
gasto em t anos no futuro utilizando uma taxa de desconto r. Assim
sendo, tm-se:
C (x )
x
=
k
1 e rx
13
d log C ( x )
dx
re rx
=0
1 e rx
ou,
rx *
*
e rx 1
19
21
24
27
30
31
33
34
35
37
foco da pesquisa
Opes
Reais
Equilbrio de
Jogos (1)
Jogos de
Opes
Reais (2)
Equilbrio
Perfeito
de Markov
(3)
Processos de
Markov
Jogos de
Opes
Reais (2)
Jogos
Dinmicos (4)
Equilbrio
Perfeito
de Markov
(3)
Processos de
Markov
Investimentos discretos:
Figura 2.7 Modelos com investimentos discretos.
foco da pesquisa
Opes
Reais
Equilbrio de
Jogos (1)
Jogos de
Opes
Reais (2)
Jogos
Investimentos
Dinmicos
discretos(4)
(5)
Equilbrio
Perfeito
de Markov
(3)
Processos de
Markov
40
Mercados espaciais:
Figura 2.8 Modelos com mercados espaciais.
foco da pesquisa
Opes
Reais
Equilbrio de
Jogos (1)
Jogos de
Opes
Reais (2)
Jogos
Mercados
Investimentos
Dinmicos
(4)
Espaciais
(6)
discretos
(5)
Equilbrio
Perfeito
de Markov
(3)
Processos de
Markov
41
no perodo t.
8
42
Q ( X t , I t ,1 ,..., I t ,M ) = i =1 qi ( X t , I t ,1 ,..., I t ,M )
M
commodity
definido
P Q( X t , I t ,1 ,..., I t , M ), X t
preo
da
t dado por:
I t +1,i = I t ,i S it ( K t )
(2.2)
Xt e
Prob { X t +1 = xt +1 | X t = xt } = f t ( xt , xt +1 )
(2.3)
Prob {U t +1 = ut +1 | U t = ut } = gt ( ut , ut +1 )
(2.4)
t
t
Z t*,i ( K t ) = max
t ,i ( K ) t ,i ( Si )
Sit ( K t )
Sit ( K t )
{ (
+ E X ,U Z t*+1,i K t +1
Onde
) )}}
(2.5)
44
(2.6)
i , t , K t , S i .
Em um jogo estocstico como o apresentado nesta seo, as
estratgias so chamadas de Markovianas e o equilbrio resultante um
Equilbrio Perfeito de Markov (Murto et al., 2004), cujos conceitos de
sero detalhados na seo 3.4 desta tese.
Na primeira parte deste captulo foi apresentada uma evoluo
cronolgica da literatura de expanso de capacidade relatando-se as
diferentes formulaes e tcnicas utilizadas e citando-se as indstrias
nas quais tais tcnicas foram largamente aplicadas. Em seguida foram
apresentadas as correntes da literatura que permeiam o problema da
expanso de capacidade e em que situaes tais correntes se confundem.
Tambm foram apresentadas algumas das principais correntes da
literatura utilizadas na modelagem de problemas de expanso de
capacidade de produo. Por fim, foi apresentada, de forma grfica, a
literatura foco desta pesquisa. Tendo este foco em vista, ser
apresentado em maiores detalhes, no prximo captulo, o arcabouo
terico a ser utilizado no desenvolvimento do modelo proposto desta
tese.
45
46
3.
FERRAMENTAL TERICO
3.1.
INTRODUO
PROGRAMAO DINMICA
B 3,1
2
4
3
5
H 1,1
4
A 4,1
2
6
4 C 3,2
F 2,2
0,1 J
8
3
3
4
D 3,3
2,3
4 G
2
I 1,2
49
(3.1)
An W
50
Condies de Separabilidade:
A condio de separabilidade, a qual permite a aplicao da
recursividade dado um determinado plano, tem o seguinte enunciado:
Para todo plano, o valor de cada estado pode ser
necessariamente calculado como uma funo de retorno do estgio
atual e do valor do estado subsequente.
Seja o valor do estado
(m, im )
f (m, im , Am ). Ento,
f ( m , i , Am ) = {r (m , i m , k m ),..., r (n , i n , k n ),..., r (1, i1 , k1 )}
(3.2)
(3.3)
onde,
{(
(3.4)
(3.4b)
f (m, im , Am ) = mn .r (n, in , k n )
(3.4c)
n =1
51
m 1
(3.4d)
n =1
m 1
(3.4e)
n =1
(3.4f)
(3.5)
Pode-se afirmar que um plano A consiste de uma ao k, seguida
de um plano A do estgio n-1, conforme expresso que segue:
An = k n + An1
(3.6)
Tem-se ento;
f n, in , An = f (n, in , k n + An 1 )
(3.7)
52
(n 1, in1 ) ,
sucessor de
f n, in , k n + An*1 f n, in , k n + An1
(3.8)
3.3.1. Introduo
Os conceitos bsicos da teoria dos jogos, necessrios para um
melhor entendimento desta seo, so apresentados no Apndice A deste
trabalho. Jogos dinmicos so jogos que ocorrem em vrios estgios, ou
perodos de tempo, e se quer determinar o retorno ao final do jogo, aps
vrios perodos jogados. Boa parte das aplicaes de teoria dos jogos em
economia requer esta estrutura de jogo dinmico, como no exemplo
clssico do jogo de duas empresas, uma entrante e a outra j operando
no mercado, conforme ilustrado no Apndice A. A literatura usa o
conceito de jogos na forma extensiva para modelar tais situaes
(Fudenberg e Tirole, 1991). Jogos de informao completa, por sua vez,
so jogos cujas aes dos concorrentes podem ser observadas a cada
estgio (Maskin e Tirole, 2001).
53
( ) , as aes viveis do
t +1
54
t +1
h t H t
{s } onde cada s (h ) A (h )
t
i
t =0
t
i
( ), as aes no estgio 2 so
z i si* , s *i z i si , s *i ,
para todo si
(3.9)
ser aplicado para outros jogos onde um nico jogador move-se a cada
perodo.
Diz-se que um jogo multiestgio tem informao perfeita se, para
t
cada estgio e histria h , exatamente um jogador tem um conjunto de
opes, com pelo menos mais de um elemento sua disposio, e o
resto dos jogadores tem apenas uma opo que nada a fazer. Um
exemplo simples deste jogo seria um jogo onde o jogador 1 se move nos
estgios 0,2,4,... e o jogador 2 se move nos estgios 1,3,5, ... . De forma
geral, diz-se que so jogos em que alguns jogadores podem se mover
por diversas vezes em uma fila, e que o movimento no estgio t depende
da histria anterior do jogador. Ou seja, somente um jogador move-se a
cada estgio t. Cada jogador conhece as escolhas passadas de todos os
outros jogadores rivais, isto significa que o nico jogador que se move
no estgio t perfeitamente informado de todos os aspectos do jogo
exceto daquilo que ocorrer no futuro.
A Programao Dinmica pode ser aplicada em jogos finitos de
informao perfeita, onde finito significa que o nmero de estgios
finito e o nmero de aes possveis em qualquer estgio tambm
finito. O algoritmo inicia determinando as escolhas timas no ltimo
T
estgio T para cada histria h , ou seja, a ao do jogador da vez, dada
T
h t dada por,
vi ( s | h t ) E g t ( z i (h t , g t ) | s ) .
(3.10)
10
60
(3.11)
11
61
3.5.1. Introduo
Na seo anterior, foram apresentados os conceitos de equilbrio
em jogos dinmicos com informao perfeita, que sero utilizados para
fundamentar o jogo de longo prazo do modelo a ser apresentado no
capitulo 4. Nesta seo sero apresentados os conceitos para obteno
de um equilbrio de um jogo de curto prazo, no qual, dadas as
capacidades de cada empresa, as empresas competem entre si pelo nvel
de produo escolhido. Tais conceitos consideram o atendimento a
vrios mercados, distribudos espacialmente e com estruturas de
competitividade variadas, ou seja, podendo ser monoplio, oligoplio ou
competio perfeita.
Conforme afirmam Pindyck e Rubinfeld (2010), uma empresa
precisa saber quais os limites de seu mercado, ou seja, quem so os reais
e potenciais competidores para os seus produtos, os produtos oferecidos
e os limites geogrficos deste mercado, a fim de fixar preos, determinar
verbas de publicidade e tomar decises de investimentos.
Em relao aos limites geogrficos, o mercado de alguns
produtos se restringe a uma fronteira geogrfica bastante restrita. Um
cidado que deseja comprar um produto em um mercado, dificilmente se
deslocar para outro mercado remoto para efetuar a transao em funo
dos custos de transporte. Alguns mercados so bastante restritos
geograficamente, como o caso do mercado imobilirio. A maioria das
pessoas que trabalham no centro de uma cidade, procurar moradia a
uma distncia compatvel com o seu deslocamento dirio para o seu
local de trabalho. Por sua vez, o mercado varejista de combustveis
veiculares menos limitado em termos geogrficos, porm tal mercado
ainda bastante regionalizado em funo dos custos de transporte.
Alguns produtos, por outro lado, so comprados e vendidos no
mercado mundial. A possibilidade de arbitragem comprar a um preo
baixo em uma localidade e vender a um preo mais alto em outra
probabilidade. A soma das probabilidades igual a 1 (Fudenberg e Tirole,
1991).
62
S = S ( P)
A figura 3.2 ilustra a curva de oferta, apresentando no eixo
vertical do grfico o preo da mercadoria e no eixo horizontal a
quantidade total ofertada.
Figura 3.2 A Curva da Oferta.
D = D( P )
A figura 3.3 ilustra a curva de demanda, apresentando no eixo
vertical do grfico o preo da mercadoria e no eixo horizontal a
quantidade total demandada.
Figura 3.3 A Curva da Demanda.
Preo
P2
P1
Q1
Q2
Quantidade
(3.12)
Onde, R ( q ) = q * P .
Para maximizar o lucro, a empresa escolhe o nvel de produo
para o qual a diferena entre receita e custo seja mxima. A curva da
receita, R (q ) , uma linha que reflete o fato de que a empresa s
consegue vender um volume maior de produto reduzindo o preo. A
inclinao dessa curva a receita marginal, RMg, a qual a receita
adicional que a empresa obtm quando o nvel de produo aumenta em
uma unidade. Por sua vez, a inclinao da curva de custo total o custo
marginal, CMg, que mede o custo adicional de produo de uma
unidade a mais do produto. O custo total maior que zero quando no
h produo porque existem custos fixos no curto prazo.
Para obteno do volume de produo que gera o lucro mximo,
deriva-se a equao (3.12) pela quantidade produzida e iguala-se a zero:
d / dq = dR(q ) / dq dC (q ) / dq = 0
(3.13)
max VP =
q
t =0
Rt (qt ) Ct (qt )
(1 + r ) t
(3.14)
Preo/Custo
CMg
pe
CMe
Lucro do Produtor
C(q)
CMe
D(q)
RMg
qe
Quantidade
Max
z = qe D(qe ) S (q)dq
(3.15)
p = A (qa + qb )
Onde A o intercepto da curva.
A escolha estratgica de cada empresa , portanto, a deciso de
sua capacidade. Se uma das empresas aumenta sua produo, isto
implicaria na reduo do preo de equilbrio de mercado e afetaria
tambm o lucro do competidor. Supe-se, tambm, que o intercepto da
curva inversa da demanda, representado pelo parmetro A 17,5, o
custo varivel unitrio, c, de ambas as empresas $5 e o custo varivel
total dado por: C (qi ) = cqi . Os custos variveis totais esto
crescendo com o nvel de produo qi . Quanto deveria ser o nvel de
produo de cada uma das empresas? O valor bruto do projeto, Vi , e o
valor presente lquido, VPLi , da empresa i pode ser determinado pelo
valor presente do fluxo de caixa do projeto. A capacidade de cada
71
72
73
Produo - empresa b
9
8
7
6
5
4
3
2
1
0
0
4
6
Produo - empresa a
10
(3.16)
e onde,
m
D = D( xi )
(3.17)
i =1
z i ( x ) = D ( xi ) xi S i ( xi )
(3.18)
i =1
qi
dj
xij
S i ( qi )
S
max
i
77
...
...
max z =
M qi
N xij
D ( w)dw S ( w)dw C
j =1 0
i =1 0
i =1 j =1 0
ij
( w)dw
(3.19)
14
78
s.a.:
ij
=dj
j = 1,..., N
(3.20)
ij
= qi
i = 1,..., M
(3.21)
i =1
N
x
j =1
xij 0
0 qi qimax
i, j
i = 1,..., m
(3.22)
(3.23)
79
z ( x * ), x x * 0, xij 0
(3.25)
Onde:
z ( x* )
z ( x* )
z ( x* )
,...,
,...,
z ( x* )T =
xij
xMN
x11
(3.26)
z ( x* )
= D j (d j ) Si (qi ) Cij
xij
15
(3.27)
80
*
D1 (d1 ) + S1 (q1 ) + C11
x11 x11
..
. ..
.
.. . *
D
d
S
q
C
(
)
+
(
)
+
i
i
ij
. j j
, .xij xij
..
.. ..
D (d ) + S (q ) + C x .x *
MN
N
N
M
M
MN MN
xij 0 , i, j
(3.28)
Max z =
d D (d
j
j =1
M qi
i =1 0
i =1 j =1
j ) S i ( w) dw C ij xij
(3.29)
s.a.
ij
= qi
i = 1,..., M
(3.30)
j =1
M
ij
(3.31)
= dj
i =1
xij 0
i, j
(3.32)
81
0 qi qimax
i = 1,..., m
(3.33)
z ( x * ), x x * 0,
xij 0
(3.34)
Onde:
z ( x* )
z ( x* )
z ( x* )
z ( x* )T =
,...,
,...,
xij
xMN
x11
(3.35)
M qi
j =1
i 01 0
i =1 j =1
z = d j D j (d j ) Si ( w)dw C ij xij
(3.36)
dD j (d j )
z ( x* )
= D j (d j ) + d j
Si (qi ) Cij
xij
dd j
(3.37)
82
dD1 (d1 )
+ S1 ( q1 ) + C11
D1 (d1 ) d j
dd1
x x11*
11
dD j (d j )
x*
D
(
d
)
d
+
S
(
q
)
+
C
,
x
j
j
j
i
i
ij
ij ij
dd j
x MN x MN
D (d ) d dD N ( d N ) + S (q ) + C
N
N
N
M
M
MN
dd N
xij 0 , i, j
(3.38)
qi
j =1
j =1
(3.39)
ij
= qi ,
(3.40)
= dj,
(3.41)
i = 1,..., m
(3.42)
j =1
m
ij
i =1
0 qi qimax
Onde,
xij 0,
i, j
(3.43)
( )
( )
cncava, D j d j
Cij e
xij , para i, j , i
j.
84
*
1
equilbrio
*
2
*
m
x = x , x ,..., x
*
de
Nash
} , tal que
*
um
*
i
*
i
vetor
de
estratgias
*
i
ui ( x , x ) ui ( xi , x ), xi i , i
( )
F x * , x x * 0,
(3.44)
u ( x)
u ( x)
xi ui ( x) = i
,..., i
xin
xi1
(3.45)
17
85
qi
j =1
j =1
(3.46)
dD (d j )
z i ( x)
= D j (d j ) + xij
S i (q ) Cij
xij
dd j
(3.47)
dD1 (d1 )
+ S1 (q1 ) + C11
D1 (d1 ) xi1
dd1
*
x x11
11
D (d ) x dD j (d j ) + S (q ) + C
, x x *
j
j
ij
i
i
ij
ij ij
dd j
xMN xMN
D (d ) x dDN (d N ) + S (q ) + C
N
N
iN
M
M
MN
dd N
xij 0 , i, j
(3.48)
86
F ( x* )T , x x* 0,
(3.49)
( ))
x k +1 = P x k k F x k
(3.50)
18
87
Onde x
k +1
( )
( )
um campo vetorial
k +1
k +1
( )
88
4.
MODELO PROPOSTO
4.1.
INTRODUO
89
t=T
t=0
Passo 2:
atualiza
produo e
quantidade
transportada
Jogo de
Curto Prazo
Jogo de
Curto Prazo
Passo 1:
atualiza
capacidades
Jogo de
Longo Prazo
Jogo de
Longo Prazo
90
4.2.
CARACTERIZAO DO AMBIENTE
Mercados produtores
...
...
Mercados consumidores
Fonte: elaborado pelo autor.
I = {1, 2,..., M }
J = {1, 2,..., N }
= {T , T 1,..., t ,..., 0}
K = K1 K 2 ... K M
k t = ( k t ,1 , k t ,2 ,..., k t , M ) K
(t ,i ) = at ,i
0 < <1
uma
economia de escala;
constante
de
t ,i ( kt , xt )
t ,i ( kt , xt ) ser
t ,i
o tamanho da
t ,
sistema
evolui
de
k t = ( k t ,1 , k t ,2 ,..., k t , M ) K para
kt 1,r = kt ,r + t , r
kt 1,i = kt ,i
i r
(4.1)
i ( t , k t , t ,i ) = ( t ,i ) + t ,i ( k t , xt )
(4.2)
maximizar
t =1
T t
i ( t , k t , t ,i )
sujeito a: k t 1 = k t r t , r
(4.3)
t = T , T 1,...,1
Z i* ( t , k t ) = max Z i ( t , k t | t ,i )
t ,i
*
i
Z ( t , k t ) = max
t ,i
{ (
t ,i
) + t ,i ( k t , xt ) + Z i* ( t 1, k t t ,i )
(4.4)
Onde
19
96
4.3.
de
Nash
um
*
2
*
M
plano
*
i
timo
descrito
por
Z i* ( t , k t ) = Z i ( t , k t | t*,i , *i ) Z i ( t , k t | t ,i , *i ) t ,i
Onde
*
i
(4.5)
t*,i ,
*
produtores, i .
Um processo de refinamento das estratgias de equilbrio Nash
para eliminar estratgias no crveis chamado de equilbrio perfeito em
subjogo. conhecido que todo o equilbrio perfeito em subjogo um
equilbrio de Nash (Fudenberg & Tirole, 1991).
Conforme definio 3.1, um equilbrio de Nash um equilbrio
perfeito em subjogo se as estratgias dos jogadores constituem um
equilbrio de Nash em todo subjogo.
Fudenberg and Tirole (1991) mostram que todo o jogo finito de
informao perfeita20 tem um equilbrio de Nash perfeito em subjogo
20
97
98
Empresa A
No Investir
Investir
Empresa B
Investir
No Investir
(0,2)
(0,2)
(-3,-1)
(2,1)
Soluo de Equilbrio de Nash
w ( w)
{p
t ,1
E Z i* ( t , k t ) = pt ,r E Z i t , k t | t*,r , *t,-r
r =1
(4.6)
Onde,
E Z i t , k t | t*,r , *t,-r =
Max t ,i ( t ,i ) + t ,i ( k t , xt ) + E [ Z i ( t 1, k t -1 )] para i = r
t ,i ( k t , xt ) + E [ Z i ( t 1, k t -1 )]
para i r
t ,i
100
(4.7)
Onde, E [Z i (t 1, k t -1 )] o valor esperado da empresa i no
estgio t-1, dada a varivel aleatria que governa o sequenciamento
dos investimentos, considerando-se que quando i = r indica que a
empresa i est investindo no momento t.
Portanto, conforme ilustrado na figura 4.4, existe uma
probabilidade pt ,i da empresa i ser escolhida para realizar um
investimento no perodo t. Ao tomar tal deciso neste momento, a
empresa i ignora as aes de outros competidores, e move-se de um
estado k t para outro estado k t-1 de acordo com o tamanho de seu
investimento
101
i (t , k t , t ,i )
k max
kmax
max
pt , M
pt ,2
pt ,1
l
1
0
t
i=M
...
2
1
kt 1, r = kt , r + t ,r
i=2
i=1
E Zi* ( t ,k t )
i=M
...
i=2
t-1 i=1
E Z i* ( t 1,k t )
102
t =0
t =1
t i* ( t , k t , t ,i ) = T t i* ( t, k t , t ,i ) + T Ri ( k 0 )
T
primeiro
T t
i* (t , k t , t ,i ) ,
termo
aps
sinal
de
(4.8)
igualdade,
t =1
Ri ( k 0 ) =
1 *
0,i k 0 , x0
1
(4.9)
103
104
kt ,i , deve decidir
qit = xijt
(4.10)
j =1
0 qit kt ,i
x 0,
t
ij
(4.11)
(4.12)
105
Si qit , kt ,i = Ai + Bi qit
(4.13)
D j ( d j ) , dada por:
( )
D j d tj = Aj + Bt , j d tj
(4.14)
Onde d j =
t
ij
i =1
( )
Cij xijt .
Bt +1, j = Bt , j /(1 + )
Onde
(4.15)
t
j
d tj+1 = ((1 + ) / Bt , j )( Aj D j ) = (1 + )d tj
(4.16)
Aj
d tj + 1 = (1 + ) d tj
P
d tj + 1
d tj
Quantidade
t +1 =
t +1 =
(d tj+1 / D j )
(d tj+1 / D j )
d tj / D j
d tj / D j
= t
(1 + )(d tj / D j )
(1 + )d tj / D j
(4.17)
(4.18)
t*
t*
t*
t*
t*
t*
t ,i ( k t , xit* , xt*i ) no
t*
t*
t*
(4.19)
( )
F x t* , xt x t* 0,
xt t
(4.20)
108
Onde F ( xt ) xt t ,1 (k t , xt ),..., xt t , M (k t , xt )
1
, um
t ,i (k t , xt )
t ,i (k t , xt )
xt t ,i (k t , x ) =
,...,
1
xit1
x1t N
(4.21)
( )
t
t , i (k t , x t ) =
x (A
t
ij
) ( A ' + B ' ) d
t
j + B jd j
j =1
C ( x ) x
t
ij
ij
t
ij
(4.22)
j =1
( )
= Aj + Bj dtj + xijt
d ( Aj + Bj d tj )
dd tj
) ( )
(4.23)
ou,
t,i (kt , xt )
xijt
( )
(4.24)
equao
determinar
vetor
t
t
t
A
+
B
d
x
B
+
A
'
+
B
'
.
q
+
C
xt xt*
1 t,1 1 11 1
1 1 1
11
11 11
, xijt xijt*
Aj + Bt, j dtj xijt Bj + A'i + B'i . qtj +Cij
t t*
A + B dt xt B + A' + B' . qt + C xMN xMN
N t, N N
MN
N
M
M M
MN
4term
2term
1term
3term
(4.25)
t*
(4.20).
t*
11
Ou
t*
ij
x = x ,..., x ,..., x
deve-se
) , tal que:
t
seja,
t*
MN
t
t
t
t
para todo x = x11,..., xij ,..., xMN t
(A
j =1 o
t
N xij
t
M qi
i =1 0
i =1 j =1 0
xijt
N d tj
d
A j + Bt , j w dw
dxijt j =1 o
t
M qi
i =1 0
( A 'i + B 'i w) d w
t
N xij
ij
i =1 j =1 0
( w) dw
(4.27)
110
) (
( )
(4.28)
d
j =1
t
j
(A
t
M qi
i =1 0
i =1 j =1
( )
(4.29)
t , i (k t , x t ) =
N
d
d j Aj + B j * d j
dxij j =1
M qi
(4.30)
Resolvendo a equao (4.30) chega-se na seguinte expresso:
t,i (kt , xt )
t
ij
= ( Aj + Bt, j d ) + d
t
j
t
j
t
j
111
Generalizao do modelo:
O modelo neste ponto estendido de forma a permitir a sua
generalizao para todas as estruturas competitivas, ou seja, o oligoplio
e seus extremos equivalentes, a competio perfeita e o monoplio. Para
tal, ser adicionado um operador Tijt na formulao do problema,
conforme segue. O segundo termo dos vetores de derivadas depende do
valor assumido para Tijt . Logo, se o mercado i oligopolstico, assumese que Tijt = xijt . Por sua vez, quando o mercado produtor i
monopolstico, assume-se que Tijt = d tj . Por fim, se o mercado i
perfeitamente competitivo, assume-se que Tijt = 0 . Neste ltimo caso, o
segundo termo cancelado da formulao final do problema de
inequao variacional. Desta forma, a equao (4.20) pode ser reescrita
da forma que apresentada a seguir:
t
t
t
A1 + Bt,1 d1 T11 B1 + A'1+ B'1. q1 +C11
xt xt*
11 11
t
t
t
, xijt xijt*
Aj + Bt, j d j Tij Bj + A'i + B'i . qj +Cij
t t*
A + B dt Tt B + A' + B' . qt + C xMN xMN
N t, N N
MN
N
M
M M
MN
4term
2term
1term
3term
Para todo
t
t
xt = x11
,..., xijt ,..., xMN
t
(4.32)
C + Bt' , j
C
S j ( d j ) = A 'j + B t' , j * d
Aj
qi
Quantidade
(a)
Aj
D j ( d j ) = A j + Bt , j * d
Bj
P Bt , j
d
(b)
Quantidade
Ci,j
Quantidade
(c)
Fonte: elaborado pelo autor.
114
t ,i
= Si . Cij + D j + B j d tj
(4.33)
= S i Cij + D j + Bt , j d tj
(4.34)
t ,i
(4.35)
t
t ,i
(4.36)
115
4.5.
116
a.
( )
F x t* , xt x t* 0, x t , que no modelo
t
t
t
t
(4.32) e onde x = x11,..., xij ,..., xMN . Ento os seguintes passos podero
t*
Passo 1 Obtenha x
t ,0
t . Faa n=0.
t , n +1
P ( xt ,n n F ( xt ,n )) .
Passo 2 Calcule x
Passo 3 Se x
x > , faa n n + 1 e volte ao
passo 2.
t , n +1
Passo 4 Apresente x
.
t , n +1
t ,n
118
5.
5.1.
INTRODUO
mercados produtores
1
mercados consumidores
Fonte: elaborado pelo autor.
120
121
pt ,i ,
122
Valores
$5
80
t,i
t
i
1,260
0,227
1,260
0,227
p ti
20
0,120
0,100
123
()j
P
,=
Q
X
t(a
.d
))(
D
17,2534 -0,5
1,450
1,240
1,450
1,240
k t ,i
1,260
0,227
1,260
0,227
10
10
1,000
1,000
0,500
0,500
124
Unidades - Empresa 1
35
30
25
20
15
10
5
0
0
10 11 12 13 14 15 16 17 18 19 20
Perodo (anos)
Expanses
Produo
Capacidade
125
(6)
(7)
750
700
650
600
550
500
450
y = -0,975x + 1181
400
400
450
500
550
600
650
700
750
800
424
400
376
371
350
Frequncia
300
250
200
172
150
150
100
50
0
-250
-200
16
18
50
10
0
-150
-100
-50
100
150
200
250
128
Empresa 2
35
30
25
20
15
10
5
0
0
10
15
20
25
30
35
40
45
Empresa 1
Capacidade T6
Fluxo T6
Capacidade T12
Fluxo T12
Capacidade T18
Fluxo T18
Rodada 1
Regio 1
Regio 2
1,4500
1,2400
2,4500
2,2400
900
800
700
600
500
400
400
500
600
700
800
900
1000
131
700
600
Frequncia
500
400
300
200
100
0
500
550
600
650
700
750
800
850
900
950
132
Quantidade
70
60
50
40
30
20
10
0
0
9
10
11
12
Perodos (anos)
13
14
15
16
17
18
19
20
23
134
14
Preo
13
12
11
10
0
9 10 11 12 13 14 15 16 17 18 19 20
Perodo (anos)
Preo no mercado sem espacialidade
Preo da regio 1 com espacialidade
Preo da regio 2 com espacialidade
135
Regio 2
Empresa 1
$1,4500
$1,2400
Empresa 2
$2,4500
$2,2400
Empresa 1
$1,4500
$1,2400
Empresa 2
$4,4500
$4,2400
Empresa 1
$1,4500
$1,2400
Empresa 2
$6,4500
$6,2400
Rodada 3
Rodada 4
Rodada 5
136
500
y3 = -0,8465x + 1023,8
R = 0,943
400
300
y4 = -0,6036x + 737,19
R = 0,9297
200
100
y5 = -0,3471x + 444,71
R = 0,8466
0
500
550
600
650
700
750
Valor Presente - Empresa 1
Rodada 3
Rodada 4
800
850
900
Rodada 5
900
800
Frequncia
700
600
500
400
300
200
100
0
250 300 350 400 450 500 550 600 650 700 750 800
Valor Presente
Empresa 1
Empresa 2
137
Regio 2
Empresa 1
$1,3450
$1,3450
Empresa 2
$1,3450
$1,3450
Rodada 6
138
500
450
Frequncia
400
350
300
250
200
150
100
50
0
500 525 550 575 600 625 650 675 700 725 750 775
Valor Presente
Empresa 1
Empresa 2
Emp. 2
consumidores
consumidores
Regio 1
Regio 2
Fonte: elaborado pelo autor.
139
Regio 2
Empresa 1
0,0000
2,6900
Empresa 2
2,6900
0,0000
Empresa 1
0,0000
4,6900
Empresa 2
4,6900
0,0000
Empresa 1
0,0000
8,6900
Empresa 2
8,6900
0,0000
Empresa 1
0,0000
16,6900
Empresa 2
16,6900
0,0000
Rodada 7
Rodada 8
Rodada 9
Rodada 10
140
600
Frequncia
500
400
300
200
100
0
550 575 600 625 650 675 700 725 750 775 800 825 850
Valor Presente
Empresa 1
Empresa 2
141
800
700
Frequncia
600
500
400
300
200
100
0
575 600 625 650 675 700 725 750 775 800 825 850
Valor Presente
Empresa 1
Empresa 2
800
700
Frequncia
600
500
400
300
200
100
0
650 675 700 725 750 775 800 825 850 875 900 925
Valor Presente
Empresa 1
Empresa 2
142
800
700
Frequncia
600
500
400
300
200
100
0
625 650 675 700 725 750 775 800 825 850 875 900 925 950
Valor Presente
Empresa 1
Empresa 2
143
800
750
700
650
600
550
500
500
550
600
650
700
750
800
850
900
Rodada 7
Rodada 8
Rodada 9
Rodada 10
144
Empresa 2
Rodada 11
Capacidade Inicial
10
Rodada 12
Capacidade Inicial
40
500
400
300
200
100
0
500
700
900
1100
1300
-100
-200
Rodada 12
40
35
Empresa 2
30
25
20
15
10
0
0
10
15
20
25
30
35
40
45
50
Empresa 1
Capacidades T6
Fluxos T6
Capacidades T12
Fluxos T12
Capacidades T18
Fluxos T18
146
40
35
Empresa 2
30
25
20
15
10
0
0
10
15
20
25
30
35
40
45
50
Empresa 1
Capacidades T6
Fluxos T6
Capacidades T12
Fluxos T12
Capacidades T18
Fluxos T18
Empresa 2
Rodada 13
Probabilidade de investir
0,2000
0,8000
Rodada 14
Probabilidade de investir
0,4000
0,6000
Rodada 15
Probabilidade de investir
0,5000
0,5000
149
800
750
700
650
600
550
550
600
650
700
750
800
Rodada 14
Rodada 15
150
Empresa 2
35
30
25
20
15
10
5
0
0
10
15
20
25
30
35
40
45
50
Empresa 1
Capacidades T6
Fluxo T6
Capacidades T12
Fluxos T12
Capacidades T18
Fluxos T18
Empresa 2
Rodada 16
0,6000
0,6000
Rodada 17
0,7000
0,5000
Rodada 18
1,0000
0,4000
800
750
700
650
600
550
500
450
400
400
450
500
550
600
650
700
750
800
850
900
Rodada 17
Rodada 18
153
Capacidade
Empresa 1
Capacidade
Empresa 2
Expanso
Empresa 1
Expanso
Empresa 2
Fluxo
Empresa 1
Fluxo
Empresa 2
Valor
Presente
(VP)
Esperado
Empresa 1
Valor
Presente
(VP)
Esperado
Empresa 2
Diferena %
entre o VP
da Empresa
1 sobre o
VP da
Empresa 2
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
10
33
34
34
35
36
36
37
38
38
39
39
40
40
40
41
41
41
42
42
10
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
23
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10,0
16,9
18,2
19,5
20,8
22,2
23,6
25,1
26,6
28,2
29,8
31,4
32,4
34,6
36,2
37,8
39,4
40,9
42,0
42,0
10,0
16,9
18,2
19,5
20,8
22,2
23,6
25,1
26,6
28,2
29,8
31,4
32,4
34,6
36,2
37,8
39,4
40,9
43
43
1.141
1.548
1.631
1.708
1.792
1.875
1.951
2.032
2.110
2.180
2.251
2.312
2.373
2.421
2.462
2.499
2.519
2.529
2.530
2.512
1.203
1.578
1.658
1.738
1.819
1.899
1.978
2.055
2.130
2.202
2.270
2.333
2.390
2.441
2.484
2.517
2.540
2.554
2.548
2.531
5,4%
1,9%
1,7%
1,8%
1,5%
1,3%
1,4%
1,2%
1,0%
1,0%
0,8%
0,9%
0,7%
0,8%
0,9%
0,7%
0,8%
1,0%
0,7%
0,7%
154
Empresa 2
30
25
20
15
10
5
0
0
10
15
Capacidades T6
Fluxo T6
20
25
30
Empresa 1
Capacidades T12
Fluxos T12
35
40
45
50
Capacidades T18
Fluxos T18
1800
1600
Frequncia
1400
1200
1000
800
600
400
200
0
200 250 300 350 400 450 500 550 600 650 700 750 800 850
Rodada 20
Rodada 21
Rodada 22
1800
1600
1400
1200
1000
800
780
600
515
400
200
8,62
0
3
4
Nmero de Empresas
N de
empresas
Capacidade
Inicial
Capacidade
mxima
Nmero de
estados
19
10
45
1.296
20
10
30
9.261
21
10
22
28.561
22
10
18
59.049
159
160
6.
CONCLUSES E RECOMENDAES
6.1.
CONCLUSES
RECOMENDAES
24
166
REFERNCIAS
AGUERREVERE, F. L. (2003), 'Equilibrium Investment Strategies and
Output Price Behaviour: A Real Options Approach', The Review of
Financial Studies 16(4), 1239-1272.
AHMED, S.; KING, A. J. & PARIJA, G. (2002), 'A Multi-Stage
Stochastic Integer Programming Approach for Capacity Expansion
under Uncertainty', Technical report, Netherlands: Kluwer Academic
Publishers ceuu.tex.
ALBUQUERQUE, J. (2008), 'Probabilidade, variveis aleatrias e
processos estocsticos', Rio de Janeiro: Intercincia: PUC Rio.
ANDRADE, E. (2004), 'Introduo Pesquisa Operacional', Rio de
Janeiro:LTC.
ANGELUS, A. & PORTEUS, E. L. (2002), 'Simultaneous capacity and
production management of short-life-cycle, produce-to-stock goods
under stochastic demand', Management Science 48, 399-413.
ATAMTRK, A. & HOCHBAUM, D. (2001), 'Capacity acquisition,
subcontracting, and lot sizing', Management Science 47(8), 1081-1100.
BALDURSSON, F. M. (1998), 'Irreversible Investment under
Uncertainty in Oligopoly', Journal of Economic Dynamics and Control
22, 627-644.
BALDURSSON, F. & KARATZAS, I. (1997), 'Irreversible investment
and industry equilibrium', Finance and Stochast 1, 6989.
BAR-ILAN, A. & STRANGE, W. C. (1996), 'Investment lags',
American Economic Review 86, 610-622.
BARAHONA, F.; BERMON, S.; GNLK, O. & HOOD, S. (2005),
'Robust Capacity Planning in Semiconductor Manufactoring', Technical
report, IBM T. J. Watson Research Center, Yorktown Heights, NY
10598 and IBM Microeletronics Division.
BEAN, J.; HIGLE, J. & SMITH, R. (1992), 'Capacity Expansion Under
Stochastic Demands', Operations Research 40(2), S210-S216.
167
221-239.
FREIDENFELDS, J. & McLAUGHLIN, C. (1979), 'A Heuristc Branchand-Bound Algorithm for Telephone Feeder Capacity Expansion',
Operations Research 27, 567-582.
FRIES, C.E.; (2009), 'Teoria da Deciso', Notas de aula, Universidade
Federal de Santa Catarina, Departamento de Engenharia de Produo e
Sistemas.
FRIES, S.; MILLER, M. & PERRAUDIN, W. (1997), 'Debt in industry
equilibrium', Review of Financial Studies 10(1), 39-67.
FUDENBERG, D. & TIROLE, J. (1991), 'Game Theory', Cambridge,
MA: MIT Press.
GARCIA, A. & SHEN, Z. (2010), 'Equilibrium Capacity Expansion
Under Stochastic Demand Growth', Operations Research 58(1), 30-42.
GARDNER, D. & ROGERS, J. (1999), 'Planning Electric Power
Systems Under Demand Uncertainty with Different Technology Lead
Times', Management Science 45(10), 1289-1306.
GARVIN, M. (2005), 'Real Optios Analysis: Can It Improve
Infrastructure Development Decisions?', Construction Research
Congress 2005.
GENG, N.; JIANG, Z. & CHEN, F. (2009), 'Stochastic programming
based capacity planning for semiconductor wagfer fab with uncertain
demand and capacity', European Journal of Operational Research 198,
899-908.
GHEMAWAT, P. & NALEBUFF, B. (1985), 'Exit', Rand Journal of
Economics 16(2), 184-194.
GIGLIO, R. (1970), 'Stochastic Capacity Models', Management Science
17(3), 175-184.
GILBERT, R. & HARRIS, R. (1984), 'Competition with lumpy
investment', Rand Journal of Economics 15(2), 197-212.
171
and
Linear
R.
(2002),
177
de
Investimentos',
179
180
Si
retorno
de
s = {s1 , s2 ,..., s I }. Nesta tese, como funo de utilidade esperada ser usado
o valor presente esperado do fluxo de caixa descontado. Para se referenciar a
outros jogadores alm do jogador i, ser utilizada a notao i. Cabe ressaltar
que isto no significa que o jogo entre o jogador i e o resto dos jogadores. Na
verdade, cada jogador tem como objetivo maximizar o seu prprio retorno.
Aqui sero tratados apenas os jogos de informao perfeita, onde o
jogador tem conhecimento, a cada perodo de tempo, do n de deciso que ele
est em uma rvore de jogo. Assume-se tambm que a estrutura do jogo de
conhecimento comum aos jogadores, ou seja, todos os jogadores conhecem a
estrutura do jogo e seus respectivos valores e sabem que os seus oponentes
25
181
tambm conhecem e sabem tambm que os seus oponentes sabem que eles
sabem, e assim por diante. Esta premissa relevante para o entendimento do
conceito do equilbrio de Nash.
Define-se estratgia de um jogador
S = i S i
finito.
182
si (H ) a cada
i ( si )
a probabilidade do perfil
denotado por
Seja
= i i
zi ( i , i1 ) ,
, com elemento
, onde
i 1
para o jogador i
i 1 . A estratgia i
a melhor
se:
zi ( i , i 1 ) zi i, , i1
Onde
Si .
(S i )
) , para qualquer
,
i
( )
Si
(A.1)
si S i .
,
i
tal que:
zi i, , si > zi (si , s1 ) ,
para todo
si
s i pode
si
s i S i
(A.2)
i, e
assim a
racionais.
Na equao B.2, se no lugar da desigualdade estrita < tiver a
desigualdade no estrita , ento a estratgia
si
chamada de estratgia
zi i* , *i zi si , *i
) para todo s S .
i
184
degenerada (existe uma probabilidade positiva para pelo menos uma estratgia),
este jogador deve ser indiferente entre todas as estratgias puras nas quais ele
joga com probabilidade positiva e essas estratgias mistas so to boas quanto
*
si .
si si* ,
185
186
x* R n , tal que:
F ( x * )T , x x* 0,
(B.1)
n
26
187
F ( x* ) C ( x* )
Onde
(B.2)
C ( x ) y R n : yT , x ' x 0, x '
(B.3)
v, u R n ,
u e v. Ento para um
no intervalo
0 90 o , tem-se que u T , v 0.
x*
soluo do VI ( F , ) , se e
F ( x * ) e x x * , com x* e x
em
menor ou igual a 90 .
o
188
, encontrando um
F ( x * )T , x x* 0,
x R n .
27
189
Seja
Onde
Minimize
f (x )
(B.4)
Sujeito a:
(B.5)
f (x )
continuamente diferencivel e
f ( x * )T , x x * 0,
(B.6)
F 1
F1
x ... x
n
. 1 . .
F ( x ) = ..
.
Fn
Fn
...
x
xn
1
(B.7)
28
190
R+n .
R+n
o ortante no negativo de
F ( x* ) 0
ento
Rn ,
e seja
F : Rn Rn .
n
+
R um sistema
x* 0 tal que:
( )
F x * , x* = 0
de equaes e
(B.8)
x* soluo de VI ( F , R+n ).
Quando o mapeamento F afim, ou seja, quando F ( x) = M .x + b , onde
xR
um
x y xz ,
29
Rn .
y , tal que
z
(B.9)
191
Onde
y = P x = arg min x z
(B.10)
. A prova da
Seja
ou
se e somente se:
yT , z y xT , z y ,
(B.11)
(y x ), z y
(B.12)
0,
192
(B.13)
ou seja,
x* = P x* .F ( x* )
(B.14)
x* .F ( x * ) para
30
193
x* .F ( x * ) igual a x* . Esta
*
propriedade no satisfeita para nenhum outro ponto em que x x e x .
({
F ( x) = cov F ( y ) : x y
>0
})
(B.15)
F ( x) = F ( x) , onde F contnua em x .
31
Para uma descrio de sistemas dinmicos projetados referir-se Nagurney (1999, pags. 3841).
194
z R n , diz-se que:
Para qualquer
d ( z , A) := inf z y
yA
a distncia entre
z e A . Ento,
d ( z , A) = z PA (z )
Onde
A compacto e convexo.
Condies de convergncia:
Considere uma condio inicial
{x ; k = 1,2,...} por
x 0 e defina a sequncia
( ))
x k +1 = P x k k Fk x k
(B.16)
k =0
k = 0 , k > 0 , k 0 , quando k .
w() = yK t 0 s >t { y ( s )}
est
contido
no
conjunto
de
pontos
estacionrios
de
x = ( x, F ( x ) ) .
(iv) A sequncia
{x ; k = 1,2,...} limitada.
k
( x, F ( x ) )
, existe um conjunto
2 tal que
195
y1
{ y(t )}
t 0
Fk (x ) = F ( x )
Fk ( x) =
1
[ F ( x) + F ( x + P ( x k F ( x)))] .
2
S as
{x ; k = 1,2,...} o
k
d x k , S 0 quando k .
Corolrio B.1.
Considere as condies do teorema B.2, e tambm que
conjunto finito de pontos. Ento
lim k x
S consiste de um
196
197
end;
tCournotNash = Class
N,M,Count : Integer;
Produtor,Consumidor : Array of tNode;
CapInic
: Array of Integer;
ValorEstado
: Array of Array of Array of Array of Extended;
ValorEsperado
: Array of Array of Array of Extended;
Kotimo
: Array of Array of Array of Integer;
Estadoj
: Array of Array of Array of Integer;
ProdutorFluxo,consumidorpreco
: Array of Array of Array of Extended;
Demanda
: Array of Array of Extended;
Custo,X,F
TF,T0
CUnit,Passo
: tMatriz;
: tDateTime;
: Extended;
//**********************************************Variveis de
Leitura da Programao Dinmica ******************
tMax
: Integer;
Taxa, TaxaA, TaxaB
: Extended;
//***************************************************************
***********************************************
Constructor LerDados(NomeArquivo : String);
destructor Finalizar;
Procedure PDinamica(ProgressBar1:tProgressBar);
procedure CalcularF;
procedure CalcularExcedentes;
function ExcedenteSociedade : Extended;
function ExcedenteProdutor : Extended;
function ExcedenteConsumidor : Extended;
procedure AtualizarFluxoProdutorConsumidor;
function AtualizarFluxo : Extended;
procedure Equilibrar(Statusbar : tStatusBar; Chart : tChart);
function GetExcedenteProdutor(i : Integer) : Extended;
Procedure SetCapacidadeProdutor(i:Integer; Valor:Integer);
Procedure SetDemandaConsumidor(j:Integer; newA,newB : Extended);
Procedure DefinirNumEstados;
Procedure DefinirCapacidades(i:integer);
Function DefinirEstado : Integer;
198
199
Writeln(Arq,'Nmero de Produtores
= ', M: 10);
//No. de Produtores
Writeln(Arq,'Numero de Mercados
= ', N: 10);
Writeln(Arq,'Taxa de Desconto
= ', Taxa: 10:2);
//Taxa de desconto
livre de risco
Writeln(Arq,'Taxa de Cresc Parametro A = ', TaxaA: 10:2);
//Crescimento
da Demanda = parmetro A
Writeln(Arq,'Taxa de Cresc Parametro B = ', TaxaB: 10:2);
//Crescimento
da Demanda = parmetro B
//Writeln(Arq,'Fator de Escala Invest = ', Escala: 10:2);
//Fator de Escala
de Investimento
For i :=0 to M-1 do Writeln(Arq,'Incremento de Capac/Invest Firma Produtor',
i+1, '= ', Produtor[i].Kincr:10); // incremento de capacidade por investimento
de cada firma
Writeln(Arq);
For i :=0 to M-1 do Writeln(Arq,'Capacidade Inicial/Produtor Prod.
', i+1,
'= ', Produtor[i].Cap:10); // capacidade inicial de cada firma
writeln(Arq);
For i :=0 to M-1 do Writeln(Arq,'Capacidade Mxima da firma Produtor
',
i+1, '= ', Produtor[i].Capmax:10); // capacidade maxima de cada firma
Writeln(Arq);
For i :=0 to M-1 do Writeln(Arq,'Custo de Investimento Produtor
', i+1,
'= ', Produtor[i].Cinv:10:2); // Custo de investimento
Writeln(Arq);
For i :=0 to M-1 do Writeln(Arq,'Probabilidades
', i+1, '= ',
Produtor[i].Prob:10:3); // Probabilidades
Writeln(Arq);
//**************************************** Dados do Equilibrio de
Curto Prazo ***************************
For i := 0 to M-1 do
begin
With Produtor[i] do Writeln(Arq,'Dados do Produtor
',' ', i+1, '= ',
Tipo:10, Grupo:10, ' ',A:15:5, ' ', B:15:5);
end;
Writeln(Arq);
For j := 0 to N-1 do
begin
With Consumidor[j] do Writeln(Arq,'Dados do Consumidor ',' ', j+1, '= ',
consumidor[j].A:15:5,' ', consumidor[j].B:15:5);
end;
Writeln(Arq);
For i := 0 to M-1 do
begin
200
201
Writeln(Arq,t:10,w+1:10,((produtor[w].Cap)(Kotimo[t,i,w]))*Produtor[w].Kincr:10,
Kotimo[t,i,w]*Produtor[w].Kincr:10,
produtor[w].Cap*Produtor[w].Kincr:10,
produtor[0].cap*Produtor[w].Kincr:10,
produtor[1].cap*Produtor[w].Kincr:10,' ',
ProdutorFluxo[t,i,w]*Produtor[w].Kincr:10:4,' ',
ValorEsperado[t,i,w]:15:4) ;
i := j;
t := t + 1;
end;
end;
Writeln(Arq);
Writeln(Arq,'-------------------------------------------------------------------------------------------------------');
CloseFile(Arq);
end;
constructor tNode.Create(iTipo : Char; iGrupo: Integer; iA, iB:Extended; iCap:
Integer; iKincr:integer; iCapmax:integer; iCinv, iProb, iEscala:Extended);
begin
A := iA;
B := iB;
Cap := iCap;
Tipo := iTipo;
Grupo := iGrupo;
Kincr := iKincr;
Capmax := iCapmax;
Cinv := iCinv;
Prob := iProb;
Escala := iEscala;
end;
function tNode.Preco: Extended;
begin
Result := A + B * Fluxo;
end;
procedure tNode.SetCapacidade(Valor: Integer);
begin
Cap := Valor;
end;
202
{ tCournotNash }
//******************************** Funo Atualizar Fluxo
*******************************************************
function tCournotNash.AtualizarFluxo: Extended;
Var
Erro : Extended;
i,j : Integer;
V : tVetor;
begin
V := tVetor.Create(N,0);
Result := 0;
For i := 0 to M-1 do
begin
V.C := Produtor[i].Cap;
For j := 0 to N-1 do V.SetValue(j,X[i,j] + Passo * F[i,j]);
V.Project;
For j := 0 to N-1 do
begin
Erro := Abs(X[i,j]-V.GetValue(j));
If Erro > Result then Result := Erro;
X[i,j] := V.GetValue(j);
end;
end;
V.Free;
end;
//******************************** Rotina Atualizar Total Fluxo Saindo
Do Produtor E Chegando No Mercado **********
procedure tCournotNash.AtualizarFluxoProdutorConsumidor;
Var
i,j : Integer;
begin
For i := 0 to M-1 do Produtor[i].Fluxo := 0;
For j := 0 to N-1 do Consumidor[j].Fluxo := 0;
For i := 0 to M-1 do
For j := 0 to N-1 do
begin
Produtor[i].Fluxo := Produtor[i].Fluxo + X[i,j];
Consumidor[j].Fluxo := Consumidor[j].Fluxo + X[i,j];
end;
203
end;
//**************************************** Rotina Calcula Excedentes
***********************************************
procedure tCournotNash.CalcularExcedentes;
Var
i,j : Integer;
begin
For j := 0 to N-1 do
With Consumidor[j] do Excedente := - Sqr(Fluxo) * B / 2;
For i := 0 to M-1 do
With Produtor[i] do
Case Tipo of
'M' : begin
Excedente := 0;
For j := 0 to N-1 do
Excedente := Excedente + (Consumidor[j].Preco - Custo[i,j]) *
X[i,j];
Excedente := Excedente - (A * Fluxo + B * Sqr(Fluxo) / 2);
end;
'C' : Excedente := Sqr(Fluxo) * B / 2;
end;
end;
//**************************************** Rotina Calcular F[i,j]
***************************************************
procedure tCournotNash.CalcularF;
Var
i,j,g,k : Integer;
Fluxo : Extended;
begin
For i := 0 to M-1 do
For j := 0 to N-1 do
Case Produtor[i].Tipo of
'C' : F[i,j] := Consumidor[j].Preco - (Produtor[i].Preco + Custo[i,j]);
'M' : begin
Fluxo := 0;
g := Produtor[i].Grupo;
For k := 0 to M-1 do
If (Produtor[k].Grupo = g) and (Produtor[k].Tipo = 'M')
then Fluxo := Fluxo + X[k,j];
204
// B
205
206
207
Readln(Arq,Taxa);
Readln(Arq,TaxaA);
Readln(Arq,TaxaB);
//********************************************* Fim da leitura dos
dados da Programao dinmica **********************
CloseFile(Arq);
end;
208
209
While j >0 do
With Produtor[j] do
begin
If j = M-1 then
begin
Produtor[j].EstAux := i;
Produtor[j].Cap := Produtor[j].EstAux div Produtor[j-1].ProdNumCap;
end
else
begin
Produtor[j].EstAux := Produtor[j+1].EstAux mod
Produtor[j].ProdNumCap;
Produtor[j].Cap := Produtor[j].EstAux div Produtor[j-1].ProdNumCap;
end;
j:= j-1;
end;
Produtor[j].EstAux := Produtor[j+1].EstAux mod Produtor[j].ProdNumCap;
Produtor[j].Cap := Produtor[j].EstAux div 1;
end;
function tCournotNash.GetCap(m: Integer): Integer;
begin
Result := Produtor[m].Cap;
end;
210
//************************************************ ROTINA DE
PROGRAMAO DINMICA **************************
Procedure tCournotNash.PDinamica(ProgressBar1:tProgressBar);
Var
t,w, i,IMax,kMax, p,k,j, q,v,l : Integer;
Valor, NewA, NewB, FcrescA, FcrescB : Extended;
Arq : TextFile;
begin
AssignFile(Arq,'Debug.txt');
Rewrite(Arq);
//******************************************************Inicializar
dados ********************************************
FcrescA:= (1 + TaxaA);
FcrescB:= (1 + TaxaB);
DefinirNumEstados;
Imax := Produtor[M-1].ProdNumCap;
Setlength(ValorEstado,tMax+1,Imax,M,M);
Setlength(ValorEsperado, tMax+1,Imax,M);
Setlength(Kotimo,tMax+1,Imax,M);
Setlength(demanda,tMax+1,N);
Setlength(Estadoj,tMax+1,Imax,M);
Setlength(ProdutorFluxo,tMax+1,Imax,M);
SetLength(ConsumidorPreco,tMax+1,Imax,N);
211
For t := 0 to tMax-1 do
begin
For i := 0 to Imax-1 do
begin
For w := 0 to M-1 do
begin
Kotimo[t,i,w] := 0;
Estadoj[t,i,w] := 0;
ProdutorFluxo[t,i,w] := 0;
For v := 0 to M-1 do
begin
ValorEstado[t,i,w,v] := 0;
end;
end;
end;
end;
ProgressBar1.Max := tMax;
ProgressBar1.Position := tMax;
t := tMax-1;
While t>=0 do
begin
//***************************** Informar novas condies de mercado novos valores para A e B ************************
For w := 0 to N-1 do
begin
If t = tMax-1 then
begin
newA := getAConsumidor(w) * Power(FcrescA,t);
newB := getBConsumidor(w) / Power(FcrescB,t);
SetDemandaConsumidor(w,newA,newB);
end
else
begin
newA := getAConsumidor(w) * Power(FcrescA,1);
newB := getBConsumidor(w) * Power(FcrescB,1);
SetDemandaConsumidor(w,newA,newB);
end;
end;
212
For i := 0 to iMax-1 do
begin
DefinirCapacidades(i);
Equilibrar(nil,nil);
For p := 0 to M-1 do
begin
ProdutorFluxo[t,i,p] := Produtor[p].Fluxo;
end;
For l := 0 to N-1 do ConsumidorPreco[t,i,l] := Consumidor[l].Preco;
For p := 0 to M-1 do
begin
DefinirCapacidades(i);
kMax := (produtor[p].Tnumcap - 1) - Produtor[p].cap;
For k := 0 to kMax do
begin
produtor[p].cap := produtor[p].cap + k;
j := DefinirEstado;
If t = tMax-1
then Valor := Produtor[p].Excedente / Taxa
else Valor := Produtor[p].Excedente produtor[p].Cinv*Power(k*produtor[p].Kincr,produtor[p].Escala)
+
ValorEsperado[t+1,j,p]/(1+Taxa);
If Valor > ValorEstado[t,i,p,p] then
begin
ValorEstado[t,i,p,p] := Valor;
Kotimo[t,i,p]
:= k;
Estadoj[t,i,p] := j;
end;
produtor[p].cap := produtor[p].cap - k;
end;
j := Estadoj[t,i,p];
For q := 0 to M-1 do If p <> q
then begin
If t = tMax-1
then Valor := Produtor[q].Excedente / Taxa
Else Valor := Produtor[q].Excedente +
ValorEstado[t+1,j,q,p]/(1+Taxa);
ValorEstado[t,i,q,p] := Valor;
end;
end;
For q := 0 to M-1 do
213
begin
ValorEsperado[t,i,q] := 0;
For p := 0 to M-1 do ValorEsperado[t,i,q] := ValorEsperado[t,i,q] +
ValorEstado[t,i,q,p]*Produtor[p].Prob ;
writeln(Arq,t:5,i:5,q:5,Kotimo[t,i,q]:5, Estadoj[t,i,q]:5,'
',Produtor[q].cap:10,' ',produtor[q].excedente:15:8,' ',
ValorEsperado[t,i,q]:15:8);
For p := 0 to M-1 do Writeln(Arq,'
',p:5,ValorEstado[t,i,q,p]:15:8,Produtor[p].Prob:15:8);
end;
end;
t := t-1;
ProgressBar1.position := t;
end;
CloseFile(Arq);
end;
procedure tCournotNash.Simular(NSimul: Integer;PB:tProgressBar);
Function SorteiaDecisor : Integer;
Var
ProbAc,Soma : Extended;
begin
ProbAc := Random;
Soma := Produtor[0].Prob;
Result := 0;
While Soma < ProbAc do
begin
Result := Result + 1;
Soma := Soma + Produtor[Result].Prob;
end;
end;
Var
Arq
: TextFile;
tx
: Extended;
t,i,q,p,j,s,k,Tselec,Imax,l
: Integer;
VP
: Array of Extended;
Selec
: Array of Integer;
begin
Randomize;
AssignFile(Arq,'Simula.txt');
SetLength(VP,M);
SetLength(Selec,M);
Rewrite(Arq);
214
Cp', q+1:1,'T06');
Fl', q+1:1,'T06');
Pr', l+1:1,'T06');
VP', q+1:1,'T06');
Cp', q+1:1,'T12');
Fl', q+1:1,'T12');
Pr', l+1:1,'T12');
VP', q+1:1,'T12');
Cp', q+1:1,'T18');
Fl', q+1:1,'T18');
Pr', l+1:1,'T18');
VP', q+1:1,'T18');
215
begin
For q := 0 to M-1 do
begin
produtor[q].cap := Capinic[q] div Produtor[q].Kincr;
end;
end;
i := DefinirEstado;
For q := 0 to M-1 do
begin
If p = q then produtor[q].cap := produtor[q].cap + k;
end;
j := DefinirEstado;
216
217
unit uInterface;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons, uEquilibrio, ComCtrls, TeEngine, Series,
TeeProcs, Chart;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
BitBtn1: TBitBtn;
StatusBar1: TStatusBar;
Panel3: TPanel;
Panel4: TPanel;
Memo1: TMemo;
Memo2: TMemo;
Splitter1: TSplitter;
BitBtn2: TBitBtn;
Label1: TLabel;
Edit1: TEdit;
OpenDialog1: TOpenDialog;
Chart1: TChart;
Series1: TFastLineSeries;
BitBtn3: TBitBtn;
Splitter2: TSplitter;
BitBtn4: TBitBtn;
Panel5: TPanel;
ProgressBar1: TProgressBar;
procedure Resolver(Sender: TObject);
procedure DefinirArquivo(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
218
{$R *.DFM}
Uses URelatorio;
Var
Pr : tCournotNash;
procedure TForm1.Resolver(Sender: TObject);
begin
Memo1.Lines.SaveToFile(Edit1.Text);
Memo2.Lines.Clear;
pr := tCournotNash.LerDados(Edit1.Text);
pr.PDinamica(ProgressBar1);
pr.Apresentar;
Pr.Simular(5000,ProgressBar1);
Pr.Finalizar;
Memo2.Lines.LoadFromFile('Resultados2.txt');
MessageDlg('Fim de processamento',mtInformation,[mbOK],0);
end;
procedure TForm1.DefinirArquivo(Sender: TObject);
begin
If OpenDialog1.Execute then
begin
Edit1.Text := OpenDialog1.FileName;
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
end;
219
Free;
end;
end;
end.
//***************************************************************
***************************
unit Urelatorio;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TForm2 = class(TForm)
Panel1: TPanel;
Memo1: TMemo;
BitBtn1: TBitBtn;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
end.
//***************************************************************
***************************
unit uProjecao;
interface
Type
TVetor = Class
N : Integer;
220
C : Extended;
Value : Array of Extended;
Constructor Create(initN : Integer; initC : Extended);
Destructor Free;
Procedure SetValue(i : Integer; aValue : Extended);
Function GetValue (i : Integer) : Extended;
Procedure Project;
Function SumValues : Extended;
Function CountPositives : Integer;
Function GetMinPositive : Extended;
Procedure Show(Var Arq : TextFile);
end;
implementation
Const
Prec = 1E-8;
{ TVetor }
function TVetor.CountPositives: Integer;
Var
i : Integer;
begin
Result := 0;
For i := 0 to N-1
do If Value[i] > Prec then Inc(Result);
end;
constructor TVetor.Create(initN: Integer; initC: Extended);
begin
N := initN;
C := InitC;
SetLength(Value,N);
end;
destructor TVetor.Free;
begin
Value := nil;
end;
function TVetor.GetMinPositive: Extended;
Var
i : Integer;
begin
221
Result := 1E+30;
For i := 0 to N-1
do If (Value[i] > Prec) and (Value[i] < Result) then Result := Value[i];
end;
function TVetor.GetValue(i: Integer): Extended;
begin
Result := Value[i];
end;
procedure TVetor.Project;
Var
i,Count
: Integer;
Soma,Min,Delta : Extended;
begin
{ Zera valores negativos }
For i := 0 to N-1 do If Value[i] < 0 then Value[i] := 0;
{ Calcula Soma }
Soma := SumValues;
While Soma-C > Prec do
begin
Count := CountPositives;
Delta := (Soma - C) / Count;
Min := GetMinPositive;
If Delta < Min then Min := Delta;
For i := 0 to N-1
do If Value[i] > Prec
then Value[i] := Value[i] - Min
else Value[i] := 0;
{ Calcula Soma }
Soma := SumValues;
end;
end;
procedure TVetor.SetValue(i: Integer; aValue: Extended);
begin
Value[i] := aValue;
end;
procedure TVetor.Show(var Arq: TextFile);
Var
i : Integer;
begin
222
223
i : Integer;
begin
Result := 0;
For i := 0 to N-1
do If Value[i] > Prec then Inc(Result);
end;
constructor TVetor.Create(initN: Integer; initC: Extended);
begin
N := initN;
C := InitC;
SetLength(Value,N);
end;
destructor TVetor.Free;
begin
Value := nil;
end;
function TVetor.GetMinPositive: Extended;
Var
i : Integer;
begin
Result := 1E+30;
For i := 0 to N-1
do If (Value[i] > Prec) and (Value[i] < Result) then Result := Value[i];
end;
function TVetor.GetValue(i: Integer): Extended;
begin
Result := Value[i];
end;
procedure TVetor.Project;
Var
i,Count
: Integer;
Soma,Min,Delta : Extended;
begin
{ Zera valores negativos }
For i := 0 to N-1 do If Value[i] <= 0 then Value[i] := 0;
{ Calcula Soma }
Soma := SumValues;
While Soma-C > Prec do
begin
224
Count := CountPositives;
Delta := (Soma - C) / Count;
Min := GetMinPositive;
If Delta < Min then Min := Delta;
For i := 0 to N-1
do If Value[i] > Prec
then Value[i] := Value[i] - Min
else Value[i] := 0;
{ Calcula Soma }
Soma := SumValues;
end;
end;
procedure TVetor.SetValue(i: Integer; aValue: Extended);
begin
Value[i] := aValue;
end;
procedure TVetor.Show(var Arq: TextFile);
Var
i : Integer;
begin
For i := 0 to N-1 do Writeln(Arq,Value[i]:10:4);
end;
function TVetor.SumValues: Extended;
Var
i : Integer;
begin
Result := 0;
For i := 0 to N-1 do Result := Result + Value[i];
end;
end.
//***************************************************************
***************************
225