\documentclass[a4paper, oneside, 10pt]{article}
\usepackage[unicode]{hyperref}
\usepackage[utf8x]{inputenc}
\usepackage[english]{babel}
\date{\today}
\title{}
\author{}
\begin{document}



\section{\texorpdfstring{Simulação da estrutura espacial de uma população vegetal}{Simulaao da estrutura espacial de uma populaao vegetal}}
\label{sec:simulaao_da_estrutura_espacial_de_uma_populaao_vegetal}


Dois processos principais atuam determinando a estrutura espacial de populações vegetais: os processos ligados ao nicho (ou seja, em que a estrutura ambiental seria o principal fator para o estabelecimento de um indivíduo em um determinado local) e os processos neutros (em que o principal fator seria a limitação de dispersão). Segundo Janzen–Connell, a probabilidade de um propágulo alcançar e sobreviver um determinado local segue a distribuição de poisson.

Ao longo de muitos anos na literatura se debateu qual destes dois processos seria mais importante e atualmente se considera que ambos podem ocorrer simultaneamente.

Proponho na minha função simular a dinâmica de uma população vegetal segundo os modelos de nicho, neutro e ambos simultaneamente. Neste caso estamos interessados principalmente no padrão espacial final, mas seria possível também acessar as simulações intermediárias. Para isto, pensei em fazer a função de duas maneiras diferentes:

\begin{center}
\line(1,0){250}
\end{center}



\subsection{\texorpdfstring{Primeira maneira}{Primeira maneira}}
\label{sec:primeira_maneira}


Utilizando espaço contínuo
\begin{quote}
\textbf{Prós:} seria mais fácil visualizar padrões de agregação em qualquer xmax e ymax\\\textbf{Contras:} Não tenho certeza de como transformaria as informações da matriz ambiente para espaço contínuo. Essa ideia está menos estruturada na minha cabeça.
\end{quote}


\subsubsection{\texorpdfstring{Entrada:}{Entrada}}
\label{sec:entrada}


\texttt{nichoneutro(N, modelo, nsim, xmax, ymax, plot = TRUE, i.neutro, i.nicho)}
\begin{itemize}
  \item \texttt{n} = número de indivíduos \emph{(classe: integer, N \textgreater  0)}.
  \item \texttt{nsim} = Numero de iterações da simulação \emph{(classe: integer, N \textgreater  0)}.
  \item \texttt{modelo} = Modelo a ser escolhido \emph{(classe character: \texttt{“nicho”}, \texttt{“neutro”}, \texttt{“nichoeneutro”})}.
  \item \texttt{xmax} = x máximo \emph{(classe: integer, N \textgreater  0)}.
  \item \texttt{ymax} = y máxima \emph{(classe: integer, N \textgreater  0)}.
  \item \texttt{plot} = lógico. Se verdadeiro retorna gráfico final da distribuição espacial.
  \item \texttt{i.nicho} = influência proporcional dos processos relacionados a nicho \emph{(classe numeric 0 \textless  i.nicho \textless  1)}.
  \item \texttt{i.neutro} = influência proporcional dos processos neutros \emph{(classe numeric 0 \textless  i.neutro \textless  1)}.
\end{itemize}


\subsubsection{\texorpdfstring{Verificação de parâmetros:}{Verificaao de parametros}}
\label{sec:verificaao_de_parametros}

\begin{itemize}
  \item \texttt{n} é um número inteiro e maior que 0? Se não, escreve: \emph{“N precisa ser um número inteiro e \textgreater  0.”}
  \item \texttt{nsim} é um número inteiro e maior que 0? Se não, escreve: \emph{“Nsim precisa ser um número inteiro e \textgreater  0.”}
  \item \texttt{modelo} é um character contendo \texttt{“nicho”}, \texttt{“neutro”} ou \texttt{“nichoeneutro”}? Se não, escreve \emph{“modelo precisa ser um caracter contendo \texttt{“nicho”}, \texttt{“neutro”} ou \texttt{“nichoeneutro”}.}
  \item \texttt{xmax} é um número inteiro e maior que 0? Se não, escreve: \emph{“xmax precisa ser um número inteiro e \textgreater  0.”}
  \item \texttt{ymax} é um número inteiro e maior que 0? Se não, escreve: \emph{“ymax precisa ser um número inteiro e \textgreater  0.”}
  \item \texttt{n} é menor que nrow*ncol? Se não, retorna \emph{“não há espaço para tantas arvores. Diminua N ou aumente nrow e/ou ncol.”}
  \item \texttt{plot} é lógico? Se não, escreve \emph{“plot precisa ser lógico.”}
  \item 0 \textless  \texttt{i.neutro} \textless  1? Se não, escreve \emph{\texttt{“i.neutro} deve ser entre 0 e 1.”}
  \item 0 \textless  \texttt{i.nicho} \textless  1? Se não, escreve \emph{“\texttt{i.neutro} deve ser entre 0 e 1.”}
  \item Os argumentos \texttt{i.nicho} e \texttt{i.neutro} estão sendo utilizados quando \texttt{modelo} = \texttt{“nicho”} ou \texttt{“neutro”}? Se sim, escreve \emph{“Os argumentos i.nicho e i.neutro não estão sendo utilizados”.}
  \item \texttt{i.nicho} + \texttt{i.neutro} = 1? Se não, escreve \emph{“a soma de i.nicho e i.neutro deve ser 1.”}
\end{itemize}


\subsubsection{\texorpdfstring{Pseudo-Código:}{PseudoCodigo}}
\label{sec:pseudocodigo}

\begin{itemize}
  \item Cria objeto \texttt{espaço}, um dataframe com \texttt{n} linhas e \texttt{2} colunas (x e y) contendo apenas 0.
  \item Sorteia valores aleatórios entre 0 e xmax para x, e 0 e ymax para y e coloca em \texttt{espaço}
  \item Cria dataframe \texttt{simulação} com \texttt{nsim} linhas e quatro colunas: \texttt{x\_mort}, \texttt{y\_mort}, \texttt{x\_col}, \texttt{y\_col}, contendo \texttt{NAs}.
\end{itemize}


\paragraph{\texorpdfstring{Se modelo = “nicho”}{Se modelo  nicho}}
\label{sec:se_modelo__nicho}

\begin{itemize}
  \item Cria o objeto \texttt{ambiente}, uma matriz com \texttt{ymax} linhas e \texttt{xmax} colunas. Geração de gradiente ambiental adaptando da função \href{http://ecologia.ib.usp.br/bie320/lib/exe/fetch.php?media=2016:roteiros:cria_gradiente.r}{cria\_gradiente.r}. A matriz terá valores entre 0 e 1 que estarão associadas a probabilidade de mortalidade naquela posição.
  \item Ciclo for de 1 a \texttt{nsim}

  \begin{itemize}
    \item Sorteio de uma árvore para morrer de acordo com as probabilidades da matriz \texttt{ambiente} \footnote{Tenho dúvidas de como faria esta parte}
    \item Guarda \texttt{x\_mort[i]} e \texttt{y\_mort[i]} em \texttt{simulação}
    \item Sorteio aleatório para uma posição de uma nova árvore, sobrescreve a árvore que morreu
    \item Guarda \texttt{x\_col[i]} e \texttt{y\_col[i]} em \texttt{simulação}
  \end{itemize}
  \end{itemize}


\paragraph{\texorpdfstring{Se modelo = “neutro”}{Se modelo  neutro}}
\label{sec:se_modelo__neutro}

      \begin{itemize}
  \item Ciclo for de 1 a \texttt{nsim}.

  \begin{itemize}
    \item Sorteio aleatório de uma árvore para morrer.
    \item Guarda \texttt{x\_mort[i]} e \texttt{y\_mort[i]} em \texttt{simulação}.
    \item Sorteio de uma árvore para se reproduzir.
    \item Sorteio de uma distância em relação a árvore escolhida seguindo a probabilidade de Poisson.
    \item Sorteio de um radiano.
    \item Guarda posição da nova árvore em \texttt{espaço}, sobrescrevendo a que morreu
    \item Guarda \texttt{x\_col[i]} e \texttt{y\_col[i]} em \texttt{simulação}.
  \end{itemize}
  \end{itemize}


\paragraph{\texorpdfstring{Se modelo = “nichoeneutro”}{Se modelo  nichoeneutro}}
\label{sec:se_modelo__nichoeneutro}

      \begin{itemize}
  \item Cria o objeto \texttt{ambiente}, uma matriz com \texttt{ymax} linhas e \texttt{xmax} colunas. Geração de gradiente ambiental adaptando da função \href{http://ecologia.ib.usp.br/bie320/lib/exe/fetch.php?media=2016:roteiros:cria_gradiente.r}{cria\_gradiente.r}. A matriz terá valores entre 0 e 1 que estarão associadas a probabilidade de mortalidade naquela posição.
  \item Ciclo for de 1 a \texttt{nsim}

  \begin{itemize}
    \item Sorteio de uma árvore para morrer de acordo com as probabilidades da matriz \texttt{ambiente*i.nicho}
    \item Guarda \texttt{x\_mort[i]} e \texttt{y\_mort[i]} em \texttt{simulação}
    \item Sorteio de uma distância em relação a árvore escolhida seguindo a probabilidade de Poisson, com média proporcional a \texttt{i.neutro}.
    \item Sorteio de um radiano.
    \item Guarda posição da nova árvore em \texttt{espaço}, sobrescrevendo a que morreu
    \item Guarda \texttt{x\_col[i]} e \texttt{y\_col[i]} em \texttt{simulação}.
  \end{itemize}
  \end{itemize}


\subsubsection{\texorpdfstring{Saída:}{Saida}}
\label{sec:saida}

      \begin{itemize}
  \item Se \texttt{plot = TRUE}, Gera gráfico em que cada cédula corresponde a uma posição da matriz \texttt{espaço} ao final de todas iterações. Coloca um ponto em cada cédula que apresenta 1. Se modelo = \texttt{“nicho”} ou \texttt{,,nichoeneutro"} também coloca em escalas de cores a probabilidade de mortalidade associada aquela posição.
  \item Retorna dataframe \texttt{simulação}
\end{itemize}


\begin{center}
\line(1,0){250}
\end{center}



\subsection{\texorpdfstring{Segunda maneira}{Segunda maneira}}
\label{sec:segunda_maneira}


Utilizando matrizes para indicar a localização dos pontos.
\begin{quote}
\textbf{Prós:} talvez seja mais simples fazer um gradiente ambiental associado a posição de cada ponto, uma vez que cada ponto de \texttt{espaço} terá sua correspondência na matriz \texttt{ambiente}\\\textbf{Contras:} seria necessário ncol e nrow muito grandes para verificar alguma estrutura espacial
\end{quote}


\subsubsection{\texorpdfstring{Entrada:}{Entrada}}
\label{sec:entrada2}


\texttt{nichoneutro(N, modelo, nsim, ncol, nrow, plot = TRUE, i.neutro, i.nicho)}
\begin{itemize}
  \item \texttt{n} = número de indivíduos \emph{(classe: integer, N \textgreater  0)}.
  \item \texttt{nsim} = Numero de iterações da simulação \emph{(classe: integer, N \textgreater  0)}.
  \item \texttt{modelo} = Modelo a ser escolhido \emph{(classe character: \texttt{“nicho”}, \texttt{“neutro”}, \texttt{“nichoeneutro”})}.
  \item \texttt{ncol} = número de colunas de habitat da paisagem \emph{(classe: integer, N \textgreater  0)}.
  \item \texttt{nrow} = número de linhas de habitat da paisagem \emph{(classe: integer, N \textgreater  0)}.
  \item \texttt{plot} = lógico. Se verdadeiro retorna gráfico final da distribuição espacial.
  \item \texttt{i.nicho} = influência proporcional dos processos relacionados a nicho \emph{(classe numeric 0 \textless  i.nicho \textless  1)}.
  \item \texttt{i.neutro} = influência proporcional dos processos neutros \emph{(classe numeric 0 \textless  i.neutro \textless  1)}.
\end{itemize}


\subsubsection{\texorpdfstring{Verificação de parâmetros:}{Verificaao de parametros}}
\label{sec:verificaao_de_parametros2}

\begin{itemize}
  \item \texttt{n} é um número inteiro e maior que 0? Se não, escreve: \emph{“N precisa ser um número inteiro e \textgreater  0.”}
  \item \texttt{nsim} é um número inteiro e maior que 0? Se não, escreve: \emph{“Nsim precisa ser um número inteiro e \textgreater  0.”}
  \item \texttt{modelo} é um character contendo \texttt{“nicho”}, \texttt{“neutro”} ou \texttt{“nichoeneutro”}? Se não, escreve \emph{“modelo precisa ser um caracter contendo \texttt{“nicho”}, \texttt{“neutro”} ou \texttt{“nichoeneutro”}.}
  \item \texttt{ncol} é um número inteiro e maior que 0? Se não, escreve: \emph{“ncol precisa ser um número inteiro e \textgreater  0.”}
  \item \texttt{nrow} é um número inteiro e maior que 0? Se não, escreve: \emph{“nrow precisa ser um número inteiro e \textgreater  0.”}
  \item \texttt{plot} é lógico? Se não, escreve \emph{“plot precisa ser lógico.”}
  \item 0 \textless  \texttt{i.neutro} \textless  1? Se não, escreve \emph{\texttt{“i.neutro} deve ser entre 0 e 1.”}
  \item 0 \textless  \texttt{i.nicho} \textless  1? Se não, escreve \emph{“\texttt{i.neutro} deve ser entre 0 e 1.”}
  \item Os argumentos \texttt{i.nicho} e \texttt{i.neutro} estão sendo utilizados quando \texttt{modelo} = \texttt{“nicho”} ou \texttt{“neutro”}? Se sim, escreve \emph{“Os argumentos i.nicho e i.neutro não estão sendo utilizados”.}
  \item \texttt{i.nicho} + \texttt{i.neutro} = 1? Se não, escreve \emph{“a soma de i.nicho e i.neutro deve ser 1.”}
\end{itemize}


\subsubsection{\texorpdfstring{Pseudo-Código:}{PseudoCodigo}}
\label{sec:pseudocodigo2}

\begin{itemize}
  \item Cria objeto \texttt{espaço}, uma matriz com \texttt{nrow} linhas e \texttt{ncol} colunas contendo apenas 0.
  \item Sorteio aleatório de \texttt{n} posições de espaço e atribuição de 1 para as posições sorteadas.
  \item Cria dataframe \texttt{simulação} com \texttt{nsim} linhas e quatro colunas: \texttt{x\_mort}, \texttt{y\_mort}, \texttt{x\_col}, \texttt{y\_col}, contendo \texttt{NAs}.
\end{itemize}


\paragraph{\texorpdfstring{Se modelo = “nicho”}{Se modelo  nicho}}
\label{sec:se_modelo__nicho2}

\begin{itemize}
  \item Cria o objeto \texttt{ambiente}, uma matriz com \texttt{nrow} linhas e \texttt{ncol} colunas. Geração de gradiente ambiental adaptando da função \href{http://ecologia.ib.usp.br/bie320/lib/exe/fetch.php?media=2016:roteiros:cria_gradiente.r}{cria\_gradiente.r}. A matriz terá valores entre 0 e 1 que estarão associadas a probabilidade de mortalidade naquela posição.
  \item Ciclo for de 1 a \texttt{nsim}

  \begin{itemize}
    \item Sorteio de uma árvore para morrer de acordo com as probabilidades da matriz \texttt{ambiente}
    \item Guarda \texttt{x\_mort[i]} e \texttt{y\_mort[i]} em \texttt{simulação}
    \item Atribui 0 a posição de \texttt{espaço} sorteada
    \item Sorteio aleatório da posição de uma nova árvore
    \item Guarda \texttt{x\_col[i]} e \texttt{y\_col[i]} em \texttt{simulação}
    \item Atribui 1 a posição de \texttt{espaço} sorteada
  \end{itemize}
  \end{itemize}


\paragraph{\texorpdfstring{Se modelo = “neutro”}{Se modelo  neutro}}
\label{sec:se_modelo__neutro2}

      \begin{itemize}
  \item Ciclo for de 1 a \texttt{nsim}

  \begin{itemize}
    \item Sorteio aleatório de uma árvore para morrer
    \item Guarda \texttt{x\_mort[i]} e \texttt{y\_mort[i]} em \texttt{simulação}
    \item Atribui 0 a posição de \texttt{espaço} sorteada
    \item Sorteio de uma árvore para se reproduzir
    \item Sorteio de uma distância em relação a árvore escolhida seguindo a probabilidade de Poisson.
    \item Sorteio de uma direção em relação a árvore original (N, S, L, O, NE, NO, SE, SO)
    \item Atribui 1 a posição de \texttt{espaço} sorteada
    \item Guarda \texttt{x\_col[i]} e \texttt{y\_col[i]} em \texttt{simulação}
  \end{itemize}
  \end{itemize}


\paragraph{\texorpdfstring{Se modelo = “nichoeneutro”}{Se modelo  nichoeneutro}}
\label{sec:se_modelo__nichoeneutro2}

      \begin{itemize}
  \item Cria o objeto \texttt{ambiente}, uma matriz com \texttt{nrow} linhas e \texttt{ncol} colunas. Geração de gradiente ambiental adaptando da função \href{http://ecologia.ib.usp.br/bie320/lib/exe/fetch.php?media=2016:roteiros:cria_gradiente.r}{cria\_gradiente.r}. A matriz terá valores entre 0 e 1 que estarão associadas a probabilidade de mortalidade naquela posição.
  \item Ciclo for de 1 a \texttt{nsim}

  \begin{itemize}
    \item Sorteio de uma árvore para morrer de acordo com as probabilidades da matriz ambiente
    \item Guarda \texttt{x\_mort[i]} e \texttt{y\_mort[i]} em \texttt{simulação}
    \item Atribui 0 a posição de \texttt{espaço} sorteada
    \item Sorteio de uma distância em relação a árvore escolhida seguindo a probabilidade de Poisson.
    \item Sorteio de uma direção em relação a árvore original (N, S, L, O, NE, NO, SE, SO)
    \item Atribui 1 a posição de \texttt{espaço} sorteada
    \item Guarda \texttt{x\_col[i]} e \texttt{y\_col[i]} em \texttt{simulação}
  \end{itemize}
  \end{itemize}


\subsubsection{\texorpdfstring{Saída:}{Saida}}
\label{sec:saida2}

      \begin{itemize}
  \item Se \texttt{plot = TRUE}, gera gráfico em que cada cédula corresponde a uma posição da matriz \texttt{espaço} ao final de todas iterações. Coloca um ponto em cada cédula que apresenta 1. Se modelo = \texttt{“nicho”} ou \texttt{,,nichoeneutro"} também coloca em escalas de cores a probabilidade de mortalidade associada aquela posição.
  \item Retorna dataframe \texttt{simulação}
\end{itemize}


\end{document}
