Implementação de Simulador de Redes de Petri (Petri Nets)

As Redes de Petri são ferramentas usadas para modelar sistemas concorrentes com restrições de paralelismo.

Existem muitas implementações disponíveis na rede. Um site interessante onde existem muitos links de indicação de ferramentas e documentação sobre as Redes de Petri é o http://www.informatik.uni-hamburg.de/TGI/PetriNets/

O trabalho a ser feito corresponde a definição (ou escolha) de uma linguagem de descrição das Redes de Petri e a escrita de uma máquina de simulação dessas redes.

O simulador das redes deverá possibilitar a expansão do mesmo com novos tipos de transições/lugares, de maneira a possibilitar a inclusão futura de novos modelos.

A linguagem de programação do simulador deverá ser o JAVA e não deverá usar módulos escritos em outras linguagens (tais como o C, por exemplo), de forma a garantir a portabilidade do mesmo para qualquer sistema.

Um bom exemplo de simulador é o Visual Object Net++ - Programa!. Entretanto, apesar de uma interface amigável, apresenta alguns problemas de implementação. Pode-se citar o problema da qualiade do gerador de números aleatórios e a falta de fidelidade da determinação dos instantes em que uma transição é disparada (o simulador possibilita o disparo, simultâneo, de duas transições).

Finalmente, é desejável que o simulador (ou um framework onde o simulador seja um componente) possibilite obter-se informações outras além da simulação em si. Por exemplo, poderia fornecer informações sobre a árvore de alcançabilidade e sobre invariantes.

Outras funcionalidade a serem consideradas: