|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectbr.uerj.petrinetanalyzer.engine.ImplSimulator
public class ImplSimulator
Implementa a engine do funcionamento da simulação.
| Field Summary | |
|---|---|
private int[] |
arrMarking
Array de marcações de Lugar. |
private boolean[] |
arrTransFire
Array informando se a transição está ou não habilitada para disparo. |
private ImplPetriNetBase |
pn
Rede de Petri a ser simulada. |
| Fields inherited from interface br.uerj.petrinetanalyzer.common.interfaces.IntfEngineConstants |
|---|
ERROR_CODE, STATE_DUPLICADO, STATE_FRONTEIRA, STATE_INTERIOR, STATE_TERMINAL, TOKEN_INFINITO |
| Constructor Summary | |
|---|---|
ImplSimulator(ImplPetriNetBase pn)
Construtor que recebe como parâmetro a Rede de Petri a ser simulada |
|
| Method Summary | |
|---|---|
void |
disparaTransicao(int posicao)
Dispara transição indicada pela posição. |
int[] |
getMarcacoes()
Retorna array com as marcações dos lugares, após o disparo de uma transição |
boolean[] |
getTransicoesDisponiveis()
Uma transição está habilitada se, todos os Lugares de Entrada da Transição possuirem fichas maior ou igual ao peso do arco, que liga até a transição. |
void |
setState(int[] arrMarking,
boolean[] arrTransFire)
Seta o estado da simulação para algum específico. |
boolean |
temTransicaoDisponivel()
Verifica se existe alguma transição disponível para ser disparada. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private ImplPetriNetBase pn
private int[] arrMarking
private boolean[] arrTransFire
| Constructor Detail |
|---|
public ImplSimulator(ImplPetriNetBase pn)
pn - Rede de Petri.| Method Detail |
|---|
public boolean[] getTransicoesDisponiveis()
Algoritmo:
Para toda Transicao Faça
Transição.habilitada = true
Fim Para;
Para todo Arco de entrada
Se Arco.Lugar.fichas >= arco.peso E Arco.transicao.habilitada = true Então
Arco.transicao está habilitada.
Senão
Arco.transicao está desabilitada.
Fim Se;
Fim Para;
getTransicoesDisponiveis in interface IntfSimulatorpublic int[] getMarcacoes()
getMarcacoes in interface IntfSimulatorpublic void disparaTransicao(int posicao)
Algoritmo:
Para todo Lugar de Entrada da Transição Faça
Lugar.fichas = Lugar.fichas - peso;
Fim Para;
Para todo Lugar de Saída da Transição Faça
Lugar.fichas = Lugar.fichas + peso;
Fim Para;
disparaTransicao in interface IntfSimulatorposicao - public boolean temTransicaoDisponivel()
temTransicaoDisponivel in interface IntfSimulator
public void setState(int[] arrMarking,
boolean[] arrTransFire)
arrMarking - Array de Marcações dos Lugares no estado desejado.arrTransFire - Array informando se a Transição está ou não disponível no estado desejado.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||