08.02.2015 Views

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

notas de aula - Jerônimo C. Pellegrini<br />

O procedimento particao-aleat modifica o vetor de forma que os elementos à<br />

esquerda da posição i sejam menores ou iguais ao elemento em i e a todos os elementos à<br />

sua direita (i é escolhido aleatoreamente).<br />

def: quicksort ()<br />

mensagens:<br />

SORT: (vec start end cliente)<br />

OK: (vec id)<br />

<strong>com</strong>andos:<br />

casos para msg<br />

SORT:<br />

se start < end então<br />

send [ SORT vec start (q − 1) self ] to A<br />

send [ SORT vec (q + 1) end self ] to B<br />

senão<br />

send [ OK vec self ] to cliente<br />

OK:<br />

se id ∈ {A, B} então<br />

terminadas ← terminadas +1<br />

se terminadas = 2 então<br />

send [ OK vec self ] to cliente<br />

Esta versão do Quicksort passa uma referência para o vetor vec entre os agentes, e não<br />

uma cópia. Na última linha, fica claro que a primeira mensagem tratada pelo ator deve<br />

ser SORT:, de outra forma o último send não terá destinatário (a variável cliente não terá<br />

vínculo).<br />

13.2.2.4 Programação genética<br />

Um sistema de programação genética pode ser implementado usando troca de mensagens:<br />

quando um indivíduo da população, um processo é criado. Este processo pode sofrer<br />

mutação e realizar cross-over <strong>com</strong> outros através de mensagens. Quando há diversos hosts<br />

disponíveis, uma quantidade de processos pode ser enviada para cada host; a seleção<br />

Versão Preliminar<br />

dos melhores indivíduos e o cross-over pode ser feita localmente em cada host ou entre<br />

indivídios em hosts diferentes, possivelmente dando prioridade a indivíduos locais.<br />

296<br />

[ 27 de outubro de 2010 at 15:47 ]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!