• Nenhum resultado encontrado

Implementação de algoritmo com número de iterações fixo

CAPÍTULO 5 IMPLEMENTAÇÃO E TESTES DA LINGUAGEM XPWSL NA

5.4 T ESTES E RESULTADOS

5.4.1 Implementação de algoritmo com número de iterações fixo

Entre as aplicações implementadas e testadas, encontra-se uma que utiliza um pacote em Java para algoritmos genéticos [GAJ05]. Esta aplicação considera uma população de cromossomos e um conjunto de operadores genéticos que define a probabilidade de cada um ser escolhido entre os demais. A partir dessa população é iniciado um processo iterativo de atribuição de um grau de fitness e a geração de uma nova população. Este programa exercitou com sucesso as estruturas de repetição com um número fixo de iterações e a estrutura seqüencial. Sua especificação em JoiN usando PASL torna-se inviável à medida que aumenta o número de iterações desejadas, pois passa a exigir um número muito elevado de lotes de tarefas em seqüência. Usando XPWSL, a especificação da aplicação é praticamente a mesma para qualquer número desejado de iterações. A seguir são apresentados os detalhes da implementação desta aplicação, bem como toda a sua especificação de fluxo usando XPWSL.

<?xml version="1.0"?> <pas xmlns="http://www.dca.fee.unicamp.br/projects/join" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dca.fee.unicamp.br/projects/join PAS.xsd"> <header> <name>GAGS new</name>

<description>Genetic Algorithm program</description> </header>

<task id="init" delay="100">

<path>br.unicamp.fee.dca.join.applications.Gags</path> <code>InitPopul.class</code>

</task>

<task id="eval" delay="800">

<path>br.unicamp.fee.dca.join.applications.Gags</path> <code>Eval.class</code>

</task>

<task id="result" delay="100">

<path>br.unicamp.fee.dca.join.applications.Gags</path> <code>Results.class</code>

</task>

<task id="aux1" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags</path> <code>Gags_constants.class</code>

</task>

<task id="aux2" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.gajit</path> <code>Chrom.class</code>

</task>

<task id="aux3" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.gajit</path> <code>ChromItem.class</code>

</task>

<task id="aux4" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.gajit</path> <code>FixView.class</code>

</task>

<task id="aux5" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.gajit</path> <code>View.class</code>

</task>

<task id="aux6" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.gajit</path> <code>DupOp.class</code>

</task>

<task id="aux7" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.gajit</path> <code>Population.class</code>

</task>

<task id="aux8" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.util</path> <code>ListIterator.class</code>

</task>

<task id="aux9" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.util</path> <code>ExtendedBitSet.class</code>

</task>

<task id="aux10" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.util</path> <code>RandomInt.class</code>

</task>

<task id="aux11" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.util</path> <code>SimpleList.class</code>

</task>

<path>br.unicamp.fee.dca.join.applications.Gags.util</path> <code>SortedList.class</code>

</task>

<task id="aux13" delay="0">

<path>br.unicamp.fee.dca.join.applications.Gags.util</path> <code>Comparable.class</code> </task> </assignment> <datalink>

<block type="loop" max_iter="500" > <batch id="B0"> <task_id>init</task_id> <multi> 1 </multi> <input></input> </batch> <batch id= "B1"> <task_id>eval</task_id> <multi>1</multi> <input>B0</input> </batch> </block> <block type="sequence"> <batch id="B2"> <task_id>result</task_id> <multi> 1 </multi> <input></input> </batch> </block> </datalink> </pas>

Apesar da seção datalink especificar apenas o relacionamento entre os lotes de tarefa B1, B2 e B3, todas as classes auxiliares utilizadas por suas tarefas devem ser especificadas na seção assignment.

Documentos relacionados