invisible(Sys.setlocale("LC_CTYPE", "pt_BR.UTF-8"))
invisible(Sys.setlocale("LC_ALL", "pt_BR.UTF-8"))
options(warn=-1)
suppressMessages(library(knitr, warn.conflicts=FALSE))
suppressMessages(library(readxl, warn.conflicts=FALSE))
suppressMessages(library(baryplot, warn.conflicts=FALSE))
suppressMessages(library(plotly, warn.conflicts=FALSE))

Material

  • HTML de R Markdown em RPubs

Pacote baryplot do R por Richard McElreath

Instalação do pacote baryplot

  1. Abrir um terminal R
  2. Instalar o pacote baryplot usando os comandos:

options(repos=c(getOption("repos"), baryplot="http://xcelab.net/R"))

install.packages("baryplot", type="source")

Instalação do script mygame.R

O script mygame.R permite executar jogos com duas ou três estratégias. Os jogos são configurados em arquivo-texto (.txt) preparadas para este script.

Para gerar o gráfico do jogo H-D, os passos são os seguintes:

  1. Baixar no seu computador os arquivos em Distribuicao_Cap2_ConflitoAnimal;
  2. Executar o arquivo Distribuicao_Cap2_ConflitoAnimal.Rproj;
  3. No RStudio, carregar com Source o script mygame.R;

Executando mygame.R

  1. Na console do RStudio, carregar o script mygame.R usando o comando:

source("mygame.R")

  1. Executar mygame.R com:

mygame ("Nome_do_jogo", parametros, options="lista_de_opcoes")

source("mygame.R")
mygame("game/H-D.txt")

Caso tenha dúvidas, o comando mygame() exibe a sintaxe.

mygame()

 
#################################################
# mygame v 4.01                                 #
#                                               #
# (c) J.O.Siqueira, P.S.P.Silveira, 2018 Jul 03 #
#     applying baryplot by Richard McElreath    #
#################################################
 

Sintax:
    mygame (game_name, lines, w0, {more}, options="list") 
    game_name (a filename with any game definition (see "Hawk & Dove.txt")
    lines: any value greater than 0 (default = 100)
    w0: baseline fitness (default = 5)
    more: optional other variables, depending on game definition
    options="color|gray|black,
            arrows|no_arrows,
            arrow_size=#.##,
            dots|start_dot|end_dot|no_dots,
            all_areas|corners|edges|borders|inner_area,
            ternary|tridimensional"
    Example: 
        mygame("Assessor",lines=150,xp=0.7,options="gray arrow_size=1.2")
            ... It runs assessor game, with game-specific variable xp
                drawing 150 lines in gray with arrows increased by 20% 
                (see README_4_en.txt for details).
    


Errors:
    Missing game name (see "Sintax", above).

Parâmetros

Você pode fornecer os parâmetros pré-definidos ou omiti-los.

Parâmetros adicionais criados para um novo jogo precisam ser explicitamente declarados.

Parâmetros pré-definidos

  • lines: número de linhas/ trajetórias (default = 100)
  • v: valor do recurso (default = 2)
  • c: custo da luta (default = 3)
  • w0: aptidão basal (default = 5)
  • d: custo para display (default = 0)

Lista de opções

Estas opções alteram o layout e as regiões a serem exploradas no diagrama:

  • Cor: use color (black, gray…) para mudar a cor (default = black)

  • Setas: use arrows ou no_arrows (default = arrows)

  • Tamanho da seta: mude com arrow_size = # (default = 1)

  • Marcadores: use um dos marcadores pré-definidos:

    • dots: é o default; marcador de início vazado e de fim sólido em cada linha.
    • start_dots: apenas o marcador de início em cada linha.
    • end_dots: apenas o marcador de fim em cada linha.
    • no_dots: sem marcadores.
  • Áreas a serem exploradas:

    • all_areas: é o default; explora todas as áreas abaixo.
    • corners: início das linhas sobre os vértices.
    • edges: início das linhas sobre as arestas e próximo aos vértices.
    • borders: início das linhas na área interna próxima às arestas.
    • inner_area: início das linhas na área interna e longe das arestas.
  • Apresentação: define o tipo de gráfico:

    • ternary: gráfico plano (default)
    • tridimensional: gráfico 3D.

Jogo Hawk-Dove

cat(readLines("game/H-D.txt"), sep="\n")
# Hawk & dove
#   individuals dispute resources (v)
# Hawk against hawk ... from a fight, one wins v and the other loses c
# Dove finds dove ... they share the resouce
# Hawk against dove ... hawk gets v without cost (c); dove gets nothing
#
#
#     (p)       (r)
#     H         D
# H   (v-c)/2   v
# D   0         v/2
#


# INSTRUCTIONS
#   Write equations w1 (right corner = hawk), w2 (top corner) and w3 (left corner = dove)
#   Remove unnecessary parameters 
#
#   Check function ps.game(): add parameters at the end of the list with default values (using =)
#   End with ", ...)"
#   Do not remove w0 from equations 
#
#   Edit ps.config() to inform the number of corners (2 or 3 kinds of players)
#   Give the names for the corners in order: left, right and top corner names
#
#   Edit ps.comment() if you intend to give additional information to users
#
#   Save this definition with no extension or extension ".txt"
#
#   Call with:
#   > mygame("Gamename", parameters, options)

ps.game <- function (p, q, r, w0=5, v=2, c=3, rW=0, ...) 
{
  # right
  w1 <- w0 + (rW+(1-rW)*p)*(v-c)/2 + ((rW*0)+(1-rW)*r)*v
  # top: empty when numcorners = 2
  w2 <- w0 + 0
  # left
  w3 <- w0 + (rW*0+(1-rW)*p)*0 + (rW+(1-rW)*r)*v/2
  
  c(w1, w2, w3)
}

ps.config <- function ()
{
  # numcorners, labels: left right top
  c(2,"Dove","Hawk","")
}

# add your comments (optional)
ps.comment <- function ()
{
  cat
  ("
      Hawk & Dove
     (p)       (r)
      H         D
  H   (v-c)/2   v
  D   0         v/2 

v=2, c=3, d=0  

      Hawk & Dove
     (p)       (r)
      H         D
  H   -1/2      2
  D   0         1  
  ");
}
mygame("game/H-D.txt", options=c("arrow_size=2","edges"))

Se \(W(H) = W(D)\), então, em :

Reduce[{w_0+p(v-c)/2+(1-p)v=w_0+(1-p)(v/2),0<=p<=1,c>0,v>0},p]

Se \(v < c\), \(c>0\) e \(v>0\), tem-se:

\[\hat{p}=\dfrac{v}{c}\]

mygame("game/H-D.txt", v=3, c=2, options=c("arrow_size=2","edges"))

Gráfico ternário

Wikipedia: Ternary plot

“A ternary plot, ternary graph, triangle plot, simplex plot, Gibbs triangle or de Finetti diagram is a barycentric plot on three variables which sum to a constant. It graphically depicts the ratios of the three variables as positions in an equilateral triangle. It is used in physical chemistry, petrology, mineralogy, metallurgy, and other physical sciences to show the compositions of systems composed of three species. In population genetics, it is often called a de Finetti diagram. In game theory, it is often called a simplex plot. Ternary plots are tools for analyzing compositional data in the three-dimensional case.”

Jogo Hawk-Dove-Retaliator

Retaliator: adota estratégia Dove se o oponente adota Dove ou Retaliator; adota Hawk se o outro adota Hawk.

H-D-R por baryplot

knitr::include_graphics("image/H-D-R_tern_equil.png")

baryplot::bary.init() # Plota o triangulo equilátero
baryplot::bary.labels("Hawk","Retaliator","Dove") # Rotula os vertices
# Comando que plota a trajetória do ponto com 1/3 de cada estratégia
baryplot::bary.plotsim(1/3, 1/3, thegame=bary.game.hdr, arrow=TRUE)

[1] 3.333333e-01 3.333333e-01 6.665111e-01 1.366013e-05
# A execução desse comando exibe o conteúdo de sua funcao
baryplot::bary.game.hdr
function (p, q, r, v = 2, c = 3, w0 = 5) 
{
    w1 <- (p + q) * (v - c)/2 + r * v + w0
    w2 <- p * (v - c)/2 + (1 - p) * v/2 + w0
    w3 <- (1 - p) * v/2 + w0
    c(w1, w2, w3)
}
<bytecode: 0x000001f7af1b4400>
<environment: namespace:baryplot>
baryplot::bary.init() # Plota o triangulo equilátero
baryplot::bary.labels("Hawk","Retaliator","Dove") # Rotula os vertices
# A execução desse comando exibe o conteúdo de sua funcao
baryplot::bary.plotsim(0, 0, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(1, 0, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(0, 1, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(2/3, 0, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(0, 2/5, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(1/100, 0, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(99/100, 0, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(1/3, 1/3, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(8/10, 1/10, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(1/10, 1/10, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(3/10, 5/10, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(4.5/10, 4.5/10, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(0, 0.3, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(0, 0.7, thegame=bary.game.hdr, arrow=TRUE)
baryplot::bary.plotsim(99/100, 1/100, thegame=bary.game.hdr, arrow=TRUE)
[1] 0 0 0 0
[1] 1 0 1 0
[1] 0 1 0 1
[1] 0.6666667 0.0000000 0.6666667 0.0000000
[1] 0.0 0.4 0.0 0.4
[1] 0.0100000 0.0000000 0.6665174 0.0000000
[1] 0.9900000 0.0000000 0.6668129 0.0000000
[1] 3.333333e-01 3.333333e-01 6.665111e-01 1.366013e-05
[1] 8.000000e-01 1.000000e-01 6.664999e-01 1.904197e-05
[1] 1.000000e-01 1.000000e-01 6.665058e-01 1.139443e-05
[1] 0.3000000000 0.5000000000 0.0000704231 0.6524554399
[1] 4.500000e-01 4.500000e-01 4.549621e-05 7.506903e-01
[1] 0.0 0.3 0.0 0.3
[1] 0.0 0.7 0.0 0.7

[1] 9.900000e-01 1.000000e-02 2.252294e-05 9.151639e-01

H-D-R por mygame.R

cat(readLines("game/H-D-R.txt"), sep="\n")
# Retaliator
#   Retaliator plays Dove unless its opponent plays Hawk, 
#   in which case it switches to Hawk
#   When the Retaliator sees a “fight” signal, it fights back, 
#   otherwise it displays just as a Dove. Thus, when a retaliator
#   finds another retaliator, both behave as Doves
#
#   Implemented by Paulo Silveira & Jose Siqueira, 2018
#

# INSTRUCTIONS
#   Write equations w1 (right corner = hawk), w2 (top corner) and w3 (left corner = dove)
#   Remove unnecessary parameters 
#   Add parameters at the end of the list with default value (using =)
#   End with ", ...)"
#   Do not remove w0 from equations 
#
#   Edit ps.config to inform the number of corners (2 or 3 kinds of players)
#   Give the names for the corners in order: left, right and top corner names
#
#   Save this definition with no extension or extension (e.g., "Gamename.txt"
#
#   Call with:
#   > mygame("Gamename", parameters, options)

#               (p)                   (q)            (r)
#               H                     R              D
#   H         V(H|H) = (v-c)/2    V(H|R) = V(H|H)    V(H|D) = v
#   R         V(R|H) = V(H|H)     V(R|R) = V(D|D)    V(R|D) = V(D|D)
#   D         V(D|H) = 0          V(D|R) = V(D|D)    V(D|D) = v/2

ps.game <- function (p, q, r, w0=5, v=2, c=3, ...) 
{
  # hawk
  w1 <- w0 + p*(v-c)/2  + q*(v-c)/2 + r*v
  # retaliator
  w2 <- w0 + p*(v-c)/2 + q*(v/2) + r*v/2
  # dove
  w3 <- w0 + p*0 + q*v/2 + r*v/2
  
  c(w1, w2, w3)
}

ps.config <- function ()
{
  # numcorners, labels: left right top
  c(3,"Dove","Hawk","Retaliator")
}

# add your comments (optional)
ps.comment <- function ()
{
  cat
  ("
      Retaliator

               (p)                   (q)            (r)
               H                     R              D
   H         V(H|H) = (v-c)/2    V(H|R) = V(H|H)    V(H|D) = v
   R         V(R|H) = V(H|H)     V(R|R) = V(D|D)    V(R|D) = V(D|D)
   D         V(D|H) = 0          V(D|R) = V(D|D)    V(D|D) = v/2
      
      Default condition:
        v = 2 (resource value)
        c = 3 (cost for fight)        
  ");  
}

Exploração dos vértices

mygame("game/H-D-R.txt", lines=50, options=c("corners"))

Exploração das arestas (excluindo os vértices)

mygame("game/H-D-R.txt", lines=50, options=c("edges"))

Exploração próximo dos cantos e arestas

mygame("game/H-D-R.txt", lines=50, options=c("borders"))

Exploração do interior do gráfico ternário

mygame("game/H-D-R.txt", lines=50, options=c("inner_area"))

Análise de equilíbrio na aresta Dove-Retaliator

Aptidão de H:

\[W(H)=w_{0} + (p+q) \;\dfrac{v-c}{2} + (1-p-q) v = \\ =w_{0} + v-\dfrac{(p+q)(v+c)}{2}\]

Aptidão de D:

\[W(D)=w_{0} + p \;0 + q \dfrac{v}{2} + (1-p-q) \dfrac{v}{2}=\\ =w_{0} + (1-p) \dfrac{v}{2}\]

Aptidão de R:

\[W(R)=w_{0} + p \dfrac{v-c}{2} + q \dfrac{v}{2} + (1-p-q) \dfrac{v}{2}\\ =w_{0} + p \dfrac{v-c}{2} + (1-p) \dfrac{v}{2}=\\ =\dfrac{v-pc}{2}\]

Note que quando \(p=0\), i.e., a população é exclusivamente composta por Dove e Retaliator, as aptidões das duas estratégias são iguais.

Aptidões de D e R na ausência de H:

\[W(D)=W(R)=w_{0} + q \dfrac{v}{2} + (1-q) \dfrac{v}{2}=\\ =w_{0} + \dfrac{v}{2}\]

Aptidão de H mutante raro:

\[W(H \; \text{raro})=w_{0} + v-\dfrac{(p+q)(v+c)}{2}=\\ =w_{0} + v-q\dfrac{v+c}{2}\]

\(W(D)=W(H \; \text{raro})\) se:

\[w_{0} + \dfrac{v}{2}= w_{0} + v-q\dfrac{v+c}{2}\]

Solucionando em :

Solve for q: v/2 = v - q (v+c)/2, v>0, c>0

Tem-se:

\[\hat{q}=\dfrac{v}{v+c}\]

Teoria dos jogos

Origem: The Theory of Games and Economic Behavior de John von Neumann e Oskar Morgenstern em 1944.

Grandes avanços com John Nash, Reinhard Selten e John Harsanyi. Os três dividiram o prêmio Nobel de Economia em 1994.

John von Neumann, nascido Margittai Neumann János Lajos (Budapeste, 28 de dezembro de 1903 — Washington, D.C., 8 de fevereiro de 1957) foi um matemático húngaro de origem judaica, naturalizado estadunidense.

Contribuiu na teoria dos conjuntos, análise funcional, teoria ergódica, mecânica quântica, ciência da computação, economia, teoria dos jogos, análise numérica, hidrodinâmica das explosões, estatística e muitas outras áreas da matemática.

Trabalhou em desenvolvimentos chave da Física Nuclear, relacionados com reações termonucleares e com a bomba de hidrogênio. Participou também do Projeto Manhattan, responsável pelo desenvolvimento das primeiras bombas atômicas.

Foi professor na Universidade de Princeton e um dos construtores do ENIAC. Entre os anos de 1946 e 1953, von Neumann integrou o grupo reunido sob o nome de Macy Conferences, contribuindo para a consolidação da teoria cibernética junto com outros cientistas renomados.

fonte: https://en.wikipedia.org/wiki/John_von_Neumann

Oskar Morgenstern (Görlitz, Alemanha, 24 de janeiro de 1902 — Princeton, Estados Unidos, 26 de julho de 1977) foi um economista austríaco. É considerado um dos fundadores da teoria dos jogos.

Morgenstern trabalhou na Universidade de Viena até ser demitido pelos nazistas em 1938, tendo então emigrado para os Estados Unidos, onde se tornou professor da Universidade de Princeton. O trabalho que mais contribuiu para a sua fama foi Theory of Games and Economic Behavior (em tradução livre, “Teoria dos Jogos e Comportamento Econômico”, de 1944), escrito em parceria com o renomado matemático John von Neumann, que lançou definitivamente as bases da teoria dos jogos e também da teoria da escolha sob incerteza.

fonte: https://pt.wikipedia.org/wiki/Oskar_Morgenstern


O que a teoria dos jogos estuda?

Situações estratégicas: situações nas quais os resultados que afetam você depende das suas ações assim como das ações dos outros.

A teoria dos jogos pressupõe que os jogadores sejam racionais no sentido de serem sempre maximizadores de ganhos (e.g.: utilidade).

A Teoria dos Jogos evolucionista (TJE) assume que um jogador é pré-programado com uma estratégia herdada, pura ou mista, e que essa estratégia é fixa para a vida toda. Se as estratégias mais bem sucedidas puderem ser traduzidas em sucesso reprodutivo, isso implica que estas produzem mais descendentes; já as mal sucedidas tendem a desaparecer.

O que acontecerá após muitas gerações?

O processo evolucionista selecionará o comportamento que parecerá aos olhos de um observador como sendo resultado de interações entre jogadores racionais! Geralmente encontramos quase-racionalidade em modelos darwinistas de adaptação (Hammerstein, 2001).

Na teoria dos jogos evolucionista procuramos pela estratégia que é favorecida pela seleção natural.

Para os jogos que serão apresentados, procuraremos por uma estratégia que seja estável frente às forças da seleção natural; chamaremos essa estratégia de estratégia evolutivamente estável (EEE) (Maynard Smith e Price, 1973).

A lógica do conflito animal

Recursos são escassos; a escassez gera conflitos (da ameaça à luta), i.e., disputas pelos recursos, eventualmente físicas (abordagem malthusiana).

As díades de coespecíficos adotam o confronto direto para ter acesso ao recurso limitado (agressividade entre coespecíficos inata de Lorenz).

Dois componentes do comportamento:

  • comportamento de exibição (display): comportamento comunicativo que permite que o outro organismo module seu comportamento em função do sinal informado;
  • comportamento agonístico (luta): qualquer comportamento social relacionado à disputa por recurso importante (território, direito de dominância, parceiros, provisão de alimentos etc.) causando perda de aptidão do contendor derrotado.

Em 1973 John Maynard Smith e George Price explicaram o motivo pelo qual algumas vezes a seleção favorece a prudência. Este modelo é chamado de jogo Falcão-Pomba.

Entender isso é importante já que a característica-chave do comportamento social é que tipicamente a aptidão individual depende do comportamento dos outros.

Se a aptidão da estratégia dependente da frequência relativa (média ponderada da aptidão das interações sociais das estratégias pelas respectivas frequências relativas), é necessário usar a Teoria dos Jogos Evolucionista para descobrir a melhor estratégia.

Analisando um conflito animal sob uma perspectiva evolucionista poderíamos concluir que aos organismos vencedores caberiam todos ou os melhores recursos (direito de dominância, parceiros, territórios e outras vantagens).

Isso refletir-se-ia na transmissão de genes para as futuras gerações, ou seja, esses organismos tenderiam a deixar mais descendentes que os outros.

Consequentemente, seria de esperar que pelo processo de seleção natural organismos com as armas mais letais ou que se utilizam de estratégias mais letais fossem selecionados.

Como vimos anteriormente, na natureza, ao invés de uma guerra total entre organismos coespecíficos, os conflitos observados são por meio de uma guerra limitada envolvendo armas ineficientes ou táticas ritualizadas que raramente causam sérios danos ou ferimentos para os envolvidos no conflito.

  • Como explicar a ausência de uma guerra total entre organismos da mesma espécie?

  • Existe falha no raciocínio evolutivo?

A tentativa de explicação, até a década de 70, envolvia a ideia de seleção de grupo pela qual a seleção atuava sobre comportamentos que beneficiam o grupo ao invés dos organismos, i.e., uma guerra limitada beneficiaria o grupo.

Em 1973, John Maynard Smith e George Price no seu artigo The logic of animal conflict publicado na Nature, explicou porque uma guerra limitada tendia a beneficiar o organismo (seleção sobre o organismo) e, consequentemente, a espécie.

George R. Price (06/10/22 - 06/01/75) foi um geneticista de populações dos Estados Unidos da América. Originalmente um físico-químico e mais tarde um jornalista de ciência, mudou-se para Londres em 1967 onde trabalhou em biologia teórica no Galton Laboratory, fazendo três importantes contribuições: primeira, rederivando o trabalho de W.D. Hamilton sobre a seleção de parentesco com uma nova equação de Price; segundo, introduzindo (com John Maynard Smith) o conceito de estratégia evolutivamente estável, um conceito central em teoria dos jogos; e terceiro, formalizando o teorema fundamental da seleção natural (Fisher).

Após ter dado todas as suas posses a mendigos que deixou viverem em sua casa, cometeu suicídio devido as suas descobertas da derivação do altruísmo, acreditando que não haveria bondade na humanidade.

John Maynard Smith (06/01/20 — 19/04/04) foi um biólogo britânico. Foi professor emérito na Universidade de Sussex, especializado em genética e teoria evolucionista. Famoso por utilizar a teoria dos jogos como ferramenta para explicar certos fenômenos evolucionários.

Nascido em Londres, sua família mudou-se para Exmoor em 1928, quando seu pai morreu. Formou-se em engenharia e trabalhou como projetista de aeronaves durante a Segunda Guerra Mundial. Quando esta terminou, voltou à universidade e formou-se em biologia.

Agraciado em vida, tem o seu nome imortalizado no Prêmio John Maynard Smith, da European Society for Evolutionary Biology.

image: John Maynard Smith at work in his office, 1980s.
© University of Sussex.
https://helenpiel.wordpress.com/jms-in-15-images/

Para encontrarmos a estratégia evolutivamente estável (EEE), num jogo evolucionista, dispomos de dois métodos principais:

  • a modelagem matemática e
  • simulação computacional.

A modelagem matemática envolve expressar as principais estratégias envolvidas de forma matematicamente simples e com base nelas prover provas, predições e obter resultados que podem ser contra-intuitivos.

Estratégias Hawk e Dove

Modificado de
https://blueridgecountry.com/blogging/behind-brc/birds-of-the-blue-ridge-red-tailed-hawk/
https://www.spirit-animals.com/dove-symbolism/

Este é o modelo mais simples, e que será mais detalhado adiante, sobre evolução social.

“PREFACE

Social evolution occurs when there is a tension between conflict and cooperation.
Steven A. Frank (1998)

https://press.princeton.edu/books/paperback/9780691059341/foundations-of-social-evolution

O nome do jogo é uma alegoria. Este modelo não é sobre a competição entre duas espécies, mas a descrição de dois comportamentos na disputa por recurso comum.

Suposições:

  • Organismos coespecíficos haploides com reprodução assexuada (fenótipo = genótipo)
  • Díades de organismos coespecíficos são formadas aleatoriamente a partir de uma população muito grande que disputam recurso importante

Existem apenas duas estratégias no ambiente que disputam um recurso importante

  • Hawk (H, falcão) utiliza uma estratégia agressiva, lutando pelo recurso quando encontra outro indivíduo.
  • Dove (D, pomba) utiliza uma estratégia pacífica, dividindo o recurso com outra pomba ou abandonando o recurso, sem lutar, quando encontra um falcão.

Quando os dois organismos da díade têm a mesma estratégia, as probabilidades são iguais, 50%, de vencer a disputa pelo recurso importante (vitórias aleatórias).

Quando os dois organismos da díade têm estratégias diferentes, o recurso fica integralmente com H, pois D não o disputa.

Modelagem do jogo Hawk-Dove

  • \(w_0 > 0\) é a aptidão basal da população, i.e., a aptidão média da população excluindo a interação social diádica.
  • \(w_0\) é igual para as duas estratégias, pois os organismos diferem apenas na estratégia adotada.
  • Quanto maior \(w_0\) em relação ao efeito da interação social diádica, mais fraco é o efeito da seleção natural, i.e., mais lenta é a alteração da frequência da estratégia na população.
  • As interações sociais diádicas promovem mudanças nas aptidões médias das estratégias.
  • O restante da aptidão depende do valor do recurso, \(v > 0\), e do custo de perder uma luta, \(c > 0\); podem compor aptidão além do \(w_0\).
  • \(w_0 > c\): cada interação social diádica de luta não é de vida ou morte.
  • \(p\): proporção dos organismos que adotam a estratégia Falcão (H) na população ou a probabilidade do organismo adotar a estratégia H na disputa diádica.

Qual é a matriz de recompensa do jogo H-D?

Para responder esta pergunta precisamos obter um expressão da recompensa da interação social diádica entre estratégias.

Vamos indicar esta função da recompensa assim:

\[V(X|Y)\]

É a recompensa (payoff) da estratégia focal \(X\) devido à interação com a estratégia \(Y\). Por exemplo, no caso de Falcão (H) e Pomba (D) podemos montar a seguinte matriz de recompensas:


H
D
H \(V(H|H)\)
\(V(H|D)\)
D
\(V(D|H)\)
\(V(D|D)\)


As interações diádicas possíveis e suas respectivas recompensas são:

\[V(H|H) = \dfrac{v-c}{2} \\ V(H|D) = v \\ V(D|H) = 0 \\ V(D|D) = \dfrac{v}{2}\]

que é transcrito para uma matriz de recompensas como:


\(\small{p}\)
H

\(\small{1-p}\)
D

H \({v-c} \over {2}\)
\(v\)
D
\(0\)
\({v} \over {2}\)


Adicionamos, no topo da matriz de recompensas, as frequências relativas das estratégias, respectivamente \(p\) (tomando-se H como referência) e \(1-p\) (para D).

Este tipo de tabela descreve os ganhos e custos considerando como focal a estratégia que aparece nas linhas. Lê-se:

Na primeira linha, H é a focal.

  • na primeira coluna encontra outra H. A díade \(H|H\) sempre luta e, como ambas são iguais, em metade das vezes H focal vence e recebe \(v \over 2\); na outra metade das vezes perde e tem custo, arcando com \(-{c \over 2}\). O ganho líquido, portanto, é o que aparece na tabela.
  • na segunda coluna encontra D. A estratégia D não disputa e, portanto, H focal recebe \(v\) sem custo algum.

Na segunda linha, D é a focal.

  • na primeira coluna encontra H. Como, neste encontro, D focal abandona o recurso, nada recebe. Também não há custo, pois D nunca luta.
  • na segunda coluna encontra outra D. Entre estas estratégias não há luta. Há duas interpretações possíveis, ambas resultando em \(v \over 2\): a díade \(D|D\) divide o recurso ou, com 50% de probabilidade, uma ou outra abandona o recurso.

Os valores das caselas são as variações
da aptidão média da estratégia focal que se encontra na linha
ao interagir com aquela que se encontra na coluna.

Por último, podemos calcular a aptidão (\(W(H)\) e \(W(D)\)) das estratégias Falcão (H) e Pomba (D):

\[ W(H) = w_0 + pV(H|H) + (1-p)V(H|D) \\ W(H) = w_0 + p\dfrac{v-c}{2} + (1-p)v \\ ~\\ W(D) = w_0 + pV(D|H) + (1-p)V(D|D) \\ W(D) = w_0 + (1-p)\dfrac{v}{2} \\ \]

O objetivo é avaliar como se comporta a variável de estado do modelo, \(p\). Perceba que as expressões \(W(H)\) e \(W(D)\) são semelhantes às do Box 1.2 (p. 17) no modelo de seleção natural por viabilidade do capítulo 1. Então, da mesma forma, obtemos a equação de diferença do replicador:

\[\Delta p=p(1-p)\dfrac{W(H)-W(D)}{\bar{w}}\]

sendo que

\[\bar{w} = {pW(H)+(1-p)W(D)}\]

A equação recursiva correspondente é

\[p'' = p\dfrac{W(H)}{\bar{w}}\]

Análise de equilíbrio

Inicialmente, utilizando WolframAlpha, podemos encontrar os valores de \(p\) candidatos a pontos de equilíbrio a partir do seguinte comando:

p (1-p) (H - D)/(p H + (1-p) D) /. H = w + p (v-c)/2 + (1-p) v, D=w + (1-p)(v/2)

Para evitar confusões com o processamento do WolframAlpha, notamos \(W(H)\) como H, \(W(D)\) como D e \(w_0\) como w.

O sistema devolve formas de escrever esta expressão, e podemos escolher uma delas, por exemplo a que parece visualmente mais simples:

((-1 + p) p (c p - v))/(-c p^2 + v + 2 w)

Podemos utilizar esta expressão para igualá-la a zero:

Se \(v<c\), então:

solve for p: ((-1 + p) p (c p - v))/(-c p^2 + v + 2 w)=0, v>0, c>0, w>0, v<c, w>c, 0<=p<=1

O resultado é:

  • \(\hat{p}=0\)
  • \(\hat{p}=1\)
  • \(\hat{p} = \dfrac{v}{c}\)

Se \(v>c\), então:

solve for p: ((-1 + p) p (c p - v))/(-c p^2 + v + 2 w)=0, v>0, c>0, w>0, v>c, w>c, 0<=p<=1

O resultado é:

  • \(\hat{p}=0\)
  • \(\hat{p}=1\)

Agora temos dois ou três possíveis valores de equilíbrio dependendo da relação entre \(v\) e \(c\).

Assumimos que \(v<c\) para a análise de equilíbrio realizada a seguir.

Para sabermos se o ponto de equilíbrio é estável, precisamos computar a derivada da função recursiva no ponto de equilíbrio.

Iniciamos substituindo \(W(H)\) e \(W(D)\) em termos de \(p\), \(w_0\), \(v\) e \(c\):

p (H / (p H + (1-p) D)) /. H = w + p (v-c)/2 + (1-p) v, D = w + (1-p) (v/2)

O resultado é:

(p (p (c + v) - 2 (v + w)))/(c p^2 - v - 2 w)

Encontramos formas alternativas, e novamente escolhemos a que parece visualmente mais simples, solicitando sua devivada parcial em \(p\):

derivative (p (p (c + v) - 2 (v + w)))/(c p^2 - v - 2 w) in p

O resultado é:

(-2 ((-1 + p) v - w) (v + 2 w) + 2 c p ((-1 + p) v + (-2 + p) w))/(-c p^2 + v + 2 w)^2

Da solução, escolhemos uma delas e solicitamos a substituição dos três pontos de equilíbrio encontrados acima

  • \(\hat{p}=0\):

(-2 ((-1 + p) v - w) (v + 2 w) + 2 c p ((-1 + p) v + (-2 + p) w))/(-c p^2 + v + 2 w)^2 /. p=0

O resultado é:

1 + v/(v + 2 w)

  • \(\hat{p}=1\):

(-2 ((-1 + p) v - w) (v + 2 w) + 2 c p ((-1 + p) v + (-2 + p) w))/(-c p^2 + v + 2 w)^2 /. p=1

O resultado é:

-(2 w)/(c - v - 2 w)

  • \(\hat{p}={v \over c}\):

(-2 ((-1 + p) v - w) (v + 2 w) + 2 c p ((-1 + p) v + (-2 + p) w))/(-c p^2 + v + 2 w)^2 /. p=v/c

O resultado é:

(2 c w)/((c - v) v + 2 c w)

Temos, portanto, analiticamente, os valores das derivadas pontuais e, dependendo dos valores de \(w\), \(v\) e \(c\), poderemos verificar se \(\hat{p}\) é de equilíbrio estável.

Os valores de \(w_0\) devem sempre ser maiores que \(c\) para que as interações diádicas nunca resultem em aptidão negativa ou nula. Por simplificação, estabeleceremos \(w=5\).

Derivada em \(\hat{p}=0\)

\[{{dp''} \over {dp}} \rvert_{\hat{p}=0} = {{v \over {v + 2 w_0}}+1}\]

Substituindo w por 5 e dando uma faixa para v entre 0 e 3 (não aparece c nesta derivada):

plot 1 + v/(v + 2 5) from v=0 to v=3 axes label “v” “d”

exibe:

O gráfico da superfície da derivada em \(\hat{p}=0\) é:

Mostrando que todos os valores das derivadas estão acima de 1 se \(w_{0}>0\) e, portanto, \(\hat{p}=0\) não é ponto de equilíbrio estável em nenhuma circunstância.

Derivada em \(\hat{p}=1\)

\[\dfrac{dp''}{dp} \rvert_{\hat{p}=1} = \dfrac{2w_0}{2w_0+v-c}\]

Neste caso, substituindo w por 5 e dando uma faixa para c e v entre 0 e 3 (com o cuidado de colocar c antes de v, para que fiquem, respectivamente, nos eixos das abscissas e ordenadas):

contour plot 2 5 / (2 5 + v - c) from c=0 to c=3 from v=0 to v=3 axes label “c” “v” plot legend

exibe:

Mostrando que todos os valores das derivadas estão entre -1 e 1 para os valores acima da diagonal, i.e., quando \(v>c\) e, portanto, somente nesta condição \(\hat{p}=1\) é ponto de equilíbrio estável.

Derivada em \(\hat{p}=\frac{v}{c}\)

\[\dfrac{dp''}{dp} \rvert_{\hat{p}=\frac{v}{c}} = \dfrac{2c w_0}{2cw_0-v(v-c)}\]

Com as mesmas condições anteriores:

contour plot 5 c / (2 5 c + v (c - v)) from c=0 to c=3 from v=0 to v=3 axes label “c” “v” plot legends

exibe:

Mostrando que todos os valores das derivadas estão entre -1 e 1 para os valores abaixo da diagonal, i.e., quando \(v<c\) e, portanto, somente nesta condição \(\hat{p}={v \over c}\) é ponto de equilíbrio estável.

\(v<c\)

Podemos verificar os achados analíticos e observar os comportamentos dinâmicos utilizando o método gráfico. Vamos adotar esta condição com \(w_0=5\), \(v=2\) e \(c=3\):

A progressão no tempo está implementada em eiras.demoptHD.R, mostrando que há um ponto de equilíbrio intermediário entre Hawk e Dove:

source("eiras.ptHD.R")
pH <- 0.01
pD <- 1-pH
w0 <- 5
v <- 2
c <- 3
t <- 150
ptHD(pH,pD,w0,v,c,t)

O comportamento de \(\Delta p\) em relação a \(p\) (usando a proporção de H como referência) está implementado em eiras.demodeltapHD.R:

source("eiras.demodeltapHD.R")
w0 <- 5
v <- 2
c <- 3
demodeltapHD(w0,v,c)

O comportamento de \(p''\) em função de \(p\) torna-se:

source("eiras.pduaslinhasHD.R")
w0 <- 5
v <- 2
c <- 3
dt_ptos <- pdualinhasHD(w0,v,c)

Com o método gráfico podemos verificar se algum dos pontos de equilíbrio é estável:

source("eiras.pduaslinhasHD_eq.R")
w0 <- 5
v <- 2
c <- 3
# caminho recursivo iniciando nos seguintes valores de p
pini <- c(0.1,0.9)
pdualinhasHD_eq(w0,v,c,pini)

\(v>c\)

Neste caso o método analítico prevê que somente \(\hat{p}=1\) (i.e., terminar com somente a estratégia H) é o ponto de equilíbrio. Vamos adotar esta condição com \(w_0=5\), \(v=4\) e \(c=3\):

A progressão no tempo é:

source("eiras.ptHD.R")
pH <- 0.01
pD <- 1-pH
w0 <- 5
v <- 4
c <- 3
t <- 150
ptHD (pH,pD,w0,v,c,t)

O comportamento de \(\Delta p\) em relação a \(p\) é:

source("eiras.demodeltapHD.R")
w0 <- 5
v <- 4
c <- 3
demodeltapHD(w0,v,c)

O comportamento de \(p''\) em função de \(p\) torna-se:

source("eiras.pduaslinhasHD.R")
w0 <- 5
v <- 4
c <- 3
dt_ptos <- pdualinhasHD(w0,v,c)

E verificamos se algum dos pontos de equilíbrio é estável com:

source("eiras.pduaslinhasHD_eq.R")
w0 <- 5
v <- 4
c <- 3
# caminho recursivo iniciando nos seguintes valores de p
pini <- c(0.1,0.9)
pdualinhasHD_eq(w0,v,c,pini)

Jogos simétrico e assimétrico

Em jogo simétrico, provavelmente existe algum equilíbrio com uma população fenotipicamente polimórfica.

A matriz de recompensas do jogo Falcão-Pomba que apresentamos é simétrica:


\(\small{p}\)
H

\(\small{1-p}\)
D

H \({v-c} \over {2}\); \({v-c} \over {2}\)
\(v\); \(0\)
D
\(0\); \(v\)
\({v} \over {2}\); \({v} \over {2}\)


Uma matriz de recompensas de um jogo assimétrico tem este tipo de constituição:

\(\small{p}\)
escalate

\(\small{1-p}\)
display

escalate \(vx-c(1-x)\); \(v(1-x)-cx\)
\(v\); \(0\)
display
\(0\); \(v\)
\({v} \over {2}\); \({v} \over {2}\)

modificado de Smith & Parker, 1976

eiras.animalconflict.R

O script eiras.animalconflict.R permite executar jogos com duas ou três estratégias. Os jogos são configurados em planilhas (.xlsx) preparadas para este script.

Para gerar o gráfico do jogo H-D, os passos são os seguintes:

  1. Baixar no seu computador os arquivos em Distribuicao_Cap2_ConflitoAnimal;
  2. Executar o arquivo Distribuicao_Cap2_ConflitoAnimal.Rproj;
  3. No RStudio, executar com Source o script eiras.animalconflict.R;
  4. Surgirá na Console do RStudio a seguinte mensagem:

Welcome to Eira's animal conflict game Please, provide the name of a configuration file or press ESC to abort. Filename (xls or xlsx format):

  1. Digitar, por exemplo, o nome do jogo game\H-D-R e pressionar Enter;
  2. O gráfico ternário é gerado na área de Plots do RStudio e salvo em game/H-D-R_results.xlsx.png;
  3. A planilha de resultados é gerada com o nome game/H-D-R_results.xlsx.

Estratégia evolutivamente estável (EEE)

A estratégia evolutivamente estável (EEE) é, talvez, o mais conhecido e o mais não compreendido conceito na teoria evolucionista dos jogos.

\(v<c\)

O jogo simples está implementado em H-D.xlsx para \(v=2\) e \(c=3\).

\(v>c\)

Para \(v=3\) e \(c=2\), só existem Hawks:

Como ler um gráfico ternário

Jogos com 3 estratégias pode ser expresso por um gráfico ternário.

A ternary plot, ternary graph, triangle plot, simplex plot, Gibbs triangle or de Finetti diagram is a barycentric plot on three variables which sum to a constant. It graphically depicts the ratios of the three variables as positions in an equilateral triangle. It is used in physical chemistry, petrology, mineralogy, metallurgy, and other physical sciences to show the compositions of systems composed of three species. In population genetics, it is often called a de Finetti diagram. In game theory, it is often called a simplex plot. Ternary plots are tools for analyzing compositional data in the three-dimensional case.
https://en.wikipedia.org/wiki/Ternary_plot

É fácil entender os eixos (com um modelo):

  • Imagine três eixos, para os valores \(A\), B e \(C\), indo de \(0\) a \(1\).

  • Coloque os eixos um sobre os outros, centrados em um triângulo equilátero. O ápice do eixo \(C\) coincide com o vértice do topo do triângulo.

  • Rotacione o eixo \(A\) para a esquerda até que seu ápice alcance o vértice esquerdo do triângulo.

  • Faça o mesmo com o eixo B, rotacionando-o à direita até alcançar o vértice direito do triângulo.

  • Os vértices do triângulo correspondem a 1 e as arestas opostas correspondem a 0 de proporção de \(A\), B e \(C\).

Basta imaginar estes três eixos para ter noção de qual a proporção relativa de cada uma das quantidades, considerando sempre que \(A+B+C=1\).

Hawk-Dove-Retaliator

Neste jogo a estratégia Retaliador (R) é comportar-se como seu oponente.

Quando a proporção inicial de R é maior que \(v \over c\) leva à extinção de H; caso contrário, R é extinto e converge para o equilíbrio entre H e D.

A tabela de recompensas é:
Hawk Dove Retaliator
Hawk \(\Large{{v-c} \over {2}}\) \(\Large{v}\) \(\Large{{v-c} \over {2}}\)
Dove \(\Large{0}\) \(\Large{{v} \over {2}}\) \(\Large{{v} \over {2}}\)
Retaliator \(\Large{{v-c} \over {2}}\) \(\Large{{v} \over {2}}\) \(\Large{{v} \over {2}}\)

Configuramos o jogo na planilha H-D-R.xlsx com os seguintes parâmetros:

e definimos a estratégia com:

\(v<c\)

Vamos reproduzir a figura 2.3 do livro utilizando o RScript eiras.animalconflict.R:

Seguiremos os pontos de origem nesta ordem:

Ponto 1

Ponto 2

Ponto 3

Ponto 4

Ponto 5

Cada um dos jogos gera uma figura no formato .png e uma planilha contendo as proporções de Dove, Hawk e Retaliator com a terminação _results.xls. Colocando todas juntas em Retaliator_pt1a5_results.xlsx, podemos usar o RScript eiras.ternary.replot.R para replotar todas as trajetórias juntas:

source("eiras.ternary.replot.R")
filename <- "Retaliator_pt1a5_results.xlsx"
eiras.ternary.replot(filename)

Obtendo

Explorando o ambiente com eiras.animalconflict.R usando a planilha H-D-R.xlsx

Obtemos:

\(v>c\)

Por exemplo, para \(v=3\) e \(c=2\):

\(v=c\)

Por exemplo, para \(v=2\) e \(c=2\):

H-D-HD: estratégia contínua

A estratégia HD é Hawk ou Dove com probabilidades H e \(1-h\).

A matriz de recompensas é:

source("mygame.R")
mygame("game/H-D-HD.txt", lines=50, v=2, c=3, w0=5, h=0.5, options="end_dots")

mygame("game/H-D-HD.txt", lines=50, v=2, c=3, w0=5, h=0.25, options="end_dots")

mygame("game/H-D-HD.txt", lines=50, v=2, c=3, w0=5, h=0.75, options="end_dots")

cat(readLines("game/H-D-HD.txt"), sep="\n")
# Continuous Hawk & Dove
#   Continuous plays hawk for h time
#
#   Implemented by Paulo Silveira & Jose Siqueira, 2018
#

# INSTRUCTIONS
#   Write equations w1 (right corner = hawk), w2 (top corner) and w3 (left corner = dove)
#   Remove unnecessary parameters 
#   Add parameters at the end of the list with default value (using =)
#   End with ", ...)"
#   Do not remove w0 from equations 
#
#   Edit ps.config to inform the number of corners (2 or 3 kinds of players)
#   Give the names for the corners in order: left, right and top corner names
#
#   Save this definition with no extension or extension ".txt"
#
#   Call with:
#   > mygame("Gamename", parameters, options)

ps.game <- function(p, q, r, v = 2, c = 3, w0 = 5, d = 0, h = 0.5, ...) 
{
  # hawk
  w1 = w0 + p*((v-c)/2) + q*( (h*((v-c)/2)) + ((1-h)*(v-d/2)) ) + r*(v-d/2)
  # continuous
  w2 = w0 + p*( h*((v-c)/2) + (1-h)*(-d/2) ) + q*( h*h*((v-c)/2) + h*(1-h)*((v-d/2)+(-d/2)) + (1-h)*(1-h)*((v-d)/2) ) + r*( h*(v-d/2) + (1-h)*((v-d)/2) )
  # dove
  w3 = w0 + p*(-d/2) + q*( h*(-d/2)+(1-h)*((v-d)/2) ) + r*((v-d)/2)
  
  c(w1, w2, w3)
}

ps.config <- function ()
{
  # numcorners, labels: left right top
  c(3,"Dove","Hawk","HawkDove continuous")
}

# add your comments (optional)
ps.comment <- function ()
{
  cat
  ("
     ps.game <- function(p, q, r, v = 2, c = 3, w0 = 5, d = 0, h = 0.5, ...) 
{
  # hawk
  w1 = w0 + p*((v-c)/2) + q*( (h*((v-c)/2)) + ((1-h)*(v-d/2)) ) + r*(v-d/2)
  # continuous
  w2 = w0 + p*( h*((v-c)/2) + (1-h)*(-d/2) ) + q*( h*h*((v-c)/2) + h*(1-h)*((v-d/2)+(-d/2)) + (1-h)*(1-h)*((v-d)/2) ) + r*( h*(v-d/2) + (1-h)*((v-d)/2) )
  # dove
  w3 = w0 + p*(-d/2) + q*( h*(-d/2)+(1-h)*((v-d)/2) ) + r*((v-d)/2)
  
  c(w1, w2, w3)
}  
  ");
}

Hawk-Dove-Bourgeois

A estratégia burguês, B, é a do proprietário. Quando chega primeiro ao recurso, o defende como H; quando chega depois, reage como D.

A tabela de recompensas é:

Hawk Dove Bourgeois
Hawk \(\Large{{v-c}\over{2}}\) \(\Large{v}\) \(\Large{{3v - c} \over 4}\)
Dove \(\Large{0}\) \(\Large{v \over 2}\) \(\Large{{v \over 4}}\)
Bourgeois \(\Large{{v - c} \over 4}\) \(\Large{{3v} \over 4}\) \(\Large{v \over 2}\)

\(v<c\)

Por exemplo, para \(v=2\) e \(c=3\) (H-D-B.xlsx):

Compare com o jogo H-D-R.

A exploração mostra:

Note que, próximo ao eixo DH, apareceram alguns pontos de equilíbrio.

O livro previu isto, mas suspeitamos que não detectou a dinâmica:

\(v>c\)

Por exemplo, para \(v=3\) e \(c=2\):

Hawk-Dove-Assessor

Na estratégia Avaliador (Assessor), o indivíduo atua como Falcão se é maior do que seu oponente; ele atua como Pomba se é menor; se dois Avaliadores se encontram, um deles se comporta como Pomba e outro como Falcão.

Os pareamentos são aleatórios.

As vitórias não são equiprováveis (assimetria).

Cada contendor da díade tem 50% de probabilidade de ser o maior (organismos são equiprovavelmente maiores e menores).

x é a probabilidade do maior contendor vencer a disputa entre Avaliador e Falcão; assumir que x > 0.5.

A tabela de recompensas é:

Hawk Dove Assessor
Hawk \(\Large{{v-c}\over{2}}\) \(\Large{v}\) \(\Large{v (1 - {x \over 2}) - c {x \over 2}}\)
Dove \(\Large{0}\) \(\Large{v \over 2}\) \(\Large{{v \over 4}}\)
Assessor \(\Large{v {x \over 2} + c ({x \over 2} - {1 \over 2})}\) \(\Large{{3v \over 4} }\) \(\Large{v \over 2}\)

\(v < c\)

Por exemplo, para \(v=2\) e \(c=3\) (H-D-A.xlsx):

Observe que a única mudança em relação aos burgueses é o comportamento dos avaliadores entre si. Os burgueses (e os anarquistas), não importando quem chegava primeiro, comportavam-se como D (D|D). Os avaliadores podem ser agressivos entre si, o maior deles agindo como H e o outro como D (H|D ou D|H).

O resultado para \(v=2\), \(c=3\) e \(x=0.6\) é:

A teoria, para \(v<c\), pede \(x>0.5\).

Voltando ao avaliador com \(x>0.5\), mas alterando para \(v=1\) e \(c=2\), a posição das curvas se modifica mas o jogo é qualitativamente o mesmo que observamos com \(v=1\), \(c=2\) e \(x=0.6\).

Note que o ponto de equilíbrio entre D e H agora é \({v \over c} = {1 \over 2}\).

Podemos criar um jogo?

Hawk-Dove-ShortTemper

Nesta estratégia, os indivíduos S agem com falcão quando são menores. Por serem menores, sua probabilidade de vencer a luta é \(x<0.5\).

Como reagem contra a provocação, indivíduos S entre si e S com D regaem sem agressão, comportando-se como D.

Configurando H-D-S.xlsx obtivemos a tabela de recompensas:

Hawk Dove Short Temper
Hawk \(\Large{{v-c}\over{2}}\) \(\Large{v}\) \(\Large{v (1 - {x \over 2}) - c {x \over 2}}\)
Dove \(\Large{0}\) \(\Large{v \over 2}\) \(\Large{{v \over 2} }\)
Short Temper \(\Large{v {x \over 2} + c ({x \over 2} - {1 \over 2})}\) \(\Large{{v \over 2} }\) \(\Large{v \over 2}\)

Portanto, a planilha é:

Resultando em:

Referências