Podcast
Questions and Answers
Qual é o processo de liberação de energia a partir dos alimentos?
Qual é o processo de liberação de energia a partir dos alimentos?
Respiração
Dê um exemplo de fungo unicelular.
Dê um exemplo de fungo unicelular.
Leveduras
Qual é o termo para a parte da planta que contém pétalas, sépalas e estames?
Qual é o termo para a parte da planta que contém pétalas, sépalas e estames?
Flor
Como se chamam os fungos multicelulares como os bolores e cogumelos?
Como se chamam os fungos multicelulares como os bolores e cogumelos?
Qual é um fator abiótico chave que afeta o crescimento dos peixes?
Qual é um fator abiótico chave que afeta o crescimento dos peixes?
Qual é a principal força que obriga os animais a serem noturnos ou crepusculares?
Qual é a principal força que obriga os animais a serem noturnos ou crepusculares?
O que forma uma população em um ecossistema?
O que forma uma população em um ecossistema?
Cite um dos maiores absorvedores de carbono.
Cite um dos maiores absorvedores de carbono.
Qual é o nome dado ao primeiro nome na nomenclatura binomial?
Qual é o nome dado ao primeiro nome na nomenclatura binomial?
Qual é a porcentagem aproximada de energia transferida para o próximo nível trófico?
Qual é a porcentagem aproximada de energia transferida para o próximo nível trófico?
Flashcards
O que é Respiração?
O que é Respiração?
Um processo de liberação de energia dos alimentos.
O que é nutrição?
O que é nutrição?
Um processo pelo qual eles usam alimentos para suporte.
O que é excreção?
O que é excreção?
Os produtos residuais são removidos de um organismo.
O que são fungos unicelulares (leveduras)?
O que são fungos unicelulares (leveduras)?
Signup and view all the flashcards
O que é uma população?
O que é uma população?
Signup and view all the flashcards
Como os decompositores ajudam?
Como os decompositores ajudam?
Signup and view all the flashcards
Qual é o principal fator?
Qual é o principal fator?
Signup and view all the flashcards
Nomenclatura Binomial
Nomenclatura Binomial
Signup and view all the flashcards
O que causa o aquecimento global?
O que causa o aquecimento global?
Signup and view all the flashcards
Qual a importância da biodiversidade?
Qual a importância da biodiversidade?
Signup and view all the flashcards
Study Notes
Matrizes
- Matrizes são tabelas de números utilizadas para organizar dados e solucionar sistemas de equações.
Ordem de uma Matriz
- A ordem de uma matriz é definida pelo número de linhas ($m$) e colunas ($n$), sendo expressa como $m \times n$.
Elementos de uma Matriz
- Cada número em uma matriz é um elemento, identificado pela sua posição (linha $i$, coluna $j$) e denotado por $a_{ij}$.
Tipos de Matrizes
- Matriz Quadrada: Possui o mesmo número de linhas e colunas.
- Matriz Nula: Todos os elementos são zero.
- Matriz Identidade: Matriz quadrada com todos os elementos da diagonal principal iguais a 1 e os demais iguais a zero.
- Matriz Transposta: Obtida trocando as linhas pelas colunas da matriz original.
Operações com Matrizes
- Adição: Soma dos elementos correspondentes de duas matrizes de mesma ordem.
- Subtração: Subtração dos elementos correspondentes de duas matrizes de mesma ordem.
- Multiplicação: A multiplicação de duas matrizes $A$ e $B$ só é possível se o número de colunas de $A$ for igual ao número de linhas de $B.
- O elemento da linha $i$ e coluna $j$ da matriz produto é obtido somando os produtos dos elementos da linha $i$ de $A$ pelos elementos da coluna $j$ de $B$.
Determinante de uma Matriz
- O determinante de uma matriz é um número que pode ser calculado a partir dos elementos da matriz.
- Calculável apenas para matrizes quadradas.
- Matriz de ordem 2: $det(A) = \begin{vmatrix} a & b \ c & d \end{vmatrix} = ad - bc$
- Matriz de ordem 3: $det(A) = \begin{vmatrix} a & b & c \ d & e & f \ g & h & i \end{vmatrix} = aei + bfg + cdh - ceg - bdi - afh$
Aplicações de Matrizes
- Matrizes são utilizadas em ciência da computação, engenharia, física e economia.
- Elas são usadas para representar grafos, resolver sistemas de equações lineares, realizar transformações geométricas, entre outras aplicações.
Redes Multicamadas
Teorema da Aproximação Universal
- Uma rede de duas camadas da forma $f(x) = \sum_{i=1}^{N} v_i \sigma(w_i^Tx + b_i)$ pode aproximar qualquer função contínua arbitrariamente bem.
- $\sigma(\cdot)$ deve ser uma função de ativação "não constante, limitada e contínua".
- O número de neurônios $N$ pode ser muito grande.
- Ele não diz nada sobre aprendizado.
- Existem várias extensões para outras arquiteturas/funções de ativação.
Considerações Práticas
- Redes mais rasas podem exigir um número exponencialmente maior de neurônios para obter a mesma aproximação.
- Redes mais rasas também podem ser mais difíceis de treinar.
Gradiente Descendente
- Os parâmetros de uma rede neural são aprendidos minimizando uma função de custo $J(\theta)$.
- $\theta$: Todos os pesos e vieses na rede.
- $J(\theta)$: Mede o quão bem a rede se desempenha em uma determinada tarefa.
- Gradiente descendente é um algoritmo de otimização iterativo que atualiza os parâmetros na direção oposta do gradiente da função de custo: $\theta \leftarrow \theta - \eta \nabla_{\theta}J(\theta)$
- $\eta$: Taxa de aprendizado, um hiperparâmetro que controla o tamanho do passo.
- $\nabla_{\theta}J(\theta)$: Gradiente da função de custo em relação aos parâmetros.
Outros Algoritmos de Otimização
- Gradiente descendente estocástico (SGD): Atualiza os parâmetros após cada exemplo de treinamento.
- Gradiente descendente de mini-lote: Atualiza os parâmetros após um pequeno lote de exemplos de treinamento.
- Momento: Ajuda a acelerar o gradiente descendente na direção relevante e amortece as oscilações.
- Adam: Estimativa de momento adaptativo, combina as ideias de momento e RMSProp.
Retropropagação
- Retropropagação é um algoritmo para calcular o gradiente da função de custo em relação aos parâmetros da rede.
- Baseia-se na regra da cadeia do cálculo.
Exemplo: Rede de Duas Camadas
- Considere uma rede de duas camadas com uma única saída: $\qquad \hat{y} = \sigma(v^Th)$ $\qquad h = \sigma(Wx + b)$
- $x \in \mathbb{R}^D$: Vetor de entrada
- $W \in \mathbb{R}^{H \times D}$: Matriz de peso da primeira camada
- $b \in \mathbb{R}^H$: Vetor de polarização da primeira camada
- $v \in \mathbb{R}^H$: Vetor de peso da segunda camada
- $\sigma(\cdot)$: Função de ativação (aplicada elemento a elemento)
- $H$: Número de neurônios na camada oculta
- A função de custo é o erro quadrático: $\qquad J = \frac{1}{2}(\hat{y} - y)^2$
- $y$: Valor alvo
Equações de Retropropagação
- Camada de saída: $\qquad \delta = \frac{\partial J}{\partial \hat{y}}\sigma' = (\hat{y} - y)\sigma'(\alpha)$
- onde $\alpha = v^Th$
- Camada oculta: $\qquad \Delta = \frac{\partial J}{\partial h} \odot \sigma' = (v \delta) \odot \sigma'(z)$
- onde $z = Wx + b$ e $\odot$ é a multiplicação elemento a elemento
- Gradientes: $\qquad \frac{\partial J}{\partial v} = \delta h$ $\qquad \frac{\partial J}{\partial W} = \Delta x^T$ $\qquad \frac{\partial J}{\partial b} = \Delta$
Algoritmo de Retropropagação
- Passagem para frente: Calcule as ativações de todos os neurônios na rede.
- Passagem para trás: Compute os gradientes da função de custo em relação aos parâmetros da rede, começando pela camada de saída e trabalhando para trás.
- Atualização de parâmetros: Atualize os parâmetros da rede usando o gradiente descendente.
Gráficos Computacionais
- Um gráfico computacional é um gráfico direcionado que representa uma expressão matemática.
- Os nós no gráfico representam operações ou variáveis.
- As bordas no gráfico representam o fluxo de dados.
- Gráficos computacionais podem ser usados para calcular automaticamente os gradientes de uma função.
Exemplo: $e = (a + b) * (b + 1)$
- Um gráfico computacional representa a equação $e = (a + b) * (b + 1)$.
- O gráfico contém 5 nós ($a, b, +, +, *$) e 6 bordas indo das entradas $a$ e $b$ através de 2 operadores de adição para um operador de multiplicação que gera $e$.
Teorema de Green
- O Teorema de Green estabelece uma relação entre uma integral de linha ao redor de uma curva fechada simples $C$ e uma integral dupla sobre a região plana $D$ limitada por $C$.
- É a versão bidimensional do Teorema de Stokes.
- Seja $C$ uma curva plana fechada simples, suave por partes, com orientação positiva, e $D$ a região limitada por $C$. Se $P$ e $Q$ possuem derivadas parciais contínuas em uma região aberta contendo $D$, então
$\qquad \oint_C P,dx + Q,dy = \iint_D \left(\frac{\partial Q}{\partial x} - \frac{\partial P}{\partial y}\right) ,dA$
- A integral de linha é calculada percorrendo $C$ no sentido anti-horário.
Exemplo
-
Avalie a integral de linha $\oint_C x^4,dx + xy,dy$, onde $C$ é o triângulo com vértices em $(0, 0)$, $(1, 0)$ e $(1, 2)$.
-
Solução:*
-
Aqui, $P(x, y) = x^4$ e $Q(x, y) = xy$, então
$\qquad \frac{\partial Q}{\partial x} = y, \qquad \frac{\partial P}{\partial y} = 0.$
- Aplicando o teorema de Green, obtém-se
$\qquad \begin{aligned} \oint_C x^4,dx + xy,dy &= \iint_D (y - 0),dA = \int_0^1 \int_{0}^{2x} y,dy,dx \ &= \int_0^1 \left[\frac{1}{2}y^2\right]_0^{2x} ,dx = \int_0^1 2x^2,dx \ &= \left[ \frac{2}{3}x^3 \right]_0^1 = \frac{2}{3}. \end{aligned}$
Corolário
- Seja $C$ uma curva plana fechada simples, suave por partes, com orientação positiva, e seja $D$ a região limitada por $C$.
- A área de $D$ é dada por
$\qquad A = \frac{1}{2} \oint_C x,dy - y,dx$
Teoria Algorítmica dos Jogos
O que é Teoria Algorítmica dos Jogos?
- Teoria dos Jogos: estuda interações estratégicas entre agentes racionais.
- Design de Algoritmos: como projetar algoritmos eficientes para resolver problemas computacionais.
AGT = GT + CS
Teoria dos Jogos | Ciência da Computação | |
---|---|---|
Design do Sistema | arbitrário | algoritmo eficiente |
Computacional | ignorado | central |
Questão Central | existência e estrutura de equilíbrio | complexidade de encontrar equilíbrios |
Conceito de Solução | Equilíbrio de Nash, Equilíbrio de Nash Bayesiano, ... | algoritmo de tempo polinomial, aproximação, |
Roteamento Egoísta
Modelo
- Uma rede de $n$ nós e $m$ arestas.
- Cada aresta $e$ tem uma função de custo (ou função de latência) $l_e(x)$ que especifica o custo incorrido por cada usuário da aresta, dada a congestão $x$ da aresta.
- Existem $k$ conjuntos de usuários (ou tráfego), cada conjunto $i$ consistindo de $r_i$ usuários que querem viajar de $s_i$ para $t_i$.
Premissas
- Funções de custo são não-decrescentes.
- Usuários são não-atômicos, i.e., cada um controla uma quantidade desprezível de tráfego.
Definição
- Um fluxo $f$ é uma especificação de uma taxa de tráfego em cada caminho na rede.
- Um fluxo é viável se satisfaz as taxas de tráfego $r_1, \dots, r_k$.
Custo de um Fluxo
- O custo do fluxo $f$ é:
$C(f) = \sum_{e \in E} f_e l_e(f_e)$
- Onde $f_e$ é a quantidade de tráfego na aresta $e$.
Equilíbrio do Usuário
- Um fluxo $f$ está em equilíbrio do usuário se cada usuário está usando um caminho de custo mínimo.
- Para cada conjunto de usuários $i$ e cada par de caminhos $P, P'$ de $s_i$ para $t_i$ tal que $f_P > 0$,
$\sum_{e \in P} l_e(f_e) \le \sum_{e \in P'} l_e(f_e)$
- Todo o fluxo é roteado em caminhos de custo mínimo.
Paradoxo de Braess
-
Adicionar um link pode prejudicar!
-
Suponha 1 unidade de fluxo de $s$ para $t$.
- Na imagem, existem duas redes; a primeira tem dois caminhos entre os nós $s$ e $t$, a outra tem um link adicional entre os nós nesses dois caminhos.
- Para a rede um, as funções de latência são $l_1(x) = x$ e $l_2(x) = 1$; para a rede dois, as funções de latência são $l_1(x) = x$, $l_2(x) = 1$, $l_3(x) = 0$ e $l_4(x) = x$.
Sem o Link Adicional
- O custo é 1.
Com o Link Adicional
- Todos os usuários tomarão o caminho $s \rightarrow v \rightarrow w \rightarrow t$, com custo 2.
Negociação Algorítmica e Execução de Ordens
Considerações para Colocação de Ordens
Impacto no Mercado
- Cada ordem tem uma dimensão. Ordens de tamanho agressivo são muitas vezes tóxicas.
Estrutura de Impacto no Mercado
-
Impacto Temporário
- Concessão de preço para negociar uma grande quantidade. Retorna rapidamente à medida que a imediatidade é satisfeita.
-
Impacto Permanente
- A informação revelada altera as expectativas futuras. O preço permanece alterado mesmo após a satisfação da imediatidade.
Execução Ótima
Objetivo da Execução Ótima
- Minimizar a função de custo:
$C(x) = TC(x) + PC(x) + OC(x)$
Onde,
- $TC(x)$ são os custos de impacto temporário da negociação
- $PC(x)$ são os custos de impacto permanente da negociação
- $OC(x)$ são os custos de oportunidade de não negociar
Estratégias de Execução
- Meta: Equilíbrio entre urgência e impacto no mercado
- Mais urgente $\implies$ maior impacto no mercado
- Ordens Passivas
- Ordens limitadas longe do toque
- Evita o impacto no mercado
- Risco de não execução
- Ordens Agressivas
- Ordens de mercado, ou ordens limitadas comercializáveis
- Alcança imediatidade
- Incorre impacto no mercado
Seleção de Estratégia de Execução
- Determine a urgência: Quanto tempo você pode esperar?
- Determine o risco: Quão certo você está de que quer negociar?
- Risco de inventário?
- Especifique o Tipo de Ordem
- Ordem de Mercado
- Ordem Limitada
- Ordem Limitada Comercializável
- Ordem Discricionária
Roteamento Inteligente de Ordens
Roteador Inteligente de Ordens (SOR)
- Algoritmo que automaticamente roteia a ordem para a bolsa ideal.
- Considerações:
- Preço
- Liquidez
- Taxas
- Seleção Adversa
- Probabilidade de Preenchimento
Dark Pools
- Local que não exibe ordens ao público.
- As negociações são relatadas pós-execução.
- Projetado para instituições negociarem grandes blocos de ações, anonimamente.
- Melhoria de Preço
- Impacto Mínimo no Mercado
- Risco de vazamento de informações
Déficit de Implementação
Déficit de Implementação (IS)
- Diferença entre a carteira de papel e o retorno real da carteira.
- Mede o custo total da estratégia de negociação.
$IS = \text{Custo de Atraso} + \text{Custo de Negociação} + \text{Custo de Oportunidade}$
Custo de Atraso
- Custo de atrasar o início da negociação.
- Diferença entre o valor da carteira de papel quando a ordem foi criada, e o valor da carteira de papel quando a ordem foi iniciada.
- Positivo se o preço se mover a seu favor após a criação, mas antes do início.
Custo de Negociação
- Custo de executar a negociação.
- Preço médio ponderado por volume (VWAP) vs preço de chegada.
- Captura o impacto no mercado e as comissões.
Custo de Oportunidade
- Custo de não concluir a negociação.
- Diferença entre o número de ações não executadas multiplicado pela diferença entre o preço de fechamento e o preço médio de execução.
Exemplo
Cenário
- O trader decide comprar 1.000.000 de ações da XYZ.
- As ações estão atualmente sendo negociadas a $50,00.
- O trader divide a ordem em 100 ordens de 10.000 ações, e executa ao longo do dia.
- VWAP = $50,10
- Preço de fim de dia = $50,50
- Comissão = $0,01 por ação
$\text{Custo de Atraso} = 0$
$\text{Custo de Negociação} = 1.000.000 \cdot (50,10 - 50,00) + 1.000.000 \cdot 0,01 = $110.000$
$\text{Custo de Oportunidade} = 0$
$IS = 0 + 110.000 + 0 = $110.000$
Diagrama do Sistema de Negociação Algorítmica
- A imagem mostra um diagrama de um sistema de negociação algorítmica.
- Dados de mercado fornecem dados de mercado em tempo real.
- A lógica da estratégia implementa a estratégia de negociação.
- O sistema de gestão de encomendas gere as encomendas.
- EXECUÇÃO EXECUTA as encomendas.
- monitora e gere o risco.
- A geração do sistema de relatórios.
- O diagrama também mostra o fluxo de dados entre esses componentes.
Análise de Fluxo de Dados
Introdução
- A otimização baseada em SSA anteriormente discutida será finalizada e então a análise de fluxo de dados será iniciada.
- Consulte as seções 2.3 e 9.1-9.2 de Cooper & Torczon.
SSA e Memória
- Transformar o código original em forma SSA necessita consideração cuidadosa, usando memory SSA para distinguir diferentes valores de *p1 ao longo do tempo.
Memory SSA
- A memória é tratada como um grande objeto.
- Cada armazenamento gera uma nova versão da memória.
- Funções PHI são usadas para mesclar versões.
- Cada campo de cada objeto é considerado alterado em cada armazenamento, tornando a análise imprecisa.
- Permite algumas otimizações de memória de forma segura.
Análise de Fluxo de Dados
- Otimizações importantes requerem determinar o que é verdadeiro em vários pontos do programa, incluindo eliminação de subexpressões comuns, eliminação de código morto, dobragem constante.
- A análise de fluxo de dados é uma técnica para coletar informações sobre "globalização" através de blocos básicos em um programa.
Visão Conceitual
- Tenta-se conhecer as propriedades do estado do programa em cada ponto, como quais variáveis contêm valores constantes, propagando informações para frente através do programa.
Fluxo de Dados Direto
- As informações fluem para frente através da execução de declarações em ordem.
- O ponto do programa é o local entre as declarações, mantendo as informações em cada ponto.
Complicação 1: Ramificações
- Combinar informações de diferentes caminhos exige o uso de um operador de encontro.
Operador de Encontro
- Na análise de vida, se x está ativo em ALGUM caminho, está ativo no ponto de encontro usando a união dos caminhos.
- A escolha do operador de encontro depende da análise.
Complicação 2: Loops
- A iteração continua até a convergência, com uma aproximação conservadora inicial.
Terminologia
- A função de transferência descreve como uma instrução afeta as informações de fluxo de dados.
- O operador de encontro combina informações de diferentes caminhos.
- O gráfico de fluxo de controle é um gráfico de blocos básicos.
- Um bloco básico é uma sequência de declarações que são sempre executadas em ordem.
- Um problema de fluxo de dados consiste em:
- Conjunto de pontos de programa.
- Informações de fluxo de dados associadas a cada ponto.
- Funções de transferência.
- Operador de encontro.
- Direção do fluxo (para frente ou para trás).
Expressões Disponíveis
- Uma expressão x + y está "disponível" no ponto do programa p se cada caminho da entrada para p avalia x + y, e após a última avaliação de x + y em cada caminho, não há atribuições para x ou y.
- Expressões disponíveis são calculadas usando análise de fluxo de dados para eliminação de subexpressão comum (CSE).
- Se x + y está disponível em p, e p calcula x + y, então o cálculo em p pode ser substituído por uma referência ao cálculo anterior.
- O domínio das expressões disponíveis é conjuntos de expressões.
- A direção é para frente com um operador de encontro de intersecção ( $\bigcap$ ) porque uma expressão está disponível em um ponto apenas se estiver disponível em TODOS os caminhos que levam a esse ponto.
- A função de transferência envolve expressões geradas e eliminadas.
$\qquad AVAILOUT(S) = (AVAILIN(S) - e_kill(S)) U e_gen(S)$
- Inicialização:
- AVAILIN(entry) = $\emptyset$
- Para todos os outros blocos B, AVAILIN(B) = conjunto de todas as expressões (aka "universo" ou "top")
Calculando Expressões Disponíveis
- Calcular expressões disponíveis envolve inicializar conjuntos AVAILIN e AVAILOUT para cada bloco, calcular AVAILOUT(B) de AVAILIN(B) usando funções de transferência, calcular AVAILIN(B) de AVAILOUT(B') de predecessores B' usando operador de encontro e repetir até a convergência.
Prática
- Exemplo de código mostra como e_gen e e_kill são determinados para cada bloco na análise de fluxo de dados.:
Resultado
- Apesar de corrigir o processo, o resultado pode não ser muito útil porque e_gen e e_kill são muito grosseiros.
Refinando a Análise
- Quebrar cada bloco básico em declar
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.