Informática para Ciências e Engenharias (B)...

110
Informática para Ciências e Engenharias (B) 2015/16 Teórica 7

Transcript of Informática para Ciências e Engenharias (B)...

Informática para Ciências e Engenharias (B)

2015/16

Teórica 7

Na aula de hoje

l  Introdução às redes de computadores e à Internet: •  Redes de computadores e seus protocolos •  Obtenção de dados da Internet usando o MATLAB/Octave.

l  Métodos de Monte Carlo •  Revisão:

•  for, if, matrizes, gráficos

Redes de Computadores

Redes de computadores

Redes de Computadores

l  Um conjunto de computadores pode ser interligado com o objectivo de trocar informação e partilhar recursos, transferindo dados entre si. •  Exemplo: pesquisa no Google

•  Enviam-se os termos a pesquisar, •  Usam-se os recursos do motor de pesquisa, e •  Obtem-se de volta o resultado.

Redes de Computadores

l  Numa transferência intervêm dois computadores e a rede. •  Nó emissor:

•  produz uma sequência de bytes (mensagem) •  Nó receptor:

•  recebe essa sequência de bytes •  A rede, a infraestrutura que inclui

•  Meios de interligação: •  cabos, atmosfera, … •  Computadores dedicados a encaminhar a mensagem

do nó emissor ao nó receptor.

Redes de Computadores

l  Em muitos casos, a relação é assimétrica

Programa Cliente

Programa Servidor

Pedido (request)

Resposta (response)

Nota: Um servidor pode servir vários clientes em simultâneo. Por exemplo,

Browser

Por exemplo, Servidor Web

Redes de Computadores

l  O servidor gere um recurso e fornece um serviço aos clientes manipulando esse recurso.

l  Um servidor Web pode gerir recursos com dados ou programas que executa por conta dos clientes.

l  Um Servidor FTP ou de email funciona de forma análoga.

3. Servidor Envia a resposta

Recurso

2. Servidor processa o pedido

4. Cliente processa a resposta

1.  Cliente: envia pedido

Programa Cliente

Programa Servidor

Redes de Computadores

l  Exemplo 1.  O browser pede uma página de um blog 2.  O servidor do blog recebe o pedido, obtém o conteúdo da

base de dados •  Texto, comentários, imagens, etc

3.  O servidor envia essa informação, devidamente estruturada

4.  O browser processa a informação e apresenta a página.

Redes de Computadores

l  Nos nós terminais •  Placa ethernet

•  sinais por cabo •  Placa Wi-Fi

•  sinais por ondas rádio

l  Rede local •  LAN, Local Area Network •  ~1km;

•  os computadores estão ligados directamente.

Redes de Computadores

l  LAN •  Cobre um edifício, ou

edifícios próximos

l  WAN •  Wide Area Network •  Liga redes locais

l  Encaminhador •  Router, gateway •  máquina dedicada que liga redes diferentes

•  e.g. LAN a WAN

Redes de Computadores

l  Exemplo: •  Duas LAN ligadas por 3 encaminhadores (routers).

• Router

• Router

• Nó • Nó

• Nó

• Ethernet ou WiFI

• Nó • Nó

• Nó

• Ethernet ou WiFi

• Ligação via satélite

• Router • Ligação fibra óptica

Protocolos Internet

l  Poder enviar sinais não basta. •  É preciso saber

•  Remetente e destinatário •  Controlar o tráfego •  Como interpretar o conteúdo, etc.

l  Ou seja, são necessários protocolos

Protocolos Internet

l  Nível físico •  Sinais entre os nós da rede •  Modulação e conversão

•  Fibra óptica, telefone, cabo, ethernet, ...

Protocolos Internet

l  Nível físico

l  Nível da ligação •  Transmissão de conjuntos de bits entre nós da rede

•  Correcção de erros, gestão de filas de espera, ...

Protocolos Internet

l  Nível físico

l  Nível da ligação

l  Nível IP (Internet Protocol) •  Gere os pacotes de bytes, endereçamento e

reencaminhamento •  A informação é dividida em pacotes (sequências de

bytes), encaminhados individualmente ao destino. •  Cada máquina tem um endereço e cada pacote tem o

endereço do destinatário

Protocolos Internet

l  Internet Protocol (IP) •  o protocolo IP (versão 4) especifica um endereço único com

32 bits para cada máquina •  (128 bits no IPv6)

•  mas permite redes privadas •  e.g. em cada casa o router doméstico cria uma rede

com os endereços 192.168.0.(0 – 255), e o ISP fornece um outro endereço para toda essa rede.

Protocolos Internet

l  Nível físico

l  Nível da ligação

l  Nível IP (Internet Protocol)

l  Nível de transporte (TCP). •  Gere o transporte de dados, encarregando-se

•  da gestão de pacotes, •  detecção e recuperação de erros, etc.

Protocolos Internet

l  Nível físico

l  Nível da ligação

l  Nível IP (Internet Protocol)

l  Nível de transporte (TCP).

l  Nível da aplicação •  Protocolos destinados a gerir a comunicação entre

aplicações ou com o utilizador •  e.g. HTTP, DNS, ...

Protocolos Internet

Protocolos Internet

l  Normalmente não vemos endereços IP

l  Usamos endereços simbólicos •  Strings associadas aos endereços IP

•  e.g. www.google.com •  O DNS (Domain Name System) é um sistema hierárquico

de servidores que mapeia os endereços simbólicos em endereços IP.

Protocolos Internet

l  Top Level Domains

Top Level Domain Utilização

biz Negócios

com Comercial (EUA) edu Educação (EUA) info Informação

gov Governo (EUA) mil Militar (EUA) net Rede

org Sem fins lucrativos

Protocolos Internet

l  Fora dos Estados o TLD é o código (com 2 letras) do país.

País TLD

pt Portugal

uk Reino Unido

es Espanha

fr França

nz Nova Zelândia

cn China

… …

Protocolos Internet

Top Level Domains

• Domínio raiz

• … • … • edu • gov • com • uk • pt

• cmu

• cs

• google • ibm • utl • unl

• fe • fct

• di

Protocolos Internet

l  Endereços simbólicos, exemplo •  nslookup (no command prompt ou consola)

~$ nslookup fct.unl.pt ... Name: fct.unl.pt Address: 193.136.126.43

Protocolos Internet

asc.di.fct.unl.pt

Top level domain (TLD)

Organização Nome da máquina

~$ nslookup asc.di.fct.unl.pt ... asc.di.fct.unl.pt canonical name = di78.di.fct.unl.pt. Name: di78.di.fct.unl.pt Address: 193.136.122.78

Protocolos Internet

l  Exemplo: •  Em Março 2015 vários ISP bloquearam o acesso ao site

thepiratebay.se por ordem judicial. •  Fizeram-no configurando os seus servidores DNS para não

resolver este nome em endereço IP •  Mas o “bloqueio” pode ser facilmente contornado usando

outro servidor DNS, e.g. •  Google: 8.8.8.8, •  Open DNS: 208.67.222.222

Internet

l  Reenvio de pacotes •  O remetente envia cada pacote ao router na sua rede. •  Cada router reenvia os pacotes ao router que (estima) está

mais próximo do destinatário •  Pelo endereço IP e tempos de transmissão •  Este processo é dinâmico, permitindo gerir o tráfego e

contornar falhas pontuais na rede. •  Eventualmente, o pacote chega a um router que o envia ao

destinatário

Internet

l  Desta forma, a rede de redes pode crescer

Programas Servidores

l  Nos servidores há programas que esperam por pedidos (programas servidores) •  São executados em background, sem interacção directa

com utilizadores (deamons) •  Aguardam pedidos dirigidos a portas específicas

•  Uma porta é um endereço dentro da própria máquina •  Exemplos

•  Servidor Web (porta 80) •  Servidor File Transfer Protocol (FTP, portas 20 e 21)

Programas Servidores

l  Exemplos: •  Servidor Web (porta 80)

•  Recursos: ficheiros, programas, páginas dinâmicas •  Serviços: obter ficheiros e executar programas CGI a

pedido do cliente. •  Servidor FTP (portas 20 e 21)

•  Recursos: ficheiros •  Serviços: leitura e escrita de ficheiros

•  Servidor de Mail (porta 25, SMTP) •  Recursos: ficheiro spool de email. •  Serviços: armazena as mensagens no ficheiro spool

Programas Clientes

l  Exemplos: •  Browser, ftp, ssh,... •  Encontra o programa servidor

•  Pelo endereço da máquina onde o programa servidor está a ser executado

•  Pela porta associada ao protocolo e serviço •  Por exemplo,

•  o browser contacta a máquina com aquele endereço IP na porta 80 para o protocolo HTTP.

World Wide Web

World Wide Web

World Wide Web

l  1989 •  Tim Berners-Lee (no CERN) escreve uma proposta para

desenvolver um sistema distribuído de hiper-texto. •  Ligar uma “web of notes with links” para ajudar os

físicos do CERN a partilhar informação em grandes projectos.

l  1990 •  Tim B-L escreve um browser com interface gráfica.

World Wide Web

l  A Web (teia) •  Documentos interligados e sofware para consultar e

manipular essa informação.

l  Protocolos da Web •  Protocolos de aplicação que gerem a partilha da

informação.

l  Página Web •  Documento com dados e, normalmente, ligações (link) a

outros documentos.

l  Link (elo) •  Ligação entre duas páginas Web.

World Wide Web

l  Site Web •  Conjunto de páginas Web relacionadas e, geralmente,

armazenadas na mesma máquina.

l  Servidor Web - servidor •  Programa, na máquina que aloja a informação, que

responde a pedidos de acesso às páginas Web.

l  Browser Web - cliente •  Ferramenta que pede páginas Web e as mostra. •  Indica a localização desse recurso ao servidor: URL

World Wide Web

l  A Web não é a Internet •  a Internet inclui muito mais do que a Web •  a Web existe sobre a Internet

l  Três elementos centrais da Web são •  URL - Uniform Resource Locator

•  ou endereço Web •  HTML - Hypertext MarkupLanguage

•  linguagem das páginas Web •  HTTP - Hypertext Transfer Protocol

•  Protocolo de ligação

URL - Uniform Resource Locator

l  Forma normalizada de especificar a localização de um recurso na Web. •  Protocolo (pode ser omitido); •  Nome da máquina; •  Recurso (e.g. um ficheiro no servidor).

http://asc.di.fct.unl.pt/~pm/index.html • Protocolo • Máquina

• Endereço IP:x.x.x.x • Nome DNS

• Ficheiro • /home/pm/public-html/index.html

HTML

l  Hypertext Markup Language (HTML) •  Linguagem usada para criar páginas Web. •  é uma markup language porque usa marcas (tags) para

anotar a informação.

l  Tags (marcas) •  Especificam a interpretação do conteúdo •  A forma concreta como a informação é mostrada no ecrã é

decidida pelo browser.

HTML

HTML

l Código Fonte

HTML

HTML

l Representação pelo Browser

l Apresentação no ecrã

HTML

l  Marcas (tags) •  Colocadas entre os símbolos < e > •  A marca final distingue-se da inicial pela </..>

l  Elementos •  Os elementos da página são definidos por uma marca

inicial e final envolvendo o conteúdo. •  e.g. <TITLE>Título</TITLE>

•  Ou podem ser vazios: <BR>

HTML

l  Exemplos •  <P> ... </P> especifica um parágrafo separado. •  <BR> indica uma mudança de linha. •  <CENTER> ... </CENTER> centra o conteúdo. •  <I> … </I> conteúdo em itálico. •  <B> … </B> conteúdo em negrito (bold). •  <HR> insere um separador horizontal a toda a largura da

página (mudança de contexto).

HTML

l  Exemplos •  <P> ... </P> especifica um parágrafo separado. •  <UL> … </UL> define uma lista de itens. •  <LI>…</LI> define um item. •  <H1> … </H1> Formatação do texto no estilo H1 –relevo

máximo (dimensão das letras …). •  … •  <H8> … </H8> Formatação do texto no estilo H8 – relevo

mínimo.

HTML

l  Nota: •  No standard HTML5 a ênfase é na semântica e não no

aspecto visual. •  Várias tags foram delegadas para folhas de estilo (e.g.

CENTER) ou têm significado diferente (e.g. HR)

HTML

l  A tag pode ter também atributos •  informação adicional acerca do elemento.

•  nome-do-atributo="valor"

l  Exemplo •  Imagem:

•  <IMG SRC="imagem.gif">

HTML

l  Links (hiper-ligação) •  Tag A (âncora) •  Usa o atributo HREF

l  Exemplo •  <A HREF = "http://ssdi.di.fct.unl.pt/ice/b/praticas.html">

página das práticas de ICE-B</A>

Protocolo HTTP

• Browser • Servidor

•  GET /index.html HTTP/1.1 •  Linhas com informação sobre o pedido e o browser •  Linha em branco •  Mais linhas opcionais

• 200 OK HTTP/1.1 • Linhas com informação sobre a resposta e o servidor • Linha em branco • Mais linhas opcionais • <html> • … • </html>

Pedidos e respostas são codificados em blocos de texto

Pedido

Resposta

WWW

l  Exemplo •  Utilizador especifica URL, •  o browser pede o recurso ao servidor, •  este envia os dados com o texto, imagens, etc.

Conteúdo Estático

l  O conteúdo pode ser dinâmico •  Quando é pedido um recurso dinâmico, o servidor executa

um programa que o gera no momento. •  Por exemplo,

•  páginas de um blog, Facebook, etc

Conteúdo Dinâmico

l  O conteúdo pode ser estático •  é enviado um ficheiro que existe no servidor •  Exemplos: ficheiros HTML, imagens, audio clips.

•  URLs para conteúdos estáticos: •  http://www.cs.cmu.edu:80/index.html •  http://www.cs.cmu.edu/index.html •  http://www.cs.cmu.edu

•  Identificam o ficheiro index.html gerido pelo servidor em www.cs.cmu.edu à escuta na porta 80.

MATLAB e WWW

Usar recursos remotos em MATLAB

MATLAB e WWW

l  O MATLAB (e Octave) inclui funções para aceder a recursos pelo URL

[conteudo, sucesso] = urlread( url )

l  A função urlread acede ao URL url e retorna: •  na string conteudo o conteúdo obtido; •  no booleano sucesso

•  o valor true (1), se a operação teve sucesso, e •  o valor false (0), se a operação não teve sucesso.

MATLAB e WWW

l  O MATLAB (e Octave) inclui funções para aceder a recursos pelo URL

[nComp,sucesso]=urlwrite(url,nomeFich)

l  A função urlwrite acede ao URL url, grava o conteúdo no ficheiro nomeFich e retorna: •  na string nComp o nome completo do ficheiro local,

incluíndo o caminho; •  no booleano sucesso

•  o valor true (1), se a operação teve sucesso, e •  o valor false (0), se a operação não teve sucesso.

Exemplo : Pauta

Exemplo : Pauta

Exemplo : Pauta

l  Exemplo: •  Calcular notas dos alunos de ICE •  Criar uma pauta •  As notas dos trabalhos e testes estão num servidor:

http://ctp.di.fct.unl.pt/~mm/ice/teoricas/notasAC.txt

50123 12.5 14.1 16.4 9.9; 50224 8.1 10.3 5.5 8.2; 51001 7.7 4.4 15.1 12.0

Exemplo : Pauta

l  Compreender o problema •  Caracterizar:

•  Entrada: URL •  Saída: pauta com as avaliações

•  Tarefas •  Obter os dados remotos (urlread) e converter numa

matriz (já vamos ver como...) •  Calcular a pauta

•  Nota: Já resolvemos este problema na aula 4

Exemplo : Pauta

l  Assinaturas das funções •  Ler as notas

•  function notas = lenotas(url)

•  Da aula 4 •  function pauta = calculapauta(notas)

•  function nota = calculanota(notas)

•  function res = arredonda(valor,casasDec)

•  Juntar tudo •  function pauta = calculapautaurl(url)

Exemplo : Pauta

l  Converter string em números: •  str2num

octave:11> a=str2num(s) a = 123 octave:12> a+1 ans = 124 octave:13> mStr='1,2,3;4,5,6;7,8,9' mStr = 1,2,3;4,5,6;7,8,9 octave:14> m=str2num(mStr) m = 1 2 3 4 5 6 7 8 9

octave:9> s='123' s = 123 octave:10> s+1 ans = 50 51 52

Exemplo : Pauta

l  Os dados do servidor são fáceis de converter •  Basta usar a função str2num

50123 12.5 14.1 16.4 9.9; 50224 8.1 10.3 5.5 8.2; 51001 7.7 4.4 15.1 12.0; ...

Exemplo : Pauta

Exemplo : Pauta

l  Testar a função lenotas:

> url='http://ctp.di.fct.unl.pt/~mm/ice/teoricas/notasA.txt'

> ns = lenotas(url)

ns = [](0x0 •  Falhou a leitura do URL dado:

•  o ficheiro tem o nome errado

Exemplo : Pauta

l  Testar a função lenotas:

> url='http://ctp.di.fct.unl.pt/~mm/ice/teoricas/notasAC.txt'

> ns = lenotas(url)

ns = 50123 12.5 14.1 16.4 9.9 50224 8.1 10.3 5.5 8.2 51001 7.7 4.4 15.1 12.0

50123 12.5 14.1 16.4 9.9; 50224 8.1 10.3 5.5 8.2; 51001 7.7 4.4 15.1 12.0; ...

Exemplo : Pauta

Exemplo : Pauta

l  Testar a função calculapautaurl:

> url='http://ctp.di.fct.unl.pt/~mm/ice/teoricas/notasAC.txt'

> pauta=calculapautaurl(url) pauta = 50123 13 50224 7 51001 -1

Acesso Local

l  O URL pode ser usado para designar um ficheiro local •  Nesse caso o protocolo não será http mas sim file.

l  Por exemplo, guardando notasAC.txt na pasta de trabalho:

octave:11> url='file://notasAC.txt’;

octave:12> pauta = calculapautaurl(url)

pauta = 50123 13 50224 7 51001 -1

Métodos de Monte Carlo

Métodos de Monte Carlo

Métodos de Monte Carlo

l  Nome cunhado pelo matemático Nicholas Constantine Metropolis (1915-1999)

l  Conjunto de métodos baseados em números (pseudo) aleatórios.

Monte Carlo: Cálculo de π

Métodos de Monte Carlo: Cálculo de π

Cálculo de Áreas

l  Objectivo •  Estimar a área de uma função

(área debaixo da curva) •  Ideia:

•  Gerar pontos aleatoriamente num rectângulo que circunscreva a função

•  Estimar a área pela fracção dos pontos abaixo da curva

1

1

A

B

21)( xxf −=

Nota: Neste caso, pode-se estimar o valor de π (a área é π/4)

Cálculo de Áreas

l  Gerar pontos aleatoriamente •  Usar a função rand()

•  que gera uma dist r ibuição uniforme entre 0 e 1

•  Contar quantos pontos ficam abaixo da curva correspondente à função f

x = rand()

y = rand()

n = n + (y < f(x))

1

1

A

B

21)( xxf −=

Cálculo de Áreas

l  Em geral •  Gerar N pontos ao acaso numa região conhecida que inclua

a região de interesse •  Geração de números (pseudo) aleatórios •  contar quantos incidem na área de interesse •  a área de interesse será, aproximadamente, essa

fracção da área conhecida •  Funciona tanto melhor quanto maior for N e quanto maior

for a fracção na área de interesse.

Cálculo de π

l  Função estimapi •  recebe o número de pontos a gerar para a estimativa •  devolve

•  o valor estimado de π•  duas matrizes com os pontos (x,y) que cairam dentro e

fora da área de interesse, para o gráfico.

l  Assinatura da função: function [res, ptsDentro, ptsFora] = estimapi(N)

Cálculo de π

Ciclo principal para gerar e testar N pontos

Cálculo de π

Função rand simula números aleatórios (pseudo-aleatórios)

0 <= rand < 1 octave:46> rand ans = 0.30517 octave:47> rand ans = 0.73012 octave:48> rand ans = 0.76470 octave:49> rand ans = 0.083024

Cálculo de π

Um ponto gerado a cada iteração conta: •  dentro se a distância à

origem não ultrapassar a unidade,

•  fora se ultrapassar.

Incrementando as variáveis ixDentro e ixFora mantemos a contagem e o índice do ponto na matriz respectiva.

Cálculo de π

O resultado, a estimativa de π, é o quádruplo da área estimada pela proporção de pontos dentro. É preciso também redimensionar as matrizes dos pontos de acordo com o número efectivo de pontos (N linhas era o máximo possível, para evitar redimensionar as matrizes muitas vezes durante o ciclo).

Cálculo de π (estimado)

l  Script de testes

Cálculo de π (estimado)

l  N=100

Cálculo de π (estimado)

l  N=500

Cálculo de π (estimado)

l  N=5000

Cálculo de π (estimado)

l  N=25000

Cálculo de π (estimado)

l  Mais pontos, mais rigor

Monte Carlo: Risco de Incêndio

Métodos de Monte Carlo: Risco de Incêndio

Monte Carlo: Risco de Incêndio

l  Incêndio •  Simulação aleatória

•  Cada simulação dá um resultado diferente

l  Método de Monte Carlo: •  Fazer muitas

simulações •  Tirar estatísticas.

Risco de Incêndio

l  Simulação de incêndio (aula 6) •  Assinaturas das funções já implementadas

function novoEstado=propaga(estado, ... mapa,probPropagar,efeitoDeclive)

function estado=extingue(estado,probApagar)

function incendio(mapa,focoInicial, probPropagar, ... probApagar,efeitoDeclive,iteracoes)

Risco de Incêndio

l  Objectivo •  Obter um mapa com as probabilidades do incêndio chegar

a cada ponto em certo tempo •  O tempo é o número de iterações •  As probabilidades são estimadas pelo número de vezes

que o incêndio chega lá.

Risco de Incêndio

l  Algoritmo •  Para um certo número N de iterações:

•  Correr várias vezes a simulação •  Em cada vez, marcar onde o incêndio chegou •  Contar quantas vezes chegou a cada sítio

Risco de Incêndio

l  Como implementar •  Correr várias vezes a simulação

•  Criar uma função, com um ciclo for •  A cada vez, marcar onde o incêndio chegou

•  Precisamos do resultado da simulação do incêndio •  Contar quantas vezes chegou a cada sítio

•  Na função que corre várias vezes a simulação, criar uma matriz e ir contando a cada simulação.

Risco de Incêndio

l  Assinaturas: •  As funções propaga e extingue são as da aula 6, sem

modificação: function novoEstado=propaga(estado,mapa, ... probPropagar, efeitoDeclive)

function estado=extingue(estado,probApagar)

Risco de Incêndio

l  Assinaturas: •  Mas temos de alterar a função incendio ...

function incendio(mapa,focoInicial,probPropagar, ... probApagar,efeitoDeclive,iteracoes)

•  Apenas ligeiramente: precisamos que devolva o estado final da simulação, para saber onde chegou o fogo

function estado=incendio(mapa,focoInicial, ... probPropagar,probApagar,efeitoDeclive,iteracoes)

•  ... e não queremos que desenhe o gráfico, porque demora mais e é desnecessário

Risco de Incêndio

l  Assinaturas: •  Depois precisamos de uma função que calcule o perigo de

incêndio pela contagem, simulando vários incêndios •  Recebe os argumentos de que a simulação precisa, mais

o número de repetições

function contagens = perigo(mapa,focoInicial, ... probPropagar,probApagar,efeitoDeclive, ... iteracoes,repeticoes)

Risco de Incêndio: Implementação

l  Implementação: •  Modificar a função incêndio

•  Devolver o estado final •  Não desenhar os gráficos, porque vamos ter de a

executar muitas vezes

Risco de Incêndio: Implementação

l  Adaptação da função incêndio •  Devolve o estado

Risco de Incêndio: Implementação

l  Nova função: perigo •  para obter a contagem por cada ponto do mapa.

function contagens = perigo(mapa,focoInicial, ... probPropagar,probApagar,efeitoDeclive, ... iteracoes,repeticoes)

Risco de Incêndio: Implementação

Para cada repetição, corre-se a simulação de um incêndio, guardando-se o estado final.

Risco de Incêndio: Implementação

Depois, conta-se (soma-se 1) em cada localização que esteja a arder ou tenha ardido, numa matriz que começou a 0.

Risco de Incêndio: Implementação

Estas instruções servem apenas para seguirmos o progresso do cálculo, porque demora algum tempo.

O disp(f) escreve o valor de f na consola, e o comando fflush(stdout) obriga o interpretador a actualizar a consola imediatamente.

Risco de Incêndio: Testes

l  Testes •  Para correr a função perigo e ver o resultado precisamos

•  do mapa, •  da matriz de propagação, e de •  criar o gráfico.

•  Para a testar podemos •  criar um script de testes, ou •  fazer outra função.

•  Para testes um script é normalmente mais prático.

Risco de Incêndio: Testes

Risco de Incêndio: Testes

Risco de Incêndio: Extras

l  Truques úteis mas opcionais: •  fflush(stdout) para mostrar informação na consola durante a

execução •  more off para não interromper quando há mais do que um

ecrã de informação •  print('nome.jpg') para gravar imagens •  Scripts de testes

•  Mas exigimos que testem as funções!

Risco de Incêndio: Demo

l  Aplicação: •  Cada hora de incêndio são 10 iterações •  Queremos incêndios de 1 a 15 horas, com 100 repetições

para cada simulação. •  Corremos o programa com vários valores para o número de

iterações da simulação. •  podia ser mais eficiente se fossemos guardando os

resultados intermédios durante a simulação, mas isso exigiria alterações mais profundas.

Risco de Incêndio: Testes

Risco de Incêndio: Demo

l  Aplicação: •  Incêndios de 1 a 15 horas de duração •  100 repetições de cada simulação. •  Com e sem vento

l  Isto demora várias horas a calcular •  Mas vamos gravando as imagens e vemos o resultado no final

•  sem_vento01.jpg, …, com_vento15.jpg

Risco de Incêndio: Demo

l  1 a 15 horas simuladas •  Sem vento •  Com vento

Risco de Incêndio: Demo

l  1 hora simulada •  10 iterações)

Risco de Incêndio: Demo

l  5 horas simulada •  50 iterações

Risco de Incêndio: Demo

l  15 horas simulada •  150 iterações

Métodos de Monte Carlo

l  Resumindo: •  Usa-se um algoritmo não determinista (aleatório) para simular

o objecto de estudo •  Amostram-se o espaço de possibilidades •  Calculam-se estatísticas dessa amostra

Dúvidas?