Modelagem de Sistemas Computacionais usando Redes de Petri: aplicação em projeto, análise e avaliação

Tamanho: px
Começar a partir da página:

Download "Modelagem de Sistemas Computacionais usando Redes de Petri: aplicação em projeto, análise e avaliação"

Transcrição

1 Modelagem de Sistemas Computacionais usando Redes de Petri: aplicação em projeto, análise e avaliação Dulcinéia Oliveira da Penha 1, Henrique Cota de Freitas 2, Carlos Augusto Paiva da Silva Martins 3 2,3 Instituto de Informática, 1,3 Programa de Pós-graduação em Engenharia Elétrica 1,2,3 Laboratório de Sistemas Digitais e Computacionais Pontifícia Universidade Católica de Minas Gerais Rua Dom José Gaspar Belo Horizonte MG Brasil 1 dulcineia@pucmg.br,( 2 cota, 3 capsm}@pucminas.br Abstract. In this tutorial we present the concepts and essential characteristics of the Ordinary Petri Nets, its algebraic and graphical representations, definitions and properties. Moreover, we present some high level Petri Nets, as the Coloured Petri Nets and the Stochastic Petri Nets. Later, we present the modeling of trivial problems using Petri Nets, methods and tools of validation and verification of Petri Nets and the application of Petri Nets in problems related with computational systems modeling. Finally, we present and we analyze the main advantages, disadvantages and challenges of the application of Petri Nets in the computational systems modeling. Resumo. Neste minicurso apresentamos os conceitos e características essenciais das Redes de Petri Ordinárias, suas representações algébricas e gráficas, definições e propriedades Além disso, apresentamos algumas Redes de Petri de alto nível, como as Redes de Petri Coloridas e as Redes de Petri Estocásticas. Posteriormente, apresentamos a modelagem de problemas triviais usando redes de Petri, métodos e ferramentas de validação e verificação de Redes de Petri e a aplicação de Redes de Petri em problemas relacionados com a modelagem de sistemas computacionais. Finalmente, apresentamos e analisamos as principais vantagens, desvantagens e desafios da aplicação de Redes de Petri na modelagem de sistemas computacionais. 1. Introdução Em 1962, o então aluno de doutorado Carl Adam Petri defendeu sua tese intitulada Kommunikation mit Automaten (Communication with Automata) [Petri 1962]. Seu objetivo era desenvolver um modelo em que as máquinas de estado fossem capazes de se comunicar. A característica principal alcançada por este modelo foi a possibilidade de representar a concorrência. Este modelo recebeu o nome de Redes de Petri em homenagem ao próprio autor e hoje podemos encontrar variações do modelo original sendo usados em diversas áreas da ciência para ajudar no estudo do comportamento e desempenho de diferentes sistemas. Podemos encontrar as Redes de Petri (RdP) [Girault 2002] [Desel 2000] [Maciel 1996] [Murata 1989] [Peterson 1981] [Peterson 1977]

2 sendo utilizadas em áreas como economia, biologia, engenharia, computação, entre outras. As variações de RdP tais como Redes de Petri Coloridas, Temporizadas ou Estocásticas são modelos importantes e que não fazem parte da teoria original. No entanto, são representações que ganharam relevância por serem capazes de modelar sistemas de forma mais simplificada ou intuitiva ou simplesmente porque ainda não havia um modelo capaz de representar sistemas que envolviam temporizações ou comportamentos probabilísticos (estocásticos). Antes de apresentar os conceitos e elementos que compõem a Rede de Petri é importante responder uma pergunta: Por que precisamos modelar um sistema computacional [Jain 1991]? Torna-se mais fácil o entendimento do funcionamento ou comportamento de um sistema computacional existente? O projeto do sistema computacional pode ser verificado e validado através de um modelo antes da construção de um protótipo? A avaliação do funcionamento, comportamento e por conseqüência do seu desempenho em relação a um histórico de projeto ou em relação a outros modelos de sistema existentes, também em fase de projeto é facilitada? É possível definir métricas de desempenho através do modelo? São várias as respostas para justificar a modelagem de um sistema computacional. Podemos afirmar que o uso de um modelo facilita e justifica o prosseguimento de novas etapas de projeto e análise antes da etapa final de avaliação. Entre estas etapas podemos citar uma diretamente dependente da existência física do sistema e que muitas vezes só deve ser realizada após uma fase anterior de validação, antes do protótipo ser construído: Medição: A medição depende da existência física do sistema ou protótipo do sistema. Você implementaria seu sistema antes de verificá-lo através de um modelo? É como programar sem projetar o algoritmo! Imagine que o sistema a ser medido (uma coleta de dados para avaliação de resultados) é um aglomerado (cluster) de computadores [Buyya 1999] [Almasi 1994]. Qual o custo financeiro para montar este cluster? Este cluster foi modelado anteriormente? Existe uma verificação/validação anterior à montagem do protótipo (cluster de servidores)? Existem alguns modelos analíticos e de simulação [Bressan 2002] [Jain 19991] para validação de um projeto. As Redes de Petri fazem parte destes dois modelos. Podemos representar uma Rede de Petri através de descrições matemáticas e gráficas. Podemos também simular uma Rede de Petri através de ferramentas específicas de simulação [Drath 2004]. Existe um repositório de informações e simuladores de Redes de Petri que pode ser encontrado através da seguinte referência: [Petri Nets 2004]. O principal objetivo deste minicurso é apresentar conceitos, difundir conhecimentos e apresentar métodos e ferramentas para verificação/validação relativos a aplicação e modelagem de Redes de Petri em sistemas computacionais de forma simples e direta. Alguns modelos do nosso dia-a-dia são utilizados para facilitar o

3 estudo do processo de modelagem em suas etapas principais. Pretendemos difundir as RdP como uma alternativa e um forte modelo de ajuda no processo de avaliação do comportamento e do desempenho de um sistema computacional. 2. Redes de Petri O principal objetivo deste tópico é apresentar as principais características das Redes de Petri. Existem conceitos que não serão apresentados, mas que serão facilmente encontrados nas referências citadas ao longo do texto. No entanto, procuramos sintetizar um grande volume de informações importantes e necessárias para o processo de modelagem de sistemas computacionais enquanto fase de projeto, análise ou avaliação Conceitos Básicos Por que as Redes de Petri se tornaram um importante modelo para representar diferentes sistemas? Uma Rede de Petri possui um conjunto de elementos capaz de descrever as diversas partes de um sistema que estamos habituados a tratar em Ciência da Computação [Hennessy 2003] [Tanenbaum 2003a, 2003b] [Buyya 1999] [Almasi 1994] [Jain 1991], tais como: concorrência, controle, conflitos, sincronização e compartilhamento, por exemplo. Portanto, para tratar concorrência, controle, conflitos, sincronização e compartilhamento não seria importante um modelo para representar a ocorrência destas características em um sistema? Uma Rede de Petri é composta pelos seguintes elementos: Lugares ou Places: representam uma condição, uma atividade ou um recurso. Fichas, Marcas ou Tokens: representam o estado de um sistema. Transições: representam um evento. Arcos: indicam os lugares de entrada ou saída para as transições. Estes elementos podem ser representados graficamente como na figura 1: Figura 1. Elementos de uma Rede de Petri Portanto, ainda sem considerarmos a existência dos tokens, podemos definir uma Rede de Petri como R = (P, T, AE, AS) onde: P = {P 1, P 2,..., P m } é um conjunto de places. T = {T 1, T 2,, T n } é um conjunto de transições. P T = os conjuntos P e T são disjuntos. AE: P x T é o conjunto de arcos de entrada nas transições.

4 AS: T x P é o conjunto de arcos de saída das transições. Para a figura 1 temos: P = {Place 1, Place 2} T = {Transição} AE = {Place 1, Transição} AS = {Transição, Place 2} Qual a influência dos tokens em uma Rede de Petri? Quando modelamos um sistema através de Redes de Petri procuramos representar os estados antes e depois de cada evento neste sistema. O elemento responsável por indicar qual o estado de uma Rede de Petri é um token (marca). Portanto, é de se esperar que uma Rede de Petri possua uma marcação inicial [Girault 2002] [Bressan 2002] [Murata 1989], que pode ser descrita através da seguinte notação, tomando como exemplo a figura 1: M = (1, 0) Sendo que o primeiro campo representa a quantidade de tokens no Place 1 e o segundo campo a quantidade de tokens no Place 2. A marcação inicial faz parte do projeto do modelo, uma falha na definição da marcação inicial pode resultar em um modelo inconsistente ou com falhas de execução. Além da marca (token) presente dentro de um place, possuímos um peso associado a cada arco. Este peso é muito importante e muitas vezes é necessário durante o projeto do modelo. A figura 2 ilustra uma outra Rede de Petri com pesos associados aos arcos. Figura 2. Rede de Petri com peso nos arcos A figura 2 ilustra os pesos associados a cada arco, no entanto podemos perceber que para esta figura (2a e 2b) existem dois momentos / estados distintos, um estado em que os places P1 e P2 possuem tokens e outro que somente o place P3 possui um ou dois tokens. Portanto, podemos considerar que existem duas marcações: uma inicial e outra final.

5 Marcação inicial para a figura 2a: M = (1, 1, 0) Marcação final para a figura 2a: M = (0, 0, 2) Marcação inicial para a figura 2b: M = (1, 1, 0) Marcação final para a figura 2b: M = (0, 0, 1) Com base na figura 2, podemos responder duas perguntas: O que ocasionou o segundo estado da Rede de Petri ou a marcação final? Por que a marcação final da figura 2a é diferente da figura 2b? A resposta da primeira pergunta é a seguinte: A função de uma transição é representar um evento, ou seja, a transição é responsável por modificar a marcação de uma Rede de Petri, portanto, modificar o estado de uma Rede de Petri. Esta ocorrência só é válida quando existem tokens nos places de entrada de uma transição. Sendo assim, se eu quiser modificar o estado ou a marcação de uma Rede de Petri, basta disparar as transições existentes. Na figura 2a e 2b, a transição T1 foi disparada e neste momento os tokens dos places de entrada P1 e P2 foram responsáveis por habilitar este disparo. Como resultado de um disparo, os tokens dos places de entrada são retirados e novos tokens são colocados nos places de saída. A diferença na quantidade de tokens da marcação de saída entre as figuras 2a e 2b é baseada nos pesos dos arcos. Portanto, o peso no terceiro arco responde a segunda pergunta. Na figura 2a o peso do terceiro arco é 2 e por este motivo chegam ao place P3 dois tokens. Na figura 2b o peso do terceiro arco é 1. Este peso impõe um limite e somente um token é colocado no place P3 após o disparo da transição. Porém, existem situações que podem impedir o disparo de uma transição. As figuras 3 e 4 ilustram esta situação. Figura 3. Situação 1 para não ocorrência de um disparo Por que a transição T1 não pode ser disparada? Para o disparo de uma transição deve haver tokens em todos os places de entrada. Na figura 3 o place P2 não possui tokens e por este motivo a transição T1 não pode ser disparada. Figura 4. Situação 2 para não ocorrência de um disparo Para a Rede de Petri da figura 4 o problema está associado aos pesos dos arcos de entrada da transição T1. Os pesos dos arcos de entrada da transição indicam quantos

6 tokens são necessários para o disparo da transição. No caso da figura 4 são necessários 3 tokens em dois places. Como podemos ver, nesta figura os places possuem apenas 1 token cada um, seria necessário que o place P2 tivesse dois tokens, porque é exatamente este place que possui um arco com peso 2 até a transição T1. Portanto, permanecendo desta forma, esta rede nunca mudará seu estado ou marcação inicial. Se esta Rede de Petri fosse o modelo que representasse um determinado sistema, haveria um erro de modelagem. Conforme já descrevemos a marcação inicial é muito importante e pode influenciar na execução do modelo. Uma vez que já abordamos os conceitos relativos à marcação e ao peso de um arco, podemos apresentar uma definição mais completa das Redes de Petri: R = {P, T, A, PA, M 0 ) onde: P = {P 1, P 2,..., P m } é o conjunto de places. T = {T 1, T 2,, T n } é o conjunto de transições. P T = P T os conjuntos P e T são disjuntos e não vazios. A: (P x T) (T x P) é o conjunto dos arcos. PA: A N são os pesos dos arcos. M 0 : P N 0 é a marcação inicial. Em uma RdP existe uma situação chamada de conflito [Girault 2002] [Maciel 1996] [Murata 1989], encontrada quando modelamos atividades concorrentes. Para esta situação damos o nome de Confusion. Muitas vezes, para representar a concorrência ou atividades conflitantes, conforme será visto no tópico 5, é necessário modelar situações chamadas de Confusion. Um exemplo de conflito está ilustrado na figura 5. A situação apresentada na figura 5 é muito simples. Existem duas transições que para estarem habilitadas precisam de 1 token em cada uma de suas entradas. O problema é que o place de entrada é único, P1 está compartilhado entre as duas transições e possui apenas um token e não dois como seria necessário. Nos resta fazer a seguinte pergunta: Qual transição será disparada, T1 ou T2? Esta escolha será aleatória já que não existe nenhuma prioridade de uma transição em relação à outra.no entanto, se atribuíssemos funções a cada uma das transições, poderíamos ter uma situação típica de if e else. Figura 5. Exemplo de uma RdP com conflito Podemos descrever uma Rede de Petri através de uma notação matricial e também por uma árvore de alcançabilidade. Estes dois conceitos são mostrados nos tópicos 2.2 e 2.3.

7 2.2. Notação Matricial A notação matricial [Bressan 2002] é uma das formas de representar uma Rede de Petri. Como exemplo vamos analisar a rede da figura 6. Figura 6. Uma Rede de Petri exemplo para notação matricial A notação matricial pode ser feita usando três tipos de matrizes, sendo elas as seguintes: Matriz de entrada (E): E TxP representa a quantidade de arcos de entrada em cada transição. Matriz de saída (S): S TxP representa a quantidade de arcos de saída em cada transição. Matriz de Incidência (I): I TxP = S TxP E TxP As matrizes referentes à figura 6 estão ilustradas através da figura 7. Figura 7. Notação matricial para o exemplo da figura 6 Através da notação matricial é possível modelar uma Rede de Petri graficamente, podemos extrair a quantidade de places, transições e arcos. No entanto, somente estes elementos não são suficientes para um modelo completo. Como já vimos, ainda faltam os tokens e os pesos. Os tokens são solucionados através da marcação inicial. Portanto, é necessário informar M 0. Qual é a marcação inicial da figura 6? Resposta: M 0 = (1, 1, 0, 0) Quais são os pesos de cada arco?

8 Resposta: A principio cada arco possui peso igual a 1. No entanto, para responder será feito outra pergunta: Qual a diferença entre as RdP da figura 8? Figura 8. RdP exemplo para descoberta do peso na notação matricial As duas RdP são iguais. A diferença está apenas na representação gráfica. A matriz de saída terá a linha T1 mudada para (figura 9): Figura 9. Mudança da linha T1 da notação matricial de saída da figura 7 Ou seja, para a figura 8b os pesos são sempre 1 em cada arco, para a figura 8a o peso é representado com se fossem dois arcos de saída da transição T Árvore de Alcançabilidade Quantos estados ou marcações são possíveis extrair de uma Rede de Petri? Que tipo de notação pode ser utilizado para representar cada uma destas marcações? Uma árvore de alcançabilidade [Bressan 2002] [Murata 1989] é capaz de responder estas duas perguntas. Através de uma árvore com raiz igual à marcação inicial é possível representar todas as marcações alcançáveis. É importante ressaltar que o conjunto de alcançabilidade pode ser finito, no entanto, é comum encontrarmos situações onde as marcações alcançadas não nos levam a um estado inicial, ou à marcação inicial, a raiz de nossa árvore. Portanto, o conjunto de alcançabilidade só é finito se em algum momento uma determinada marcação nos levar novamente à marcação inicial. A RdP da figura 10 é um exemplo de conjunto finito de marcações. A árvore de alcançabilidade desta rede está ilustrada na figura 11. O estado inicial é representado pela marcação M 0 (2, 0, 0, 0), e portanto, esta é a nossa raiz. Durante a construção da árvore deve ser observado quais são as transições habilitadas para disparo para criação de cada nó (nova marcação).

9 Figura 10. Rede de Petri exemplo para árvore de alcançabilidade A situação da figura 11 é a seguinte: Após a definição da raiz, devemos observar quais transições estão habilitadas. Somente a transição T1 está habilitada e a marcação resultante é M 1 (0, 1, 0, 0). O place P2 não recebeu dois tokens porque o arco de saída de T1 tem peso 1. A próxima transição habilitada é T4 resultando em uma marcação M 2 (0, 0, 1, 1). Neste momento possuímos duas marcações habilitadas, T2 e T3 resultando em um nível com dois nós (marcações M 3 e M 4 ). Se dispararmos T2 a marcação resultante será M 3 (1, 0, 0, 1). Se dispararmos T3 a marcação resultante será M 4 (1, 0, 1, 0). No momento em que RdP chega ao estado M 3 ou M 4 passamos a ter dois places com tokens (M 3 : P1 e P4 ou M 4 : P1 e P3), porém, a transição T1 não ficará habilitada enquanto o place P1 não tiver dois tokens. Esta situação só vai acontecer quanto houver o disparo de T3 ou T4 resultando novamente no estado inicial M 0. Figura 11. Árvore de alcançabilidade da RdP da figura 10

10 Esta RdP possui um conjunto de alcançabilidade finito com cinco marcações (M 0, M 1, M 2, M 3, M 4 ) Variações das Redes de Petri Desde o trabalho original de Carl Adam Petri têm surgido muitas e diversas variantes ao seu modelo de redes de Petri. Pode-se afirmar que a maior parte destas variantes nasceu da necessidade de adaptação das RdP Ordinárias (ou de baixo-nível estudadas até agora) à especificidade da aplicação para as quais a sua utilização era desejada. O modelo original das Redes de Petri falha na representação de duas importantes características: aspectos funcionais complexos, tais como, condições que determinam o fluxo de controle, e os aspectos de temporização. Para enfrentar estas duas limitações duas classes de extensões as RdP foram desenvolvidas: as RdP de alto-nível e as RdP temporizadas. Estas extensões serão apresentadas nos tópicos a seguir. No tópico das redes de alto nível, enfatizamos as Redes de Petri Coloridas, já que formam a categoria mais representativa e mais usada das Redes de Petri de alto nível Redes de Petri Temporizadas Até o momento estudamos RdP com transições que disparam a desde que os places de entrada possuam tokens suficientes para a ocorrência do disparo. No entanto, pode ser necessário associar ao disparo um retardo. Sendo assim, para cada transição atribuímos um valor de tempo. Esta RdP é chamada de Rede de Petri Temporizada Determinística. Existe uma outra RdP Temporizada Probabilística (Estocástica), que será estudada no tópico Portanto, em relação as RdP Temporizadas [Bressan 2002] [Murata 1989] podemos extrair os seguintes significados: Tempo de aquisição de um recurso. Tempo de utilização de um recurso. Tempo em que não necessita de um recurso. Vejamos o seguinte exemplo da figura 12: A transição T1 temporizada em 1 segundo. A transição T2 temporizada em 5 segundos. As transições T3 e T4 não estão temporizadas. Figura 12. Exemplo de RdP temporizada

11 Para este exemplo podemos extrair as seguintes observações: A transição T1 está temporizada para disparar em 1s, sempre que existir um token em sua entrada (token no place P2). A transição T2 está temporizada para disparar em 5s, sempre que existir um token em sua entrada (token no place P2). Durante os 4 primeiros segundos a transição T1 estará habilitada. No quinto segundo as transições T1 e T2 estarão habilitadas e haverá um conflito de disparo. A principal vantagem de uma RdP temporizada é a relação de tempo, que antes não havia. No entanto, trabalhar com uma RdP temporizada significa poder alterar a definição de estado da rede. A relação de tempo altera os estados/marcações alcançáveis. Por este motivo, é muito importante saber utilizar o tempo na RdP para que seu projeto ou modelo não entre por exemplo em um deadlock Redes de Petri Estocásticas e Redes de Petri Estocásticas Generalizadas Redes de Petri Temporizadas Determinísticas são vantajosas para modelagem de sistemas onde a relação de tempo é constante ou determinística, já que associam a cada transição um retardo (ou duração) fixo entre o tempo em que ela está habilitada e o tempo de disparo. No entanto, redes temporizadas determinísticas não são suficientes para modelar sistemas estocásticos, que possuem taxas aleatórias. Sistemas de produção onde o tempo de funcionamento real entre 2 paradas de uma máquina é aleatório são um exemplo destes sistemas. Outro exemplo são sistemas computacionais com taxas aleatórias de geração de processos. Para estes casos as Redes de Petri Ordinárias foram estendidas para modelarem sistemas estocásticos. As Redes de Petri Estocásticas [Haas 2002] [Bressan 2002] associam uma distribuição exponencial ao tempo de disparo de cada transição habilitada da rede. Dessa forma, a rede passa a ser probabilística, sendo descrita por um processo estocástico. Formalmente, uma Rede de Petri Estocástica é definida por: RdP-E = {P, T, A, PA, M 0, D} onde: P (conjunto de places), T (conjunto de transições), A (conjunto de arcos), PA (pesos dos arcos) e M 0 (marcação inicial) são definidos exatamente como nas Redes de Petri Ordinárias descritas anteriormente. D: conjunto das taxas de disparo associadas às transições que obedecem a uma distribuição exponencial. Tais taxas de disparo podem ter o seu valor dependente da marcação. A dependência da taxa de disparo da transição j sobre uma marcação M é denotada por D j (M). Em muitos sistemas, não é necessário associarem-se tempos a todos os eventos, e conseqüentemente a todas as transições da Rede de Petri Estocástica. As Redes de Petri Estocásticas generalizadas (RdP-EG) incluem transições que não gastam tempo para disparar, particionando as transições em dois conjuntos: transições imediatas e transições temporizadas.

12 Transições imediatas, uma vez habilitadas, disparam em tempo zero. Transições temporizadas disparam com tempos aleatórios, descritos por distribuições exponenciais. Nas RdP-EG as taxas de disparo estão associadas somente às transições temporizadas. A definição formal da RdP-EG é semelhante à das Redes de Petri Estocásticas, diferenciando somente no conjunto D das taxas de disparo, que nas RdP-EG são associados somente às transições temporizadas, e não mais a todas as transições como na RdP Estocásticas. Uma RdP Estocástica é isomórfica a uma Cadeia de Markov (CM) [Haas 2002] [Norris 1998] [Bolch 1998] finita e de tempo contínuo, na qual as marcações são os estados da cadeia e as taxas de transição de estado da cadeia são retiradas das médias de tempo de disparo das transições da rede. Portanto, a marcação M(t) da RdP Estocástica é um processo markoviano homogêneo. O conjunto de alcance da Rede de Petri Estocástica é o mesmo de sua correspondente ordinária (Rede de Petri que resulta ao se retirarem os tempos associados às transições), o que facilita a sua análise Redes de Petri Coloridas O principal objetivo das Redes de Petri Coloridas (RdP-C) [Girault 2002] [Maciel 1996] é a redução do tamanho do modelo, permitindo que tokens individualizados (coloridos) representem diferentes processos ou recursos em uma mesma sub-rede. Inicialmente, os tokens das RdP Coloridas eram representados por cores ou mesmo por padrões que possibilitam a distinção dos tokens. Em trabalhos mais recentes, os tokens são representados por estruturas de dados complexas não relacionando cores aos tokens, a não ser pelo fato de estes são distinguíveis. Deste modo, os tokens podem conter informações. Além disso, cada place armazena tokens de um certo tipo definido e arcos realizam operações sobre os tokens. As transições são consideradas expressões de guarda. Uma RdP-C é composta por três partes: estrutura, inscrições e declarações. A estrutura é um grafo direcionado, com dois tipos de nós (places e transições), com arcos interconectando nós de tipos diferentes. As inscrições são associadas aos places, transições e arcos. Cada place tem as seguintes inscrições: Nome (para identificação); Color Set (especificando os tipos de tokens que podem residir no place); Marcação inicial (multi-conjunto de tokens coloridos). Cada transição tem as seguintes inscrições: Nome (para identificação); Guarda (expressão booleana contendo algumas das variáveis). Cada arco tem as seguintes inscrições: Expressão do arco (contendo algumas das variáveis). As declarações são tipos, funções, operações e variáveis. Quando a expressão do arco é avaliada, ela gera um multi-conjunto de tokens coloridos. Expressões podem conter constantes, variáveis, funções e operações definidas nas declarações, e não produzem efeito colateral. Formalmente, uma Rede de Petri Colorida é definida por:

13 RdP-C = (R, Σ, C, G, E, I) onde: R = {P, T, A} exatamente como definidos nas Redes de Petri Ordinárias descritas anteriormente. Σ: conjunto de tipos não-vazios chamados cores, C: função de cor definida por P cor, G: função de guarda definida por T exp, onde exp é uma expressão tal que: t i T Tipo(G(t)) = Boolean Tipo(Var(G(t))) Σ], E: função de expressões de arco definida por A expressões, tal que: a A Tipo (E(a)) = C Tipo(Var(E(a))) Σ], I: expressão de inicialização definida por P marcações 0 (p), tal que: p i P Tipo(I(p)) = C(p) Var(I(p)) =. Var(t) é o conjunto de variáveis associadas à transição t. Essas variáveis podem ser associadas às transições de duas maneiras: nas expressões de guarda (G(t), t T) e nas expressões dos arcos (E(a), a A) que interconectam lugares e transições Definição formal do comportamento: A distribuição de tokens é uma função M: P Σ e uma marcação de uma Rede de Petri Colorida é uma distribuição de tokens. A marcação inicial das redes coloridas é obtida através da avaliação da expressão de inicialização para cada place da rede, ou seja, M 0 (p) = I(p) <> p P. A distribuição de ligações é uma função Y: T B. Denomina-se elemento de Y o par (t, b), onde b é uma ligação tal que b Y (t). Variáveis são ligadas (binding) dinamicamente aos valores dos tokens nos places de entrada, durante a avaliação de cada transição. Cada possível ligação é avaliada, uma por vez, em ordem aleatória. Todas as ocorrências de uma variável devem ser ligadas a uma mesma cor. Variáveis associadas a diferentes transições são totalmente independentes. Um passo é um multi-conjunto de elementos ligados ou uma distribuição de ligações não-vazia. Um passo Y é habilitado em uma marcação M se a seguinte propriedade é satisfeita: p P: (t,b) Y E(p,t) <b> M(p), p P. Quando um passo Y é habilitado em uma marca M 1 ele pode ocorrer, mudando a marcação M 1 para outra marcação M 2, definida por: p P: M 2 (p) = (M 1 (p) (t,b) Y E(p,t)<b>) + (t,b) Y E(t,p)<b>, onde E(p,t) e E(t,p) correspondem às expressões dos arcos de entrada e saída da transição (em t) do passo, respectivamente.

14 Em outras palavras, um passo Y = (t, b) está habilitado quando o número de marcas de cores correspondente à ligação do passo é maior ou igual à avaliação da expressão do arco que interliga os lugares de entrada à transição t. A primeira soma é chamada de remoção de marcas (dos lugares de entrada) enquanto a segunda é chamada de adição de marcas (aos lugares de saída). Além disso, dizemos que M 2 é diretamente alcançável de M 1 pela ocorrência do passo Y, no qual denotamos: M 1 [Y > M 2. Uma seqüência de ocorrência é uma seqüência de marcações e passos: M 1 [ Y 1 > M 2 [ Y 2 > M 3... M n [ Y n > M n+1 tal que M i [ Y i > M i+1 para todo i 1...n é alcançável de M. A Figura 13 apresenta um exemplo simplificado de Rede de Petri Colorida [Maciel 1996], onde os tokens são identificados apenas por cores. Entretanto, os tokens podem ser estruturas mais complexas. Como podemos observar no exemplo da Figura 13, os arcos são rotulados com cores (a, b e c). Para que uma transição desta rede esteja habilitada, é necessário que os places de entradas desta transição tenham tokens do tipo (cor) associado ao arco que liga estes places à transição. A transição t 0 não está habilitada porque não há um token da cor a no place p 0. A transição t 1 está habilitada porque há um token da cor a no place p 1 e tokens das cores a e b no place p 2, satisfazendo as condições rotuladas nos arcos que saem destes places, ligando-os à transição t 1. O disparo desta transição retira os tokens de cores associadas aos arcos dos places de entrada e adiciona tokens da cor associada ao arco que liga a transição aos places de saída. Deste modo, um token de cor c é acrescentado ao place p 4. Figura 13. Exemplo de Rede de Petri Colorida [Maciel 1996] Análise das Redes de Petri Coloridas Análise de Alcançabilidade: Árvore de alcançabilidade:

15 Organiza todas as marcações alcançáveis, e todas as possíveis seqüências de disparo, em uma árvore, onde: Cada nó corresponde a uma marcação alcançável Cada arco corresponde a um disparo de uma (única) transição, para uma (única) cor, pela qual a marcação de origem é levada à marcação de destino. Em geral possui número muito grande (talvez infinito) de elementos. Redução da Árvore de Alcançabilidade: Árvores de alcançabilidade geralmente possuem classes de marcações equivalentes. Para cada classe de equivalência, somente a sub-árvore de um dos nós é desenvolvida, enquanto os demais tornam-se folhas da árvore. Marcações de cobertura: Seja P o conjunto dos lugares da rede, e sejam m 1 e m 2 duas marcações, tais que m 1 [ σ > m 2 : m 2 cobre m 1 se: p P, m 2 (p) M 1 (p) m 2 cobre estritamente m 1 se: m 2 cobre m 1, e m 1 m 2 Se m 2 cobre estritamente m 1, cada coeficiente que foi incrementado de m 1 para m 2 pode assumir um valor ilimitado e, portanto, é substituído pelo símbolo ω. Há perda de informação. Marcações duplicatas: Se há vários nós com marcações idênticas, apenas a árvore de um deles é desenvolvida, e os demais são marcados como duplicatas. Não há perda de informação. Marcações equivalentes: Generalização de duplicata, para Redes de Petri de Alto Nível: O projetista identifica relações de simetria entre cores nas marcações. Não há perda de informação Propriedades das Redes de Petri Neste tópico procuramos mostrar um breve sumário das propriedades [Maciel 1996] comportamentais e estruturais relacionadas às Redes de Petri.

16 Propriedades Comportamentais (influenciadas pela marcação) Alcançabilidade: Indica a possibilidade de alcançarmos um determinado conjunto de marcações após disparos de transições a partir de uma marcação inicial. Limitação: Uma RdP pode ser dita como k-limitada. Em uma RdP 3-limitada, nenhum dos places pode exceder o número de tokens definido por k, neste caso, três. Segurança: A propriedade de segurança é um complemento à propriedade limitação. Um place k-limitado é um place seguro. Se estivermos modelando uma porta lógica, a RdP dever ser 1-limitado. A RdP é segura se em todos os seus estados os places tiverem um ou nenhum token (1 ou 0 - binário). Vivacidade: Uma RdP livre de impasses (deadlocks). Neste caso não existe a ocorrência de uma transição que não possa ser disparada. Uma transição morta é uma transição que não pode mais ser disparada. Uma RdP morta se encontra em impasse total, ou seja, todas as transições estão mortas. Cobertura: Quando uma determinada marcação pode ser obtida através de uma outra marcação. Este é o problema cobertura de uma marcação. Persistência: Se para qualquer par de transições habilitadas, o disparo de uma delas não desabilita o disparo da outra. Reversibilidade: Quando existe o retorno à marcação inicial ou uma outra marcação qualquer. Justiça: Diz respeito à quantidade de disparos de uma transição em relação à outra Propriedades Estruturais (não influenciadas pela marcação) Limitação: Se a RdP é limitada estruturalmente para qualquer marcação inicial. Conservação: Independente dos disparos das transições existentes na RdP, o número de tokens não se altera (não há criação ou destruição). Repetitividade: Uma RdP é repetitiva se para uma determinada marcação e um conjunto de disparos de transições, houver o disparo ilimitado de todas as transições da RdP. Consistência: Uma RdP é consistente se for possível voltar ao estado inicial M 0 disparando pelo menos uma vez todas as transições da RdP. 3. Modelagem Usando Redes de Petri O objetivo deste tópico é apresentar as etapas necessárias para modelagem de problemas tipicamente triviais do nosso dia-a-dia. Para iniciar o processo de modelagem precisamos responder a seguinte pergunta: Você conhece o sistema que será modelado? Antes do processo de modelagem é necessário analisar o sistema objeto de estudo. Seria um erro dos mais inocentes acreditar em um pré-conhecimento sem o devido estudo e análise do sistema. Analisar um sistema significa entender o funcionamento de todas as partes que o compõem, e mais do isso, significa entender se

17 todo o sistema ou apenas uma parte deve ser modelado. O não conhecimento do sistema pode produzir um modelo que não reflete a realidade e, portanto, não verifica e não valida o sistema em análise. As etapas que iremos descrever constituem uma base para modelagem usando Redes de Petri, são elas: Definir uma lista de condições: estados, places de sua RdP. Definir uma lista de ações: transições de sua RdP. Criar matrizes de entrada e de saída para representar as relações entre transições e places. Representar graficamente uma RdP para cada transição. Unir todas as RdP por transição em uma RdP completa, que represente o sistema modelado. Definir a marcação inicial da RdP Modelar o comportamento de ligar e desligar uma lâmpada O seguinte sistema deve ser modelado: possuímos uma lâmpada e precisamos modelar seu comportamento de ligar e desligar usando Redes de Petri. Primeira etapa: Definir uma lista de condições (Tabela 1). Segunda etapa: Definir uma lista de ações (Tabela 1). Tabela 1. Lista de condições e ações para comportamento de uma lâmpada Lista de condições Lista de ações P1: Lâmpada desligada. T1: Ligar lâmpada. P2: Lâmpada ligada. T2: Desligar lâmpada Criar matrizes de entrada e saída para representar relações entre transições e places (Tabela 2 e Tabela 3). Tabela 2. Matriz de entrada Tabela 3. Matriz de saída P1 P2 T1 1 0 T2 0 1 P1 P2 T1 0 1 T2 1 0 Representar graficamente uma RdP para cada transição (figura 14). Figura 14. RdP para cada transição das tabelas 2 e 3 O modelo completo já como a marcação inicial está representado na figura 15. Marcação inicial: M 0 (1,0).

18 Figura 15. Modelo completo em RdP para o comportamento da lâmpada Antes de finalizar este exemplo, vamos fazer duas perguntas: Este modelo está completo? Ele reflete a realidade? Este modelo não está considerando o tempo de vida da lâmpada após os sucessivos ligar e desligar. Como podemos modelar, considerando mais este elemento do sistema? Vamos supor que em média as lâmpadas possam ser ligadas 4 vezes (apenas um exemplo) e depois elas queimam. Sendo assim, o novo place P3 representaria Tempo de vida (não estamos falando de transições temporizadas). O modelo ficaria da seguinte forma (figura 16): Figura 16. Modelo completo em RdP considerando também tempo de vida 3.2. Modelar um sistema de corrida de dois carros Um grupo de pilotos decidiu testar dois carros de corrida para saber qual era o mais rápido. Basicamente o sistema [Girault 2002] era composto por: Dois carros de corrida. Um fiscal de bandeirada para iniciar a corrida. Quando o fiscal recebe sinal dos dois carros (sinal de pronto), ele dá a bandeirada para iniciar a corrida. As listas de condições e ações são apresentadas através da tabela 4. Tabela 4. Lista de condições e ações para a corrida dos dois carros Lista de condições Lista de ações P1: Carro A preparando para iniciar. T1: Enviar sinal de pronto (carro A). P2: Carro A esperando para iniciar. T2: Iniciar corrida (carro A). P3: Carro A correndo. T3: Enviar sinal de início (fiscal). P4: Sinal de pronto do carro A. T4: Enviar sinal de pronto (carro B). P5: Sinal de início para carro A. T5: Iniciar corrida (carro B). P6: Fiscal esperando pelos sinais de pronto P7: Fiscal enviando sinal de início (bandeirada) P8: Sinal de pronto do carro B P9: Sinal de início para o carro B

19 P10: Carro B preparando para iniciar P11: Carro B esperando para iniciar P12: Carro B correndo As matrizes de entrada e saída que relacionam as condições e as ações estão ilustradas através das tabelas 5 e 6. Tabela 5. Matriz de entrada para a corrida dos dois carros P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 T T T T T Tabela 6. Matriz de saída para a corrida dos dois carros P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 T T T T T A figura 17 ilustra a representação gráfica da RdP por transição. Figura 17. RdP para cada transição das tabelas 5 e 6 O modelo completo da RdP com a marcação inicial M (1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0) está ilustrado na figura 18.

20 Figura 18. RdP completa para o sistema de corrida entre dois carros 3.3. Modelagem usando Redes de Petri Coloridas Quando um sistema é grande e complexo, a sua modelagem através de Redes de Petri Ordinárias vai gerar uma rede grande e complexa. Nestes casos, é indicado o uso de Redes de Petri Coloridas que permitem a redução do tamanho dos modelos. Primeiramente modelaremos um sistema de linha de manufatura usando Redes de Petri Ordinárias e em seguida, modelaremos o mesmo sistema usando Redes de Petri Coloridas Linha de Manufatura usando Redes de Petri Ordinárias O sistema a ser modelado é o de manufatura de dois produtos distintos através de duas linhas de manufatura, onde as máquinas são compartilhadas no processo de fabricação. Os produtos são fabricados através de dois processos distintos, P e Q. O processo P é dividido em seis estágios (p 1, p 2, p 3, p 4, p 5, p 6 ) e o processo Q é dividido em cinco estágios (q 1, q 2, q 3, q 4, q 5 ). Além disso, temos duas máquinas r e s, que são recursos compartilhados entre os processos. Portanto, o sistema é composto por: Seis estágios do processo P. Cinco estágios do processo Q. Duas máquinas compartilhadas entre os processos. As listas de estados e ações estão descritas na tabela 7. Tabela 7. Lista de estados e ações para a linha de manufatura Lista de condições Lista de ações P1: Executando estágio 0 do processo P. T1: Iniciar estágio 1 de P. P2: Executando estágio 1 do processo P. T2: Iniciar estágio 2 de P. P3: Executando estágio 2 do processo P. T3: Iniciar estágio 3 de P. P4: Executando estágio 3 do processo P. T4: Iniciar estágio 4 de P. P5: Executando estágio 4 do processo P. T5: Iniciar estágio 5 de P. P6: Executando estágio 5 do processo P. T6: Iniciar estágio 1 de Q.

21 P7: Executando estágio 0 do processo Q. T7: Iniciar estágio 2 de Q. P8: Executando estágio 1 do processo Q. T8: Iniciar estágio 3 de Q. P9: Executando estágio 2 do processo Q. T9: Iniciar estágio 4 de Q. P10: Executando estágio 3 do processo Q. T10: Reiniciar processo P. P11: Executando estágio 4 do processo Q. T11: Reiniciar processo Q. P12: Máquina r disponível P13: Máquina s disponível As matrizes de entrada e saída que relacionam as condições e as ações estão ilustradas através das tabelas 8 e 9. Tabela 8. Matriz de entrada para a linha de manufatura P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 T T T T T T T T T T T Tabela 9. Matriz de saída para a linha de manufatura P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 T T T T T T T T T T T A figura 19 ilustra a representação gráfica da RdP por transição.

22 Figura 19. RdP para cada transição das tabelas 8 e 9 O modelo completo da RdP com a marcação inicial M 0 (2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 1) está ilustrado na figura 20. Figura 20. Rede de Petri Ordinária para o sistema de manufatura Esta rede modela um sistema de manufatura com dois processos compartilhando duas máquinas. A adição de um novo processo compartilhando as mesmas máquinas exigiria que a rede modelasse todos os estágios desse novo processo, através de estados, ações e relações entre este processo e os dois já existentes, e entre este processo e os recursos disponíveis. Percebemos então que, aumentando o número de processos, a Rede de Petri que modela o sistema crescerá significativamente. Neste caso, é interessante usar Redes de Petri Coloridas, que reduziria significativamente o tamanho da rede e a tornaria escalável através da alteração apenas da marcação inicial e da função dos arcos. A estrutura continua a mesma Linha de Manufatura usando Redes de Petri Coloridas A figura 21 apresenta a RdP Colorida que modela o sistema de manufatura da figura 20. Na rede colorida, os estágios de produção de cada produto são unificados (s 0, s 1, s 2, s 3, s 4, s 5 ) e representados através de places comuns. Nesta rede, os tokens de cores (tipos)

23 distintas diferenciam os processos. Do mesmo modo, as máquinas (recursos) foram unificadas em um mesmo place e as cores (tipos) dos tokens distinguem a máquina. Figura 21. Rede de Petri Colorida para o sistema de manufatura [Maciel 1996] O conjunto de cores que representam os processos é da cor Proc*I, onde Proc = p q e I = INT. As cores associadas ao place recurso (máquinas) correspondem às máquinas disponíveis sendo rec = r s. As expressões de inicialização dos places nãomarcados são omitidas. As funções de inicialização dos places são: s 0 = 2 (p,0) s 1 = 1 (q,0) recurso = 2 r + 1 s Deste modo, o place s 0 possui dois tokes, onde a cor do processo é p e o zero corresponde ao número de iterações realizadas. As marcas inicialmente disponíveis no place recurso são dois tokens da cor r e um da cor s. Inicialmente, as transições t 0 e t 1 estão habilitadas. Para que transição s 1 seja disparada a variável x do arco que liga o place recurso a s 1 recebe um token da cor q, sendo associado ao arco o valor 2 r. O disparo de t 1 remove um token da cor (q,0) do place s 1 e dois tokens da cor 2 r do place recurso. 4. Métodos e Ferramentas de Validação e Verificação de Redes de Petri Conforme descrevemos na Introdução, existem modelos analíticos, de simulação e medição enquanto processo de projeto, análise e avaliação de um sistema computacional [Jain 1991]. Destes três, apenas o modelo de medição exige que o

24 sistema exista fisicamente. As Redes de Petri podem ser utilizadas como ferramentas de validação e verificação através dos modelos analíticos e de simulação conforme veremos a seguir: O modelo analítico para RdP pode ser dividido em três métodos de análise [Murata 1989]: Análise por enumeração: Este método está baseado no uso de árvores de alcançabilidade ou grafos de alcançabilidade. Conforme descrito no tópico 2.3, é construída uma árvore com raiz igual à marcação inicial da RdP e a partir do disparo de cada transição habilitada são encontradas as marcações (folhas) alcançáveis. O grafo de alcançabilidade pode ser modelado considerando os nós como as marcações, e as arestas como os disparos de transições. Análise por matriz de incidência e equação de estado: É possível descrever RdP através de equações algébricas. Neste material não abordamos equações algébricas, mas matrizes foram discutidas no tópico 2.2. Análise por redução ou decomposição (transformações): Em alguns casos é possível reduzir o tamanho de uma RdP para uma composição mais simples. Este método deve ser aplicado quando for possível manter as propriedades que se pretende analisar. Podemos dividir este método em seis partes ilustrado através da figura 22. a) Fusão de places em série. b) Fusão de transições em série. c) Fusão de transições em paralelo. d) Fusão de places em paralelo. e) Eliminação de places em loop. f) Eliminação de transições em loop. Figura 22. Método de análise por redução ou decomposição [Murata 1989] Outro modelo muito importante durante o uso das Redes de Petri é a simulação. Entre as vantagens da simulação podemos citar as seguintes: Efeitos das animações e gráficos ajudam no aprendizado e entendimento do sistema simulado.

25 Permite manter um maior controle sobre o experimento, o que muitas vezes não é possível no sistema real. Permite estudar o sistema durante o longo período de tempo simulado. Na URL [Petri Nets 2004] podemos encontrar uma lista completa de vários simuladores de Redes de Petri disponíveis comercialmente e gratuitamente. No tópico 4.1 descrevemos o simulador Visual Object Net ++, desenvolvido por um grupo de pesquisadores alemães Ferramenta de simulação Visual Object Net ++ É muito difícil encontrar uma ferramenta de simulação de Redes de Petri que suporte todas as variações encontradas sobre RdP. Algumas ferramentas se limitam a simular apenas RdP Ordinárias, outras apenas RdP Estocásticas e etc. O simulador Visual Object Net ++ (VisObjNet) é bastante simples e oferece uma interface fácil de usar. Suas características básicas são: Suporta Redes de Petri Temporizadas. Suporta elementos discretos e contínuos. Não suporta Redes de Petri Coloridas e Estocásticas. Análise simples de desempenho. Configuração de velocidade de simulação. Possui um editor gráfico. Animação de tokens. Este simulador foi desenvolvido para máquinas com sistema operacional Windows. Para instalar, basta descompactar o arquivo obtido através da homepage do simulador ( [Drath 2004]. É possível encontrar simuladores mais completos, porém costumam ser simuladores comerciais. Esta é uma boa lacuna para ser preenchida! Alguém se habilita a desenvolver um simulador de RdP Temporizadas, Coloridas e Estocásticas? Guia de utilização do VisObjNet O principal objetivo deste tópico é apresentar o VisObjNet [Drath 2004], algumas de suas interfaces e como simular uma Rede de Petri. Este simulador apresenta suporte a elementos discretos e contínuos. No entanto, não estaremos simulando uma RdP contínua. Algumas observações a respeito destes elementos: Transição contínua: Seu disparo pode estar associado a um valor constante ou a uma função Place contínuo: Possui tokens com valores reais. A figura 23 ilustra a interface principal o VisObjNet, dividida em 4 módulos:

26 Menu: funções associadas à gerencia de arquivos, tais como abrir e salvar, e botões de acesso rápido para representação gráfica das Redes de Petri. Properties: Módulo referente às propriedades de cada elemento da Rede de Petri. Neste módulo podemos alterar questões como quantidade de tokens em um place e peso de um arco, por exemplo. Factory: Possui um breve tutorial e opções rápidas para acessar ou deletar arquivos. Edição: Tela onde são construídas as Redes de Petri. Figura 23. Interface principal do VisObjNet As figuras 24 e 25 ilustram o módulo Properties. Marcando um elemento no módulo de edição, as propriedades deste aparecerão conforme ilustrado na figura 24. Se for necessário informações a respeito de todos os elementos da RdP, basta escolher uma das opções relativas a cada elemento, conforme ilustrado na figura 25. Através do módulo de propriedades podemos alterar os seguintes parâmetros para cada elemento: Places: Nome, variável (pode ser usada em funções), tipo (discreto ou contínuo), quantidade de tokens iniciais, visibilidade do rótulo e tamanho. Transições: Nome, atraso (temporização ou função no caso de elemento contínuo), tipo (discreto ou contínuo), cor, visibilidade do rótulo, tamanho, prioridade e Reservation.

27 Arcos: Peso, visibilidade do rótulo e tipo (normal, inhibitor e static test arc). Maiores informações sobre os tipos de arcos podem ser encontradas em [Maciel 1996]. Figura 24. Interface das propriedades dos places, transições e arcos Figura 25. Interface de informações relativas aos places, transições e arcos A figura 26 ilustra a opção para início de uma simulação. Entre os botões de acesso rápido que existem no primeiro módulo de interface, existe o botão Start. Este botão abre uma nova interface de botões para gerenciar a simulação. A função de cada botão é a seguinte: Step: Usando este botão, a RdP será simulada através de passos. Será sempre necessária a intervenção do usuário apertando este botão. Somente as transições habilitadas serão disparadas a cada passo. Run: A RdP será simulada sem prazo de tempo definido para parar. Enquanto houver uma transição habilitada para disparo a rede continuará sendo simulada. Run to event: É necessário um evento provocado pelo usuário. A inserção de um token em um determinado place provoca o início da simulação. Stop: Pára a simulação. Este botão não impede a continuação da simulação a partir do estado em que foi finalizada.

28 Figura 26. Simulando a execução de uma RdP (comportamento da lâmpada) A figura 27 ilustra o módulo de interface de opções. Neste módulo é possível encontrar campos de configuração (os dois últimos campos ainda não foram projetados) referentes aos seguintes itens: Representação: Tipo de grid. Simulação: Tempo de simulação para mudança de um estado (100ms é o padrão) e tipo de animação. Performance: Análise simplificada de desempenho. Figura 27. Interface de opções 5. Aplicação de Redes de Petri em Sistemas Computacionais Como apresentamos ao longo do texto, as Redes de Petri são um importante modelo para modelagem de sistemas, em particular de sistemas computacionais. O principal motivo disso são as propriedades inerentes às redes de Petri que facilitam a modelagem de características típicas dos problemas de computação como concorrência, controle, conflitos, sincronização, compartilhamento, entre outros. Neste tópico apresentaremos exemplos de modelagem de sistemas computacionais usando Redes de Petri Ordinárias, Coloridas e Estocásticas. Ao contrário dos exemplos apresentados no tópico 3, neste tópico não apresentaremos todas as fases de modelagem dos sistemas. Apresentaremos o modelo (Rede de Petri)

Redes de Petri. Marcação e seu comportamento dinâmico. Marcação

Redes de Petri. Marcação e seu comportamento dinâmico. Marcação Redes de Petri A rede de Petri, técnica de modelagem original de onde derivou mais tarde o SFC, foi introduzida em 962 por Carl Adam Petri. Consiste de uma ferramenta gráfica e matemática extremamente

Leia mais

Sumário. Redes de Petri (RdP) Petri Nets. Áreas de Aplicação. História. Armando Jorge Miranda de Sousa

Sumário. Redes de Petri (RdP) Petri Nets. Áreas de Aplicação. História. Armando Jorge Miranda de Sousa Redes de Petri (RdP) Petri Nets Armando Jorge Miranda de Sousa Sumário Apresentação: notação gráfica inc. marcação Concorrência, conflito e confusão Sincronização e recursos críticos Extensões de RdP Arcos,

Leia mais

Redes de Petri (RdP) Petri Nets

Redes de Petri (RdP) Petri Nets Sumário Redes de Petri (RdP) Petri Nets Armando Jorge Sousa Versão 11, 15 Dez 2005 Apresentação: notação gráfica inc. marcação Concorrência, conflito e confusão Sincronização e recursos críticos Extensões

Leia mais

Redes de Petri Coloridas (Coloured Petri Nets - CPN)

Redes de Petri Coloridas (Coloured Petri Nets - CPN) Redes de Petri Coloridas (Coloured Petri Nets - CPN) Prof. Eduardo Tavares Prof. Paulo Maciel Centro de Informática (UFPE) Disciplina: Modelos para Sistemas Comunicantes Abstração Foco naquilo que é essencial

Leia mais

DIM Autômatos & redes de Petri. Richard Bonichon. Richard Bonichon DIM / 55

DIM Autômatos & redes de Petri. Richard Bonichon. Richard Bonichon DIM / 55 DIM0436 7. Autômatos & redes de Petri Richard Bonichon 20140812 Richard Bonichon DIM0436 20140812 1 / 55 Sumário 1 Autômatos 2 Redes de Petri Richard Bonichon DIM0436 20140812 2 / 55 1 Autômatos 2 Redes

Leia mais

Controle de Processos por Computador

Controle de Processos por Computador Controle de Processos por Computador 1 CONTEÚDO PROGRAMÁTICO 1. Redes de Petri 2. Transdutores 3. Controladores Lógico Programáveis 4. Sistemas Digitais de Controle Distribuído BIBLIOGRAFIA Redes de Petri,

Leia mais

Redes de Petri. Prof. Juan Moises Mauricio Villanueva

Redes de Petri. Prof. Juan Moises Mauricio Villanueva Redes de Petri Prof. Juan Moises Mauricio Villanueva jmauricio@cear.ufpb.br Redes de Petri Publicado em 1962, por Carl Adam Petri Uma rede de Petri (RP) pode ser interpretada como um grafo direcionado

Leia mais

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma

Leia mais

Redes de Petri. 1 Introdução. José de Oliveira Guimarães DC-UFSCar

Redes de Petri. 1 Introdução. José de Oliveira Guimarães DC-UFSCar Redes de Petri José de Oliveira Guimarães DC-UFSCar jose@dc.ufscar.br 1 Introdução Uma rede de petri (RP) é uma quádrupla (P, T, F, M 0 ) onde P é um conjunto de lugares, T um conjunto de transições, F

Leia mais

Modelagem de Processos Redes de Petri e Workflow nets. Silvana Pereira Detro

Modelagem de Processos Redes de Petri e Workflow nets. Silvana Pereira Detro Modelagem de Processos Redes de Petri e Workflow nets Silvana Pereira Detro Redes de Petri Propostas por Carl Adam Petri (1962), constituem se em uma técnica de modelagem que permite a representação de

Leia mais

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn 4 Relações 4.1 Preliminares Definição 4.1. Sejam A e B conjuntos. Uma relação binária, R, de A em B é um subconjunto de A B. (R A B) Dizemos que a A está relacionado com b B sss (a, b) R. Notação: arb.

Leia mais

PMR 5237 Modelagem e Design de Sistemas Discretos em Redes de Petri

PMR 5237 Modelagem e Design de Sistemas Discretos em Redes de Petri PMR 5237 Modelagem e Design de Sistemas Discretos em Redes de Petri Aula 5: Análise de propriedades das redes P/T reinaldo@usp.br 1 2 Exercicio Dada a rede abaixo que representa um mutex clássico, faça

Leia mais

Modelagem e Simulação de Sistemas Computacionais Profa. Graça Bressan. Redes de Petri

Modelagem e Simulação de Sistemas Computacionais Profa. Graça Bressan. Redes de Petri Redes de Petri 1 Definições 1.1 Rede de Petri Uma Rede de Petri é uma quádrupla R = (P,T, I, O) onde: P = {p 1, p 2,..., p m } é um conjunto finito de m lugares, com m> 0, T = {t 1, t 2,..., t n } é um

Leia mais

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro MODELAGEM DE SISTEMAS Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Modelagem de Sistemas: A modelagem de um sistema auxilia o analista a entender a funcionalidade

Leia mais

O potencial das redes de Petri em modelagem e análise de processos de negócio

O potencial das redes de Petri em modelagem e análise de processos de negócio O potencial das redes de Petri em modelagem e análise de processos de negócio Agenda Motivação Introdução: conceito de workflow, importância, barreiras enfrentadas nas pesquisas desenvolvidas, redes de

Leia mais

Avaliação de Desempenho

Avaliação de Desempenho Avaliação de Desempenho Aula passada Métricas, Técnicas, Erros Aula de hoje Conceitos importantes de probabilidade Como fazer a análise de desempenho? Modelos Matemáticos Modelos de Simulação Como fazer

Leia mais

Universidade federal do Rio de Janeiro. Escola Politécnica. Departamento de Engenharia Elétrica

Universidade federal do Rio de Janeiro. Escola Politécnica. Departamento de Engenharia Elétrica Universidade federal do Rio de Janeiro Escola Politécnica Departamento de Engenharia Elétrica OBTENÇÃO DE UMA REDE DE PETRI INTERPRETADA PARA CONTROLE PARA UMA CÉLULA DE MANUFATURA HENRIQUE DE SOUZA ZÓZIMO

Leia mais

PETRILAB GUIA DO USUÁRIO V1.0 PETRILAB CRIADO POR ANDERSON LINHARES DE UFRJ

PETRILAB GUIA DO USUÁRIO V1.0 PETRILAB  CRIADO POR ANDERSON LINHARES DE UFRJ PETRILAB GUIA DO USUÁRIO V1.0 PETRILAB HTTP://SOURCEFORGE.NET/PROJECTS/PETRILAB/ CRIADO POR ANDERSON LINHARES DE SOUZA @ UFRJ Sumário 1. Download e instalação... 1 2. Interface... 2 3. Inserir elementos...

Leia mais

KEYWORDS Modelling. Petri net. Flexible of manufacture system. Productive efficiency. PALAVRAS CHAVE Redes de Petri. Modelagem. Sistema de manufatura

KEYWORDS Modelling. Petri net. Flexible of manufacture system. Productive efficiency. PALAVRAS CHAVE Redes de Petri. Modelagem. Sistema de manufatura Aplicação de redes de petri em um sistema de identificação e transporte de três tipos diferentes de produtos APPLICATION OF PETRI NET TO IDENTIFICATION AND TRANSPORT SYSTEM FOR THREE DIFFERENT PRODUCTS

Leia mais

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção ESTRUTURA DE DADOS 1. Árvores: Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas usando-se

Leia mais

6.CONCLUSÕES CONCLUSÕES

6.CONCLUSÕES CONCLUSÕES 6.CONCLUSÕES 193 6 CONCLUSÕES Este trabalho apresentou uma proposta para modelagem e análise de Sistemas de Controle envolvidos na geração de energia elétrica hidráulica, tendo como base dois desenvolvimentos:

Leia mais

Capítulo 2: Procedimentos e algoritmos

Capítulo 2: Procedimentos e algoritmos Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo

Leia mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar

Leia mais

3 FORMALISMO. ponderados. 3 FORMALISMO 70

3 FORMALISMO. ponderados. 3 FORMALISMO 70 3 FORMALISMO 7 3 FORMALISMO O objetivo deste capítulo é apresentar o formalismo proposto para modelagem de sistemas envolvidos na automação elétrica de UHEs, sob uma abstração de SDED. Este formalismo

Leia mais

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução. Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela

Leia mais

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241 Estatística e Modelos Probabilísticos - COE241 Aula passada Função Distribuição Condicional Calculando Probabilidades condicionando Esperança Condicional Aula de hoje Análise de Comandos de Programação

Leia mais

Simulação Usando Rede de Petri Software PIPE

Simulação Usando Rede de Petri Software PIPE LSA Laboratório de Sistemas de Automação www.pmrlsa.poli.usp.br Simulação Usando Rede de Petri Software PIPE PMR 5023 - Modelagem e Análise de Sistemas de Automação Escola Politécnica da Universidade de

Leia mais

MODELAGEM DE SISTEMAS

MODELAGEM DE SISTEMAS MODELAGEM DE SISTEMAS Profa. Rosemary Melo Representa a parte dinâmica do sistema Utilizado para modelar atividades, que podem ser um método ou um algoritmo, ou mesmo um processo completo. Na visão de

Leia mais

Diagrama de Máquina de Estados

Diagrama de Máquina de Estados Análise e Projeto de Sistemas OO Diagrama de Máquina de Estados Demonstra o comportamento de um elemento através de um conjunto de transições de estado. Um Estado representa a situação em que um objeto

Leia mais

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241 Estatística e Modelos Probabilísticos - COE241 Aula passada Análise da dados através de gráficos Introdução a Simulação Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes

Leia mais

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241 Estatística e Modelos Probabilísticos - COE241 Aula passada Análise da dados através de gráficos Introdução a Simulação Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes

Leia mais

Supervisão de Sistemas de Automação com aplicação a uma Célula de Fabricação Flexível

Supervisão de Sistemas de Automação com aplicação a uma Célula de Fabricação Flexível Apresentação do TFC 15/2002/L Supervisão de Sistemas de Automação com aplicação a uma Célula de Fabricação Flexível Hélder Ribeiro 46543 Ricardo Elvas 46676 DEEC Departamento de Engenharia Electrotécnica

Leia mais

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241 Estatística e Modelos Probabilísticos - COE241 Aula passada Somas aleatórias Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes Números Simulação de Sistemas Discretos É

Leia mais

COMO FUNCIONA A SIMULAÇÃO

COMO FUNCIONA A SIMULAÇÃO COMO FUNCIONA A SIMULAÇÃO Capítulo 2 - Aula 3 1 Terminologia Básica Variáveis de Estado Eventos Entidades e Atributos Recursos e Filas de Recursos Atividades e Períodos de Espera Tempo (Real) Simulado

Leia mais

COMO FUNCIONA A SIMULAÇÃO

COMO FUNCIONA A SIMULAÇÃO COMO FUNCIONA A SIMULAÇÃO Capítulo 2 - Aula 3 1 Terminologia Básica Ver capítulo 2 da referência 1 Variáveis de Estado Eventos Entidades e Atributos Recursos e Filas de Recursos Atividades e Períodos de

Leia mais

PMR 5237 Modelagem e Design de Sistemas Discretos em Redes de Petri

PMR 5237 Modelagem e Design de Sistemas Discretos em Redes de Petri PMR 537 Modelagem e Design de Sistemas Discretos em Redes de Petri Aula 4: Redes P/T e extensões reinaldo@usp.br 1 Sistema Sequencial Configurações Especiais 3 Sincronismo Conflito SM MG FC SM MG FC SM

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas Arquitetura de Computadores, Arquitetura de Computadores Organização de Computadores, Conjunto de Instruções, Sistemas Operacionais, Sistemas Operacionais, Sistemas Mecanismos de Interrupção e de Exceção,

Leia mais

PORTAL DE TERCEIROS PRESTADORES DE SERVIÇOS

PORTAL DE TERCEIROS PRESTADORES DE SERVIÇOS PORTAL DE TERCEIROS PRESTADORES DE SERVIÇOS 1. Como Acessar Na internet, acesse o seguinte endereço: www.brf-br.com/terceiros Concluído o Pré-Cadastro, sua empresa poderá acessar o Portal através da senha

Leia mais

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD) Linguagens Formais e Autômatos Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Linguagens Regulares A teoria da computação começa com uma pergunta: O que é um computador? É, talvez, uma

Leia mais

Gestão Unificada de Recursos Institucionais GURI

Gestão Unificada de Recursos Institucionais GURI Documentação de Sistemas Gestão Unificada de Recursos Institucionais GURI Módulo de Processo Seletivo Acadêmico Versão 2.1.5 Última revisão: 18/12/2017 2017 Versão: 1.0 Documentação: André L. M. C. Revisão:

Leia mais

Modelagem e CLP Redes de Petri

Modelagem e CLP Redes de Petri Modelagem e CLP Redes de Petri Rafael Garlet de Oliveira Instituto Federal Catarinense - IFC Câmpus Luzerna 4 de setembro de 2013 Rafael Garlet de Oliveira 1 / 18 Sumário 1 Introdução Introdução 2 Estrutura

Leia mais

Prática interdisciplinar em desenvolvimento de software I

Prática interdisciplinar em desenvolvimento de software I Este é um diagrama comportamental que procura determinar a sequência de eventos que ocorrem em um determinado processo, identificando quais mensagens devem ser disparadas entre os elementos envolvidos

Leia mais

Simulação Usando Rede de Petri Software PIPE

Simulação Usando Rede de Petri Software PIPE LSA Laboratório de Sistemas de Automação www.pmrlsa.poli.usp.br Simulação Usando Rede de Petri Software PIPE PMR3305 - Sistemas a Eventos Discretos Escola Politécnica da Universidade de São Paulo Departamento

Leia mais

Introdução a UML (Unified Modeling Language)

Introdução a UML (Unified Modeling Language) Introdução a UML (Unified Modeling Language) O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário

Leia mais

Máquinas de Turing 3

Máquinas de Turing 3 Máquinas de Turing 3 Exercícios Máquinas de Turing com Múltiplas Fitas Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing Linguagens decidíveis por Máquinas de Turing (Recursivas)

Leia mais

Arquitetura de Computadores Sistema de Numeração. Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão

Arquitetura de Computadores Sistema de Numeração. Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão Arquitetura de Computadores Sistema de Numeração Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão A base de representação numérica de um número está relacionada com a quantidade

Leia mais

Aula 3: Autômatos Finitos

Aula 3: Autômatos Finitos Teoria da Computação Primeiro Semestre, 25 Aula 3: Autômatos Finitos DAINF-UTFPR Prof. Ricardo Dutra da Silva Um procedimento ue determina se uma string de entrada pertence à uma linguagem é um reconhecedor

Leia mais

Metodologia de inversão

Metodologia de inversão 6 Metodologia de inversão Nesta tese, a transformação de velocidades em pressão de poros é encarada como um problema de inversão. Pela natureza do problema, essa transformação apresenta caráter não único

Leia mais

PMR 5237 Modelagem e Design de Sistemas Discretos em Redes de Petri

PMR 5237 Modelagem e Design de Sistemas Discretos em Redes de Petri PMR 5237 Modelagem e Design de Sistemas Discretos em Redes de Petri Aula 7: Formalização das Redes de Petri & Métodos de Análise 1 Redes de Petri Convencionais Linguagens Formais Chaveamento Sincronização+de+

Leia mais

Aula 3: Autômatos Finitos

Aula 3: Autômatos Finitos Teoria da Computação Segundo Semestre, 24 Aula 3: Autômatos Finitos DAINF-UTFPR Prof. Ricardo Dutra da Silva Um procedimento ue determina se uma string de entrada pertence à uma linguagem é um reconhecedor

Leia mais

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação POR QUE APRENDER CONCEITOS

Leia mais

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

4 Testes e experimentos realizados 4.1. Implementação e banco de dados 32 4 Testes e experimentos realizados 4.1. Implementação e banco de dados Devido à própria natureza dos sites de redes sociais, é normal que a maior parte deles possua uma grande quantidade de usuários

Leia mais

A protoboard ou Matriz de contatos é utilizada para fazer montagens provisórias e/ou teste de projetos. É constituída por uma base plástica, contendo

A protoboard ou Matriz de contatos é utilizada para fazer montagens provisórias e/ou teste de projetos. É constituída por uma base plástica, contendo Aula 01 A protoboard ou Matriz de contatos é utilizada para fazer montagens provisórias e/ou teste de projetos. É constituída por uma base plástica, contendo inúmeros orifícios destinados à inserção de

Leia mais

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado AULA 11 PROJETO E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado Roteiro Motivação Conceitos básicos Representação Motivação Um grafo é uma abstração que permite

Leia mais

Utilização de Algoritmos Genéticos para Otimização de Altura de Coluna da Matriz de Rigidez em Perfil no Método dos Elementos Finitos

Utilização de Algoritmos Genéticos para Otimização de Altura de Coluna da Matriz de Rigidez em Perfil no Método dos Elementos Finitos Utilização de Algoritmos Genéticos para Otimização de Altura de Coluna da Matriz de Rigidez em Perfil no Método dos Elementos Finitos André Luiz Ferreira Pinto Pontifícia Universidade Católica do Rio de

Leia mais

APOSTILA COMPLEMENTAR

APOSTILA COMPLEMENTAR APOSTILA COMPLEMENTAR Conteúdo A ÁLGEBRA DE BOOLE... 1 Os níveis lógicos... 2 Operações Lógicas... 3 Função Lógica NÃO ou Inversora... 4 Função Lógica E... 5 Função lógica OU... 6 Função NÃO E... 7 Função

Leia mais

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo Ciência da Computação Análise e Projeto Orientado a Objetos UML Anderson Belgamo 1 Evolução do Software O rápido crescimento da capacidade computacional das máquinas resultou na demanda por sistemas de

Leia mais

MODELAGEM E SIMULAÇÃO

MODELAGEM E SIMULAÇÃO MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Análise da Decisão Pela própria natureza da vida, todos nós devemos continuamente

Leia mais

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real. LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos Modelos Matemáticos Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real. Ressalta-se contudo que é muito importante

Leia mais

CURSO DE ELETRÔNICA DIGITAL APLICAÇÃO PARA OS CONTADORES DIGITAIS/DECODIFICADORES

CURSO DE ELETRÔNICA DIGITAL APLICAÇÃO PARA OS CONTADORES DIGITAIS/DECODIFICADORES LIÇÃO 10 APLICAÇÃO PARA OS CONTADORES DIGITAIS/DECODIFICADORES Na lição anterior estudamos os contadores e divisores de frequências que consistem em blocos digitais utilizando flip-flops, elementos fundamentais

Leia mais

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ. Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem

Leia mais

Portas lógicas Arquitetura e Organização de Computadores Curso de Análise e Desenvolvimento de Sistemas

Portas lógicas Arquitetura e Organização de Computadores Curso de Análise e Desenvolvimento de Sistemas Portas lógicas Arquitetura e Organização de Computadores Curso de Análise e Desenvolvimento de Sistemas 1 Componentes Álgebra dos de computadores Boole Vimos anteriormente que os números binários não representam

Leia mais

Simulação estocástica discreta

Simulação estocástica discreta Simulação estocástica discreta Apoio ao projecto LEEC@IST Simulação estocástica discreta : 1/31 Introdução (1) Existem diversos tipos de simulação de sistemas: Simulação analógica: com modelos físicos,

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos (notas da primeira aula 1 Definições básicas 1.1 Conjuntos Definição 1. Um conjunto é uma coleção de objetos, denominados elementos. Notação 1. Para indicar que um elemento

Leia mais

Montando uma Rede Simples. Cabeamento

Montando uma Rede Simples. Cabeamento Montando uma Rede Simples Uma rede de computadores permite o compartilhamento de arquivos, equipamentos (impressora, digitalizador ou escâner), internet e vários outros recursos. Agora vou mostrar como

Leia mais

Um Algoritmo de Diagnóstico Distribuído para Redes de Topologia Dinâmica

Um Algoritmo de Diagnóstico Distribuído para Redes de Topologia Dinâmica Um Algoritmo de Diagnóstico Distribuído para Redes de Topologia Dinâmica Leandro Pacheco de Sousa 1 Instituto de Informática Universidade Federal do Paraná (UFPR) Curitiba PR Brasil leandrops@inf.ufpr.br

Leia mais

Especificação, Modelação e Projecto de Sistemas Embutidos

Especificação, Modelação e Projecto de Sistemas Embutidos Especificação, Modelação e Projecto de Sistemas Embutidos Petri Petri Nets Nets Paulo Pedreiras pbrp@ua.pt Departamento de Electrónica, Telecomunicações e Informática Universidade de Aveiro Parcialmente

Leia mais

Noções de Processos Estocásticos e Cadeias de Markov

Noções de Processos Estocásticos e Cadeias de Markov Noções de Processos Estocásticos e Cadeias de Markov Processo Estocástico Definição: Processo Estocástico é uma coleção de variáveis aleatórias indexadas por um parâmetro t R (entendido como tempo). X={

Leia mais

Matemática Discreta 10

Matemática Discreta 10 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas

Leia mais

Resolução Exe 2.12 Monolítico Recursivo

Resolução Exe 2.12 Monolítico Recursivo Resolução Exe 2.12 Monolítico Recursivo Recursivo P R é R 1 onde R 1 def (se T1 então R 2 senão R 3 ) R 2 def F; R 3 R 3 def (se T2 então R 4 senão R 7 ) R 4 def G; R 5 R 5 def (se T1 então R 7 senão R

Leia mais

Modelos Probabilísticos

Modelos Probabilísticos Modelos Probabilísticos Somente para lembrar... Modelos são extremamente importantes para o estudo do desempenho de um sistema antes de implementá-lo na prática! Foguete proposto tem confiabilidade? Devemos

Leia mais

Computabilidade e Complexidade (ENG10014)

Computabilidade e Complexidade (ENG10014) Sistemas de Informação Computabilidade e Complexidade (ENG10014) Profa. Juliana Pinheiro Campos E-mail: jupcampos@gmail.com Decidibilidade O estudo da decidibilidade objetiva determinar a solucionabilidade

Leia mais

6 ESCALONAMENTO DE CPU

6 ESCALONAMENTO DE CPU 6 ESCALONAMENTO DE CPU O escalonamento de CPU é ponto chave da multiprogramação. Ela permite que haja mais de um processo em execução ao mesmo tempo. Em ambientes com um único processador, o escalonador

Leia mais

Análise Sintática. Fabiano Baldo

Análise Sintática. Fabiano Baldo Compiladores Análise Sintática Fabiano Baldo Gramáticas Livre de Contexto (GLC) É utilizada na especificação formal lda sintaxe de uma linguagem de programação. É um conjunto de produções ou regras gramaticais

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Engenharia da Computação Universidade Católica de Petrópolis Arquitetura de Computadores Sistema de Numeração v. 0.1 Luís Rodrigo de O. Gonçalves luisrodrigoog@gmail.com Petrópolis, 1 de Março de 2016

Leia mais

Aulas 10 e 11 / 18 e 20 de abril

Aulas 10 e 11 / 18 e 20 de abril 1 Conjuntos Aulas 10 e 11 / 18 e 20 de abril Um conjunto é uma coleção de objetos. Estes objetos são chamados de elementos do conjunto. A única restrição é que em geral um mesmo elemento não pode contar

Leia mais

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Método Simplex. Marina Andretta ICMC-USP. 19 de outubro de 2016

Método Simplex. Marina Andretta ICMC-USP. 19 de outubro de 2016 Método Simplex Marina Andretta ICMC-USP 19 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 - Otimização linear

Leia mais

I - Introdução à Simulação

I - Introdução à Simulação 1 I - Introdução à Simulação Simulação é, entendida como a imitação de uma operação ou de um processo do mundo real. A simulação envolve a geração de uma história artificial de um sistema para a análise

Leia mais

REDES DE PETRI APLICADAS A AUTOMAÇÃO

REDES DE PETRI APLICADAS A AUTOMAÇÃO 1 Disciplina: Laboratório de Automação Curso de Automação Industrial 4º Semestre NOAS DE AULA REDES DE ERI ALICADAS A AUOMAÇÃO 1. Conceituação Uma Rede de etri é uma quíntupla (,, A, W, m) onde : número

Leia mais

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar

Leia mais

Teoria da Computação. Complexidade computacional classes de problemas

Teoria da Computação. Complexidade computacional classes de problemas Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos

Leia mais

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO Por que estudar grafos? Importante ferramenta matemática com aplicação em diversas áreas

Leia mais

Método de Eliminação de Fourier-Motzkin

Método de Eliminação de Fourier-Motzkin ERMAC 200: I ENCONTRO REGIONAL DE MATEMÁTICA APLICADA E COMPUTACIONAL - 3 de Novembro de 200, São João del-rei, MG; pg 258-26 258 Método de Eliminação de Fourier-Motzkin André Rodrigues Monticeli, Cristiano

Leia mais

DIFUSÃO CORRELACIONADA EM SISTEMAS DE GRÃOS

DIFUSÃO CORRELACIONADA EM SISTEMAS DE GRÃOS DIFUSÃO CORRELACIONADA EM SISTEMAS DE GRÃOS Aluno: DANIEL BYRON SOUZA P DE ANDRADE Orientador: Welles Antônio Martinez Morgado Introdução Instabilidades sugerem que a trajetória de grãos vizinhos deva

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Regulares. Prof. Daniel Oliveira Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões

Leia mais

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas.

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas. Máquina de Turing É um dispositivo imaginário que formou a estrutura para fundamentar a ciência da computação moderna. Seu inventor, o matemático Alan Mathison Turing, mostrou que a computação das operações

Leia mais

Aula 14. Aula de hoje. Aula passada

Aula 14. Aula de hoje. Aula passada Aula 14 Aula passada Autovalores, autovetores, decomposição Convergência para estacionaridade Tempo de mistura Spectral gap Tempo de mistura de passeios aleatórios Aula de hoje Caminho amostral Teorema

Leia mais

Modelagem e Análise de Sistemas - COS767

Modelagem e Análise de Sistemas - COS767 Modelagem e Análise de Sistemas - COS767 Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes Números Geração de variáveis aleatórias: método da transformada inversa Simulação

Leia mais

Manual de atualização para uso do xml versão 3.10

Manual de atualização para uso do xml versão 3.10 Manual de atualização para uso do xml versão 3.10 2 Manual do usuário C-Plus 4 0 1 INTRODUÇÃO 3 1.1 Atualização... C-Plus 3 1.2 Atualização... C-Plus NF-e 6 2 CONFIGURAÇÃO 10 2.1 CPlusNFe... 11 2.2 CPlus...

Leia mais

Tutorial Proteus 02. Como simular o Arduino no Proteus ISIS utilizando a biblioteca "Emulater" por João Vitor

Tutorial Proteus 02. Como simular o Arduino no Proteus ISIS utilizando a biblioteca Emulater por João Vitor Tutorial Proteus 02 Como simular o Arduino no Proteus ISIS utilizando a biblioteca "Emulater" por João Vitor http://arduinolegal.blogspot.com 1 Bom pessoal, como já foi visto em outro tutorial (Acesse

Leia mais

Conceitos e Princípios Gerais

Conceitos e Princípios Gerais Conceitos e Princípios Gerais Conceitos e Princípios Gerais Fases na resolução de problemas físicos Resolução do Modelo Matemático Conceitos Básicos de Cálculo Numérico Erros em Processos Numéricos Fases

Leia mais

MODELAGEM MATEMÁTICA E COMPUTACIONAL DE UM PROBLEMA DE INTEGRAÇÃO NA ÁREA DE PUBLICIDADE E PROPAGANDA UTILIZANDO REDES DE PETRI ESTOCÁSTICAS 1

MODELAGEM MATEMÁTICA E COMPUTACIONAL DE UM PROBLEMA DE INTEGRAÇÃO NA ÁREA DE PUBLICIDADE E PROPAGANDA UTILIZANDO REDES DE PETRI ESTOCÁSTICAS 1 MODELAGEM MATEMÁTICA E COMPUTACIONAL DE UM PROBLEMA DE INTEGRAÇÃO NA ÁREA DE PUBLICIDADE E PROPAGANDA UTILIZANDO REDES DE PETRI ESTOCÁSTICAS 1 Francine Freddo 2, Sandro Sawicki 3, Rafael Z Frantz 4. 1

Leia mais

Engenharia de Software. UML Unified Modeling Language

Engenharia de Software. UML Unified Modeling Language Engenharia de Software UML Unified Modeling Language UML - INTRODUÇÃO UML é um acrônimo para a expressão Linguagem de Modelagem Unificada. Pela definição de seu nome, vemos que a UML é uma linguagem que

Leia mais

Este manual destina-se a ativação do DMI, para posterior utilização.

Este manual destina-se a ativação do DMI, para posterior utilização. Este manual destina-se a ativação do DMI, para posterior utilização. Imagem ilustrativa Manual de ativação 1-Visão Geral... 2 2- Primeiro acesso ao DMI... 2 3 - Ativação do DMI... 6 Versão Descrição 1.00

Leia mais

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação Aula 06: Teoria dos Grafos Tópico 01: Grafos e suas Representações Nesta aula nós passamos a estudar um outro assunto, mas que também tem muita aplicação na vida prática, a Teoria dos Grafos. Para esta

Leia mais