Minimização de Conjuntos de Casos de Teste por meio de

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

Download "Minimização de Conjuntos de Casos de Teste por meio de"

Transcrição

1 Minimização de Conjuntos de Casos de Teste por meio de Condições de Suficiência Lúcio F. de Mello Neto 1, Adenilso da S. Simão 1 1 Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo Caixa Postal São Carlos SP Brasil {lucio,adenilso}@icmc.usp.br Abstract. Model-based testing provides test suites from formal specifications, such as Finite State Machines. Due to resource constraints, the application of all test cases of a test suite can be infeasible. In this paper, we present an algorithm for the minimization of test suites generated from Finite State Machines, which is based on sufficient conditions in order to keep the test suite effectiveness in revealing faults. The results of an observational study are presented, in which the algorithm is used with randomly generated machines and test suites. Resumo. O teste baseado em modelos deriva conjuntos de casos de teste a partir de especificações formais, tais como Máquinas de Estados Finitos. Devido a restrições de recursos, a aplicação de todos os casos de teste de um conjunto pode se tornar inviável. Neste artigo, é apresentado um algoritmo para a minimização de conjuntos de casos de teste gerados a partir de Máquinas de Estados Finitos. A minimização baseia-se em condições de suficiência de forma a manter a efetividade do conjunto em relação à detecção de erros. São apresentados os resultados de um estudo observacional, no qual o algoritmo é utilizado com máquinas e conjuntos de casos de teste gerados aleatoriamente. 1. Introdução A geração de casos de teste baseada em modelos visa a possibilitar a derivação de casos de teste a partir de especificações formais. Dentre as técnicas utilizadas para a especificação de sistemas, as Máquinas de Estados Finitos (MEFs) destacam-se pela simplicidade e poder de modelagem. As MEFs são utilizadas para a geração de um conjunto de casos de teste que possibilita testar se a implementação está em conformidade com sua respectiva especificação. Vários métodos foram propostos para a geração de um conjunto de casos de teste que possa revelar os erros existentes em uma implementação. Os métodos para a geração de casos de teste a partir de MEFs vêm sendo propostos há décadas, como por exemplo, os métodos DS [Gönenc 1970], W [Chow 1978], UIOv [Vuong et al. 1989] e o Wp [Fujiwara et al. 1991]. Mais recentemente, podem-se destacar também os métodos H [Dorofeeva et al. 2005b] e o State Counting [Petrenko and Yevtushenko 2005]. Apesar dos vários métodos disponíveis para geração de casos de teste, pode haver situações em que um conjunto de casos de teste seja obtido de alguma outra forma. Por exemplo, um conjunto de casos de teste pode ter sido criado com base em outros modelos disponíveis, tais como a especificação textual ou diagramas de análise. Além disso, conjuntos previamente utilizados para o teste de outras versões do sistema (tais como no teste de regressão) ou de outros sistemas semelhantes podem ser empregados. No entanto, a tarefa Apoio financeiro da CAPES. 55

2 de se aplicar esse conjunto de casos de teste torna-se muito onerosa quando há uma quantidade elevada de casos de teste a serem aplicados. Assim, com o intuito de viabilizar a aplicação dos testes, uma minimização do conjunto pode ser realizada. Diversos critérios de cobertura podem ser utilizados para guiar a minimização, tais como a cobertura de elementos da MEF (por exemplo, estados e transições), buscando reduzir o conjunto de forma a manter casos de teste necessários para garantir que tais elementos foram exercitados ao menos um número pré-definido de vezes. No entanto, a satisfação de tais critérios não garante que todos os erros sejam revelados, tal como ocorre com os conjuntos de casos de teste gerados pelos métodos clássicos citados acima. Desse modo, para que não haja prejuízos quanto à eficiência dos testes, torna-se importante realizar a minimização de forma a garantir a propriedade que o conjunto resultante possua a mesma capacidade na detecção de erros. São conhecidas algumas condições, chamadas de condições de suficiência, que garantem que, uma vez satisfeitas essas condições, o conjunto possua tal propriedade, tais como [Petrenko et al. 1996, Dorofeeva et al. 2005b]. Neste artigo, é apresentado um algoritmo para a minimização de conjuntos de casos de teste baseado nas condições de suficiência propostas em [Dorofeeva et al. 2005b]. O algoritmo utiliza uma estratégia baseada no algoritmo guloso [Cormen et al. 2001] e algumas heurísticas para determinar quais casos de teste devem ser selecionados. Dados de um estudo observacional com MEFs geradas aleatoriamente são apresentados, que mostram que o algoritmo apresenta uma boa redução, mesmo comparados com a cardinalidade de conjuntos gerados pelos métodos clássicos. Este artigo está organizado da seguinte forma: na Seção 2 são apresentadas as definições sobre MEFs; na Seção 3 são introduzidas as condições de suficiência na qual baseia-se o algoritmo de minimização proposto neste artigo; na Seção 4 é apresentada uma visão geral do algoritmo de minimização bem como um exemplo de minimização; na Seção 5 são apresentados os resultados de um estudo observacional realizado com MEFs geradas aleatoriamente; e na Seção 6 são apresentadas as conclusões deste artigo e apontados os trabalhos futuros. 2. Máquinas de Estados Finitos Uma MEF M é definida formalmente por uma tupla (S, s 0, X, Y, D A, δ, λ), onde: S é um conjunto finito de estados, incluindo o estado inicial s 0 ; X é um conjunto finito de entradas; Y é o conjunto finito de saídas; D A S X é um domínio da especificação; δ é uma função de transição, δ : D A S, e λ é uma função de saída, λ : D A Y ; Uma MEF pode ser representada graficamente por um diagrama de transição de estados. Na Figura 1, tem-se a representação de uma MEF, na qual S = {S 1, S 2, S 3, S 4 }, X = {x, y} e Y = {0, 1} (extraída de [Dorofeeva et al. 2005a]). Como em [Fujiwara et al. 1991], a notação s i x/y s j será utilizada para indicar que uma MEF no estado s i produz y como saída e realiza uma transição para o estado s j quando a entrada x é aplicada. A notação s i x s j será utilizada quando a entrada x é aplicada ao estado s i sem se importar com a respectiva saída. Os estados s i e s j são chamados de estado inicial e estado final de uma transição, respectivamente. Uma seqüência de entrada α = x 1 x 2... x k X é chamada de seqüência de entrada definida (defined input sequence) para o estado s i S se existem k estados s i1, s i2,..., s ik S tal que haja uma seqüência de transições s i x 1 s i1.. s i(k 1) x k s ik na MEF M. A notação Ω M (s i ) representa o conjunto de todas as seqüências de entrada definidas no estado s i de M e a notação Ω M representa o conjunto de 56

3 todas as seqüências de entrada definidas no estado inicial s 0 de M. A seqüência vazia é denotada por ɛ. Diz-se que uma seqüência α é prefixo de uma seqüência β, denotado por α β, se β = αω, para algum ω. α é um prefixo próprio de β, denotado por α < β, se β = αω, para algum ω ɛ. Se uma seqüência de entrada αx Ω M (s i ) então δ(s i, αx) = δ(δ(s i, α), x) e λ(s i, αx) = λ(s i, α)λ(δ(s i, α), x). A notação αβ representa a concatenação da seqüência α com a seqüência β. Dados os conjuntos A e B, a notação AB representa a concatenação do conjunto A com o conjunto B, tal que AB = {αβ α A, β B}. S 1 y/0 S 2 x/1 x/1 y/0 x/0 y/1 x/1 y/0 S 3 S 4 Figura 1. Exemplo de MEF. Dados os estados s i, s j S e uma seqüência x Ω M (s i ) tal que δ(s i, x) = s j, diz-se que x é uma seqüência de transferência (transfer sequence) de s i para s j. Um conjunto state cover Q de uma MEF M com n estados é definido como um conjunto com n seqüências de transferência, incluindo a seqüência vazia ɛ, que leva M a partir de seu estado inicial s 0 para cada um dos estados. Dois estados s j, s i S são distinguíveis (por γ), representado por s j s i (s j γ s i ), se existe uma seqüência de entrada γ Ω M (s j ) Ω M (s i ), chamada de seqüência de separação (separating sequence), tal que λ(s j, γ) λ(s i, γ). Esse conceito também pode ser utilizado para dois estados de MEFs diferentes. Duas MEFs M1 e M2 são distinguíveis, M1 M2, se m 0 n 0, sendo m 0 e n 0 estados iniciais de M1 e M2, respectivamente. Dois estados s i, s j S são equivalentes em relação ao conjunto V Ω M (s i ), representado por s i =V s j, se λ M (s i, α) = λ M (s j, α) para todo α V. O conceito de equivalência pode ser utilizado para dois estados de MEFs diferentes. Uma MEF completamente especificada (ou completa) é aquela em que existem transições definidas para todos os símbolos de entrada em cada estado da MEF. Caso contrário, a MEF é parcialmente especificada (ou parcial). Formalmente, uma MEF é completa se D A = S X. Uma MEF é reduzida se seus estados, tomados par-a-par, são distinguíveis. Uma MEF é determinística se em cada estado, dada uma entrada, há somente uma única transição definida para um próximo estado, caso contrário, a MEF é não-determinística. Uma MEF é inicialmente conectada se a partir do seu estado inicial é possível atingir todos os seus demais estados. Um caso de teste da MEF M é uma seqüência de entrada definida x Ω M. Um conjunto de casos de teste T (ou conjunto de teste) para a MEF M é um conjunto finito de casos de teste de M, tais que não existem dois casos de teste α, β T com α < β. Neste trabalho, os termos seqüência e caso de teste são utilizados como sinônimos. Para um conjunto de teste T, a notação pref(t ) representa todos os prefixos dos casos de teste pertencentes ao conjunto T, ou seja, pref(t ) = {α β T, α β}. Considera-se que a operação reset, representada como r no início dos casos de teste, é uma operação que reinicia corretamente a MEF, ou seja, leva a implementação ao seu estado inicial. Seja M uma especificação e ψ m (M) o conjunto de todas as implementações I = (T, t 0, X, Y, D T,, Λ) a partir de m estados tal que Ω I Ω M e m n, sendo n o número de estados de M. Um conjunto de teste T S é m-completo em relação à especificação M se para todo I ψ m (M) tal que I M, há uma seqüência α T S que distingue I de M. 57

4 Para m = n, diz-se que o conjunto é n-completo. Neste trabalho, será considerado o caso particular onde m = n. A implementação I está em conformidade com a especificação M se e somente se t 0 =ΩM (s 0 ) s 0, sendo t 0 e s 0 estados iniciais de I e M, respectivamente. Isso significa que, para cada seqüência de entrada onde um comportamento de M seja definido, I comporta-se de maneira idêntica. 3. Condições de Suficiência Em [Petrenko et al. 1996] são formuladas condições de suficiência que se referem à m- completude de um conjunto de casos de teste, ou seja, condições que, quando satisfeitas por um conjunto de casos de teste T, garantem que T S é m-completo. No trabalho de Dorofeeva et al. [2005b] são apresentadas condições de suficiência mais abrangentes, ou seja, essas condições conseguem verificar a m-completude de conjuntos de teste que as condições definidas em [Petrenko et al. 1996] não verificariam. São apresentadas duas condições de suficiência para m = n, ou seja, quando a implementação e a especificação possuem o mesmo número de estados. Teorema 1 ([Dorofeeva et al. 2005b]). Dada a especificação M determinística e reduzida com n estados e um conjunto state cover Q, seja T S um conjunto finito de casos de teste que contém o conjunto QX Ω M (s 0 ). O conjunto T S é n-completo se satisfaz as seguintes condições: Cond1 Para cada par de estados diferentes de M que seja alcançável pelas seqüências α, β Q, T S possui as seqüências αγ e βγ onde γ é uma seqüência de separação para os estados δ(s 0, α) e δ(s 0, β). Cond2 Para cada transição definida (s, x) D A, T S possui uma seqüência αx tal que α Q, δ(s 0, α) = s, com as seguintes propriedades: Para cada estado alcançável por uma seqüência β Q tal que δ(s 0, β) s, T S possui as seqüências αγ e βγ onde γ é uma seqüência de separação para os estados s e δ(s 0, β). Para cada estado alcançável por uma seqüência β Q tal que δ(s 0, β) δ(s, x), T S possui as seqüências αxγ e βγ onde γ é uma seqüência de separação para os estados δ(s, x) e δ(s 0, β). 4. Algoritmo de Minimização Com base nas condições de suficiência, pode-se determinar a minimização de conjuntos de teste de forma a manter a completude dos testes. Desse modo, definiu-se um algoritmo para realizar a minimização a partir de um conjunto de teste.o algoritmo de minimização tem como entrada uma MEF M = (S, s 0, X, Y, D A, δ, λ) e um conjunto n-completo T de casos de teste. Após a minimização, um conjunto n-completo T, tal que T T é obtido. Pelo fato do algoritmo se apoiar nas condições de suficiência citadas na Seção 3, a minimização não ocorre quando T não for n-completo, ou quando T, mesmo sendo n-completo, não atender tais condições de suficiência. Em linhas gerais, o algoritmo possui três passos: Passo 1: A seleção de um conjunto state cover Q é realizada de forma que o conjunto Q possa ser utilizado, no Passo 2, para atender Cond1. O algoritmo identifica um conjunto Q pref(t ), tal que para cada par de seqüências α, β Q onde δ(s 0, α) δ(s 0, β), há seqüências αγ, βγ pref(t ) tal que λ(δ(s 0, α), γ) λ(δ(s 0, β), γ). Inicialmente T = Q. Passo 2: A adição de seqüências em T é realizada para que Cond1 seja atendida. Para cada par de seqüências α, β Q, onde δ(s 0, α) δ(s 0, β), uma seqüência de separação γ é encontrada, tal que αγ, βγ pref(t ) e λ(δ(s 0, α), γ) λ(δ(s 0, β), γ). As seqüências αγ, βγ são adicionadas ao conjunto T. 58

5 Passo 3: A adição de seqüências em T é realizada para que Cond2 seja atendida. Para cada transição (s, x) D A, as seqüências α, β Q, tais que δ(s 0, α) = s e δ(s 0, β) s, e uma seqüência de separação γ, tal que λ(δ(s 0, αx), γ) λ(δ(s 0, β), γ), são encontradas em pref(t ). As seqüências αxγ, βγ são adicionadas ao conjunto T. No Passo 1, deve-se selecionar um conjunto state cover Q contido em pref(t ). Dentro do conjunto pref(t ), podem existir diversos subconjuntos de seqüências que formam um conjunto state cover válido. No algoritmo de minimização, a seleção do conjunto Q é realizada da seguinte forma. As seqüências de transferência para cada estado de M são encontradas. Para o estado inicial s 0, a seqüência ɛ é escolhida. Para os demais estados, são escolhidas as seqüências de transferência de menor tamanho de forma a atender Cond1. Desse modo, o algoritmo verifica se para cada par de seqüências α, β Q, onde δ(s 0, α) δ(s 0, β), há seqüências αγ, βγ pref(t ) tais que λ(δ(s 0, α), γ) λ(δ(s 0, β), γ). As seqüências αγ, βγ devem ser adicionadas ao conjunto T. O problema para se encontrar um conjunto state cover em pref(t ) pode ser reduzido ao problema de se encontrar um clique em um grafo [Cormen et al. 2001], que por sua vez é um problema NP-completo [Garey and Johnson 1979]. Desse modo, soluções aproximadas devem ser apresentadas para se encontrar um conjunto state cover Q. No entanto, após a seleção de um conjunto Q, pode ocorrer que esse conjunto não seja um conjunto state cover conveniente, pois pode haver situações em que, a partir desse conjunto selecionado, não seria possível atender as condições de suficiência, enquanto que a partir de outro conjunto atenderia. Uma solução seria encontrar todos os possíveis conjuntos state cover e executar o algoritmo com cada um deles. Essa solução, porém, apenas seria viável se houvesse uma pequena quantidade de conjuntos candidatos a state cover. No algoritmo, a minimização do conjunto T não é realizada caso o conjunto state cover Q selecionado não seja um conjunto apropriado. No Passo 2, o conjunto T é inicializado com as seqüências de Q. Após a seleção do conjunto Q, têm-se as seqüências αγ, βγ pref(t ) a serem adicionadas ao conjunto T para que a primeira condição de suficiência seja atendida de forma a minimizar o custo. Seja w(a) o tamanho de um conjunto de teste A calculado pela soma dos tamanhos das seqüências existentes em A. Seja B ω M um conjunto de casos de teste. Então, o custo adicional de B em relação à A é definido como c A (B) = w(a B) w(a). O algoritmo deve encontrar uma seqüência γ, tal que αγ, βγ pref(t ) e o custo adicional de {αγ, βγ} em relação a T seja minimizado. Para a escolha dessas seqüências utilizou-se uma estratégia gulosa (greedy algorithms) [Cormen et al. 2001]. Essa estratégia gulosa toma a melhor decisão local, o que não garante uma solução ótima global. Após a adição das seqüências αγ e βγ à T, observa-se que Cond1 é satisfeita. Uma estratégia utilizada na implementação do algoritmo foi de representar o conjunto de casos de teste pref(t ) por meio de uma árvore A. A árvore é construída de forma que seus nós representem os estados de M. O nó raiz representa o estado inicial s 0. Os arcos que conectam os nós da árvore representam as entradas x X. Cada caminho do nó raiz a um nó folha representa uma seqüência existente em T. A árvore A é utilizada ao longo do algoritmo tanto para facilitar o cálculo do custo adicional quanto para encontrar uma seqüência de separação γ. Seja d(α) a altura do nó da árvore alcançado pela seqüência α. Seja αx a seqüência a ser adicionada em T. O custo c T ({αx}) é calculado da seguinte forma. Se αx T então c T ({αx}) = 0. Se αx / T e α / T então c T ({αx}) = c T (α) + 1. Para αx / T e α T têm-se duas possibilidades: se α atinge um nó folha de T então c T ({αx}) = 1, senão c T ({αx}) = d(α) + 1. A representação dos casos de teste em uma árvore também é útil quando se deseja encontrar uma seqüência de separação γ entre duas 59

6 seqüências α, β T. A seqüência γ é encontrada com uma busca em largura. Em uma fila F adiciona-se a tupla (α, c T (α), β, c T (β)). Enquanto F não estiver vazia verfica-se para cada entrada x X tal que αx, βx pref(t ) se γ é uma seqüência de separação para α e β. Se γ for uma seqüência de separação, γ é selecionada, caso contrário, a tupla (αx, c T (αx), βx, c T (βx)) é adicionada em F. No passo 3, atendida Cond1, um conjunto R = {(s, x, s ) s, s S, x X, δ(s, x) s } de requisitos é determinado de forma a representar os elementos que devem ser satisfeitos para atender Cond2. Para cada requisito de R, o algoritmo encontra em pref(t ) seqüências α, β Q, tais que δ(s 0, α) = s e δ(s 0, β) = s, e uma seqüência de separação γ tal que λ(δ(s 0, αx), γ) λ(δ(s 0, β), γ). O algoritmo pode encontrar diversas seqüências αxγ e βγ para cada requisito de R. Para a escolha dessas seqüências, uma estratégia gulosa também foi utilizada. Desse modo, as seqüências adicionadas ao conjunto T são as que resultam em um menor custo adicional c T (αxγ, βγ) Exemplo de Minimização Para exemplificar a utilização do algoritmo de minimização, considere a MEF da Figura 1 e o conjunto T = {rxxy, rxyyy, ryxy, ryyxx, ryyyyyy, rxxxyxyyy} de tamanho 34. No Passo 1, o algoritmo de minimização procura selecionar seqüências de menor tamanho de forma a satisfazer Cond1. O algoritmo seleciona o conjunto state cover Q = {ɛ, ry, rx, ryy}. O conjunto T é inicializado com as seqüências de Q. No Passo 2, a adição de seqüências αγ e βγ é realizada. Por exemplo, para o par (α, β) = (ɛ, rx), o algoritmo encontra γ = xx de forma que rx e rxx são adicionadas à T. Ao final do Passo 2, é obtido o conjunto T = {rxx, ryx, ryyx, ryyyy} de tamanho 15. Por fim, no Passo 3, a adição de seqüências αxγ e βγ é realizada. Por exemplo, para o requisito (S3, x, S1), o algoritmo encontra α = x, β = ɛ, γ = y de forma que rxxy e ry são adicionadas à T. Ao final do Passo 3, o algoritmo obteve como resultado o conjunto n-completo T = {rxxy, rxyyy, ryxy, ryyxx, ryyyyyy} de tamanho 25. É interessante observar que o algoritmo sendo executado com a mesma MEF, com o mesmo conjunto T, mas com um conjunto state cover Q diferente, pode obter um resultado distinto. Por exemplo, considerando o conjunto state cover Q = {ɛ, ry, rxxxyx, ryy} como o conjunto escolhido no Passo 1. Como resultado seria obtido o conjunto n-completo T = {rxy, ryyyyyy, rxxxyxyyy} de tamanho 19. Percebe-se que a escolha de um conjunto state cover Q é importante, pois pode resultar em um conjunto n-completo de menor tamanho. Para a MEF da Figura 1, o algoritmo obteve um melhor resultado mesmo com um conjunto Q de tamanho maior. Atualmente, uma melhor forma de se realizar a seleção do conjunto Q está sendo investigada. Em determinadas situações, o algoritmo não realiza a minimização. Por exemplo, considere a MEF da Figura 1 e o conjunto T = {ryxyxxyyyyxyxyyy} de tamanho 16. Para esse conjunto a minimização não é realizada, pois T não satisfaz as condições de suficiência, apesar de ser n-completo. 5. Avaliação Foi realizado um estudo observacional com o algoritmo de minimização para verificar a redução obtida em conjuntos de teste n-completos. As MEFs foram geradas de forma aleatória em duas etapas. Na primeira etapa, um conjunto de estados era gerado e um estado era selecionado como estado inicial e marcado como atingido. Para cada estado s não marcado como atingido, eram selecionados aleatoriamente um estado s, uma entrada x e uma saída y, sendo que a transição s x/y s era adicionada à MEF e s era marcado como atingido. Ao final dessa etapa, uma MEF inicialmente conectada é obtida. Na 60

7 segunda etapa, transições geradas aleatoriamente eram adicionadas para que a MEF se tornasse completa. Os conjuntos de teste também foram gerados de forma aleatória. Para cada MEF A gerada, a quantidade e o tamanho das seqüências eram escolhidas. Em seguida, o conjunto de teste era criado com seqüências aleatórias que estavam definidas em Ω A. Para realizar o estudo com o algoritmo de minimização, foram utilizadas MEFs com 3 entradas, 3 saídas, reduzidas e completamente especificadas. Na Tabela 1 é apresentado um sumário dos resultados obtidos. Para cada linha da Tabela 1, foi utilizado um conjunto de 10 MEFs. Tabela 1. Sumário dos resultados obtidos. Qtde. Média Qtde/Tam Média Média % em % em de de de Seq. de Tempo de relação relação Estados w(t ) em T w(t ) w(t SC ) à T à T SC /7 73,4 0,113s 86,2 17,48% 85,15% / ,637s ,65% 84,52% /16 396,9 10,493s 464 4,96% 85,54% / ,470s 682,9 3,69% 86,54% Para as MEFs de 5 estados, foram gerados conjuntos T com 60 seqüências de tamanho 7. O algoritmo obteve, em média, um conjunto T de tamanho 73,4. Para as MEFs de 10, 15 e 20 estados o conjunto obtido T, em média, foi de tamanho 217; 396,9 e 591, respectivamente. Em média, o conjunto T obtido pelo algoritmo de minimização possui cerca de 17,48%; 10,65%; 4,96% e 3,69% do tamanho do conjunto inicial T para as MEFs de 5, 10, 15 e 20 estados, respectivamente. Observa-se que a redução em relação ao conjunto de entrada T é considerável. Contudo, isso se deve ao fato de que foi preciso gerar um conjunto inicial T de alta cardinalidade de forma que T tivesse maior probabilidade de ser n-completo. A dificuldade de se encontrar um conjunto n-completo para uma MEF, baseia-se no fato de que não há algoritmo que verifique de forma exaustiva se um conjunto grande de tamanho é n-completo para uma MEF de 20 estados. Os algoritmos exaustivos existentes conseguem verificar a completude de um conjunto de teste para MEFs com poucos estados (no máximo, 10 estados).para efeito de comparação quanto ao tamanho do conjunto de teste obtido pelo algoritmo de minimização, foi utilizado o método de geração State Counting [Petrenko and Yevtushenko 2005]. Na Tabela 1 é fornecida a média dos tamanhos dos conjuntos de teste T SC obtidos pelo método State Counting para as mesmas MEFs. Observa-se que a minimização resultou, em média, conjuntos de teste T com 85,15%, 84,52%, 85,54% e 86,54% do tamanho dos conjuntos de teste T SC gerados pelo State Counting para as MEFs de 5, 10, 15 e 20 estados, respectivamente. A comparação com os conjuntos de teste gerados pelo método State Counting foi realizada apenas para ilustrar que o algoritmo de minimização obtém conjuntos de teste compatíveis, em relação ao tamanho, com um dos métodos de geração mais recentes. 6. Conclusão A minimização de conjuntos de casos de teste pode agilizar a etapa de teste por meio da seleção de um conjunto menor de seqüências a serem aplicadas garantindo a completude dos casos de teste. Neste artigo, um algoritmo foi proposto para realizar a minimização. Com base em condições de suficiência, a minimização ocorre de forma a manter a efetividade de um conjunto de casos de teste n-completo T. Desse modo, mesmo com uma quantidade menor de casos de teste, o conjunto resultante T T também é n-completo, garantindo a cobertura completa de erros em uma MEF. Além da minimização, pode-se utilizar o algoritmo com o intuito de verificar se um conjunto de teste T é n-completo para uma determinada 61

8 MEF. Para conjuntos de teste T de alta cardinalidade e MEFs com uma quantidade elevada de estados, o algoritmo poderia ser aplicado, já que não há algoritmo que realize tal tarefa em tempo hábil. Caso a minimização seja realizada, sabe-se que T é n-completo. Uma avaliação com MEFs reduzidas, completas e geradas aleatoriamente foi realizada. Os resultados apontam uma redução significativa de conjuntos de teste que foram obtidos de forma aleatória. Foi realizada uma comparação em relação ao tamanho dos conjuntos de teste obtidos pela minimização e os conjuntos de teste obtidos a partir de um método clássico de geração. A minimização resultou, em média, conjuntos com 85,15%, 84,52%, 85,54% e 86,54% do tamanho dos conjuntos gerados pelo método de geração para MEFs de 5, 10, 15 e 20 estados, respectivamente. O algoritmo não realiza a minimização caso um conjunto de teste não seja n- completo, ou, quando n-completo, não atenda às condições de suficiência utilizadas. Um ponto a considerar refere-se à seleção de um conjunto state cover. Em algumas situações, o algoritmo pode selecionar um conjunto state cover que não seja apropriado para atender as condições de suficiência, enquanto que um outro conjunto atenderia. Como trabalhos futuros podem-se citar a investigação de uma melhor forma de se selecionar um conjunto state cover; a utilização do algoritmo com os conjuntos de teste produzidos por métodos de geração a fim de verificar a margem de redução e a comparação do algoritmo com outros métodos de geração quanto ao tamanho dos conjuntos gerados. Referências Chow, T. S. (1978). Testing software design modeled by finite-state machines. IEEE Transactions on Software Engineering, 4(3): Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (2001). Introduction to Algorithms. Mit Press, 2nd edition. Dorofeeva, R., El-Fakih, K., Maag, S., Cavalli, A. R., and Yevtushenko, N. (2005a). Experimental evaluation of fsm-based testing methods. In Third IEEE International Conference on Software Engineering and Formal Methods, pages Dorofeeva, R., El-Fakih, K., and Yevtushenko, N. (2005b). An improved conformance testing method. In FORTE, pages Fujiwara, S., Bochman, G. V., Khendek, F., Amalou, M., and Ghedamsi, A. (1991). Test selection based on finite state models. IEEE Transactions on Software Engineering, 17(6): Garey, M. and Johnson, D. (1979). Computers and Intractability: a Guide to the Theory of NP-Completeness. Freeman, 1 edition. Gönenc, G. (1970). A method for design of fault detection experiments. IEEE Transactions on Computers, 19(6): Petrenko, A., von Bochmann, G., and Yao, M. Y. (1996). On fault coverage of tests for finite state specifications. Computer Networks and ISDN Systems, 29(1): Petrenko, A. and Yevtushenko, N. (2005). Testing from partial deterministic fsm specifications. IEEE Transactions on Computers, 54(9): Vuong, S. T., Chan, W. W. L., and Ito, M. R. (1989). The uiov-method for protocol test sequence generation. In Proc. of the IFIP TC6 2nd IWPTS, pages , North-Holland. 62

Conformidade de Protocolos

Conformidade de Protocolos XI Workshop de Testes e Tolerância a Falhas 105 Redução do Número de Seqüências no Teste de Conformidade de Protocolos Jorge Francisco Cutigi, Paulo Henrique Ribeiro, Adenilso da Silva Simão, Simone do

Leia mais

Uma Estratégia para Redução de Conjuntos de Seqüências de Teste para Máquinas de Estados Finitos. Jorge Francisco Cutigi

Uma Estratégia para Redução de Conjuntos de Seqüências de Teste para Máquinas de Estados Finitos. Jorge Francisco Cutigi Uma Estratégia para Redução de Conjuntos de Seqüências de Teste para Máquinas de Estados Finitos Jorge Francisco Cutigi SERVIÇO DE PÓS-GRADUAÇÃO DO ICMC-USP Data de Depósito: 07 de abril de 2010 Assinatura:

Leia mais

Abordagens para Problemas Intratáveis

Abordagens para Problemas Intratáveis Abordagens para Problemas Intratáveis Letícia Rodrigues Bueno UFABC Motivação Se você se depara com um problema intratável... Motivação Se você se depara com um problema intratável... I can t find an efficient

Leia mais

Teoria da Complexidade Computacional

Teoria da Complexidade Computacional Teoria da Complexidade Computacional Letícia Rodrigues Bueno UFABC Motivação Motivação I can t find an efficient algorithm, I guess I m just too dumb. Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and

Leia mais

Complexidade Assintótica de Programas Letícia Rodrigues Bueno

Complexidade Assintótica de Programas Letícia Rodrigues Bueno Complexidade Assintótica de Programas Letícia Rodrigues Bueno Análise de Algoritmos 1. Introdução; Análise de Algoritmos 1. Introdução; 2. Conceitos básicos; Análise de Algoritmos 1. Introdução; 2. Conceitos

Leia mais

Teoria da Complexidade Computacional

Teoria da Complexidade Computacional Teoria da Complexidade Computacional 25 de novembro de 2011 Enquanto a teoria de análise de algoritmos estuda a análise de complexidade de algoritmos, a teoria da complexidade estuda a classificação de

Leia mais

MGASet - Uma Ferramenta para Apoiar o Teste e

MGASet - Uma Ferramenta para Apoiar o Teste e MGASet - Uma Ferramenta para Apoiar o Teste e Validação de Especificações Baseadas em Máquinas de Estado Finito 1 Marco Arthur Pereira Candolo Adenilso da Silva Simão José Carlos Maldonado mapc, adenilso,

Leia mais

JPlavisFSM Manual de Instruções

JPlavisFSM Manual de Instruções JPlavisFSM Manual de Instruções Arineiza Cristina Pinheiro Adenilso da Silva Simão Sumário 1 Introdução 1 1.1 JPlavisFSM................................... 1 2 Conceitos 3 2.1 Conceitos Básicos................................

Leia mais

Contribuições para o Teste de Software. Adenilso da Silva Simão

Contribuições para o Teste de Software. Adenilso da Silva Simão Contribuições para o Teste de Software Adenilso da Silva Simão Contribuições para o Teste de Software Adenilso da Silva Simão Texto sistematizando o trabalho científico do candidato, apresentado ao Instituto

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 1 de novembro de 2018 Marco Antonio

Leia mais

Minimização de Conjuntos de Casos de Teste para Máquinas de Estados Finitos. Lúcio Felippe de Mello Neto

Minimização de Conjuntos de Casos de Teste para Máquinas de Estados Finitos. Lúcio Felippe de Mello Neto Minimização de Conjuntos de Casos de Teste para Máquinas de Estados Finitos Lúcio Felippe de Mello Neto SERVIÇO DE PÓS-GRADUAÇÃO DO ICMC-USP Data de Depósito: 19 de março de 2008 Assinatura: Minimização

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS

LINGUAGENS FORMAIS E AUTÔMATOS LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.

Leia mais

Problemas de otimização

Problemas de otimização Problemas de otimização Problemas de decisão: Existe uma solução satisfazendo certa propriedade? Resultado: sim ou não Problemas de otimização: Entre todas as soluções satisfazendo determinada propriedade,

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

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

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada. Autómatos de Pilha Um autómato de pilha (não determinístico) (AP) é um autómato finito não determinístico com transições ɛ, acrescido de uma memória infinita a pilha mas em que o modo de acesso à informação

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 12 Prof. Dr. Sylvio Barbon Junior Sumário - Árvore Geradora Mínima - Teorema pare reconhecer arestas seguras; - Algoritmo de Prim; - Algoritmo

Leia mais

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Pós-Graduação em Ciência da Computação DCC/ICEx/UFMG Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Observações: Pontos

Leia mais

3 Extensões dos modelos matemáticos

3 Extensões dos modelos matemáticos 3 Extensões dos modelos matemáticos Os modelos matemáticos definidos por (2-1) (2-6) e (2-7) (2-13), propostos por Achuthan e Caccetta e apresentados no Capítulo 2, são reforçados neste trabalho através

Leia mais

Emparelhamentos Máximos em Grafos Bipartidos

Emparelhamentos Máximos em Grafos Bipartidos Introdução à Teoria dos Grafos Emparelhamentos Máximos em Grafos Bipartidos Bacharelado em Ciência da Computação, DCT UFMS, 6/6/2005 Entrega em 04/07/2005 Resumo Quando estudamos emparalhementos e fatorações

Leia mais

Inteligência Artificial - IA. Resolução de problemas por meio de busca

Inteligência Artificial - IA. Resolução de problemas por meio de busca Resolução de problemas por meio de busca 1 Agente reativo - definido por ação reação Agente de resolução de problemas (ou baseado em objetivos) encontra sequencias de ações que leva ao estado desejável.

Leia mais

IV Gramáticas Livres de Contexto

IV Gramáticas Livres de Contexto IV Gramáticas Livres de Contexto Introdução Definições de GLC 1 G = (Vn, Vt, P, S) onde P = {A α A Vn α (Vn Vt) + } 2 GLC ε - LIVRE : S ε pode pertencer a P, desde que: S seja o símbolo inicial de G S

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Conversão de Expressões Regulares (ER) para Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Introdução A construção sistemática de um Autômato Finito para

Leia mais

Autómatos determísticos de k-pilhas

Autómatos determísticos de k-pilhas Autómatos determísticos de k-pilhas dados de entrada a a a3 an controlo finito (S, Σ, Γ, δ, Z, s 0, F ) δ (S Σ Γ k ) (S, (Γ ) k ) Departamento de Ciência de Computadores da FCUP MC Aula 3 Dados um estado

Leia mais

Thiago Christiano Silva

Thiago Christiano Silva Thiago Christiano Silva Conteúdo Conceitos Relevantes Problemas de Otimização Conceitos de Estabilidade e Convergência Teoremas de Lyapunov Rede Neural de Hopfield Aplicações do modelo de Hopfield Clusterização

Leia mais

INCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS

INCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS INCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS Acadêmico: Fernando Rafael Piccini Orientador: José Roque Voltolini da Silva Roteiro

Leia mais

Versão 3.1br. Foundation Level Model Based Tester

Versão 3.1br. Foundation Level Model Based Tester GLOSSÁRIO DE TERMOS Versão 3.1br Foundation Level Model Based Tester Os termos deste documento são complementares ao Glossário de Termos Núcleo Base para o exame de certificação CTFL-MBT Model Based Tester.

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Linguagens Livres de Contexto 1 Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha

Leia mais

Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática

Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática Projeto e Análise de Algoritmos Introdução Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática Projeto e Análise de Algoritmos Eu penso que o projeto de algoritmos eficientes

Leia mais

Otimização Combinatória - Parte 4

Otimização Combinatória - Parte 4 Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional

Leia mais

Problemas decidíveis para LICs

Problemas decidíveis para LICs Problemas decidíveis para LICs Dada uma gramática independente de contexto G, L(G) =? Dada uma gramática independente de contexto G, L(G) é finita? Dada uma gramática independente de contexto G, L(G) é

Leia mais

Autómatos de pilha e Gramáticas independentes de contexto

Autómatos de pilha e Gramáticas independentes de contexto Autómatos de pilha e Gramáticas independentes de contexto Proposição 15.1. A classe de linguagens aceites por autómatos de pilha está contida a classe das linguagens independentes de contexto. Dem. Seja

Leia mais

Análise e Projeto de Circuitos Combinacionais e Sequenciais

Análise e Projeto de Circuitos Combinacionais e Sequenciais Análise e Projeto de Circuitos Combinacionais e Sequenciais Referência bibliográfica: - Digital Design: Principles and Practices - Wakerly - Elementos de Eletrônica Digital Idoeta e Capuano - Introduction

Leia mais

Noções de grafos (dirigidos)

Noções de grafos (dirigidos) Noções de grafos (dirigidos) Grafo G = (V, E) é um conjunto de vértices (ou nós) V e um conjunto de arcos E V V. 1 2 5 3 4 G = ({1, 2, 3, 4, 5}, {(1, 2), (2, 3), (2, 4), (3, 2), (3, 4), (4, 4)}) Um arco

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema

Leia mais

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto. As linguagens regulares são I.C Proposição 16.1. Qualquer linguagem regular é independente de contexto. Dem. Seja L Σ uma linguagem regular, e seja r uma expressão regular tal que L = L(r).Por indução

Leia mais

Problemas decidíveis para LICs

Problemas decidíveis para LICs Problemas decidíveis para LICs Dada uma gramática independente de contexto G, L(G) =? Dada uma gramática independente de contexto G, L(G) é finita? Dada uma gramática independente de contexto G, L(G) é

Leia mais

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS Acadêmico: Cleison Vander Ambrosi Orientador: José Roque Voltolini da Silva Roteiro da Apresentação Introdução Motivação

Leia mais

Introdução a Teste de Software

Introdução a Teste de Software Universidade Católica de Pelotas Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina de Qualidade de Software Introdução a Teste de Software Prof. Luthiano Venecian 1 Conceitos Teste de software

Leia mais

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma Formas normais Em muitas aplicações, é útil que as GIC tenham regras de tipos especiais. Para tal é necessário que se possa transformar qualquer gramática numa equivalente (isto é que gere a mesma linguagem)

Leia mais

Algoritmos de aproximação - Problema de cobertura por conjuntos

Algoritmos de aproximação - Problema de cobertura por conjuntos Algoritmos de aproximação - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de 205 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M.

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

Autómatos de pilha e GIC

Autómatos de pilha e GIC Autómatos de pilha e GIC Proposição 17.1. A classe de linguagens aceites por autómatos de pilha está contida na classe das linguagens independentes de contexto. Dem. Seja L uma linguagem independente de

Leia mais

5 VNS com Filtro e Reconexão por Caminhos

5 VNS com Filtro e Reconexão por Caminhos 5 VNS com Filtro e Reconexão por Caminhos A metaheurística VNS (Variable Neighborhood Search) foi proposta por Mladenović e Hansen [40] e possui como idéia básica a mudança de vizinhanças realizada da

Leia mais

C : R I IN 0. tal que. C(α) = 0 sempre que α I {, ɛ} C(α + β) = C(α) + C(β) + 1. C(αβ) = C(α) + C(β) + 1. C(α ) = C(α) + 1.

C : R I IN 0. tal que. C(α) = 0 sempre que α I {, ɛ} C(α + β) = C(α) + C(β) + 1. C(αβ) = C(α) + C(β) + 1. C(α ) = C(α) + 1. PROPOSIÇÃO: Para cada expressão regular α R I existe um autómato finito determinista D tal que L(α) = L D. Prova (esboço): Prova-se, por indução na complexidade das expressões regulares α R I que, para

Leia mais

Algoritmos Genéticos e Evolucionários

Algoritmos Genéticos e Evolucionários Algoritmos Genéticos e Evolucionários Djalma M. Falcão COPPE/UFRJ PEE e NACAD falcao@nacad.ufrj.br http://www.nacad.ufrj.br/~falcao/ http://www.nacad.ufrj.br/~falcao/ag/ag.htm Resumo do Curso Introdução

Leia mais

n Professor n Duas Avaliações prático-teóricas: n Componente Teórico: 20 pontos n Componente Prático: 15 pontos

n Professor n Duas Avaliações prático-teóricas: n Componente Teórico: 20 pontos n Componente Prático: 15 pontos Projeto e Análise de Algoritmos Problemas e Algoritmos Altigran Soares da Silva Universidade Federal do Amazonas Instituto de Computação Sobre o Curso Professor Altigran Soares da Silva Professor Associado

Leia mais

Modelos de Computação Folha de trabalho n. 10

Modelos de Computação Folha de trabalho n. 10 Modelos de Computação Folha de trabalho n. 10 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada

Leia mais

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464 / PCC174 Departamento de Computação - UFOP Breve Revisão Programação Linear vs Programação Inteira Modelagem

Leia mais

Grafos Caminhos mais Curtos

Grafos Caminhos mais Curtos ALGORITMOS E ESTRUTURAS DE DADOS II Grafos Caminhos mais Curtos Profa. Elaine Parros Machado de Sousa adaptações: Cris.na Dutra de Aguiar Ciferri Material baseado em aulas dos professores: Gustavo Basta,

Leia mais

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os

Leia mais

Um Estudo sobre a Avaliação do Custo de Aplicação da Análise de Mutantes na Validação de Máquinas de Estados Finitos

Um Estudo sobre a Avaliação do Custo de Aplicação da Análise de Mutantes na Validação de Máquinas de Estados Finitos Um Estudo sobre a Avaliação do Custo de Aplicação da Análise de Mutantes na Validação de Máquinas de Estados Finitos Renata A. de Carvalho 1 * Sandra Camargo P. F. Fabbri 1 José Carlos Maldonado 2 1 Departamento

Leia mais

Caixa Postal 3167 CEP Criciúma, SC, Brasil

Caixa Postal 3167 CEP Criciúma, SC, Brasil Desenvolvimento e Implementação de Animações Computacionais Baseadas em Autômatos Finitos com Saída utilizando a Teoria das Categorias Daniel da Silva Fernandes 1, Christine Vieira Scarpato 1 1 Universidade

Leia mais

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos Departamento de Ciência da Computação ICEx/UFMG Teoria de Linguagens o semestre de 8 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 7/4/8 Valor: pontos. Uma versão do problema

Leia mais

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Gustavo E.A.P.A. Batista 25 de janeiro de 2005 1 Contextualização 2 Caminhos Mínimos Caminhos Mínimos de uma Origem

Leia mais

Análise de cobertura de critérios de teste estruturais a partir de conjuntos derivados de especificações formais: um estudo comparativo

Análise de cobertura de critérios de teste estruturais a partir de conjuntos derivados de especificações formais: um estudo comparativo Análise de cobertura de critérios de teste estruturais a partir de conjuntos derivados de especificações formais: um estudo comparativo Paula Fernanda R. Herculano 1, Márcio Eduardo Delamaro 2 1 Instituto

Leia mais

Tópicos de Matemática Elementar

Tópicos de Matemática Elementar Revisão Básica de Prof. Dr. José Carlos de Souza Junior Universidade Federal de Alfenas 26 de novembro de 2014 Revisão de Definição 1 (Espaço Vetorial) Um conjunto V é um espaço vetorial sobre R, se em

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

Aprendizado de Máquina. Combinando Classificadores

Aprendizado de Máquina. Combinando Classificadores Universidade Federal do Paraná (UFPR) Departamento de Informática (DInf) Aprendizado de Máquina Combinando Classificadores David Menotti, Ph.D. web.inf.ufpr.br/menotti Introdução O uso de vários classificadores

Leia mais

Linguagens e Autômatos

Linguagens e Autômatos 167657 - Controle para Automação Curso de Graduação em Engenharia de Controle e Automação Departamento de Engenharia Elétrica Universidade de Brasília Linguagens e Autômatos Geovany A. Borges gaborges@ene.unb.br

Leia mais

2.3.4 Algoritmos de SAT

2.3.4 Algoritmos de SAT 114 CAÍTULO 2. LÓGICA ROOSICIONAL 2.3.4 Algoritmos de SAT Os algoritmos de SAT (do inglês satisfiability ) têm o objectivo de determinar se uma dada fbf α é satisfazível ou não; em caso afirmativo, devolvem

Leia mais

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 5. Aplicação Prática de Autômatos Finitos

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 5. Aplicação Prática de Autômatos Finitos Curso: Ciência da Computação Turma: 6ª Série Aula 5 Aplicação Prática de Autômatos Finitos Avisos Temos aula na próxima segunda. Na outra temos revisão e na outro temos a avaliação. Somente 19 alunos/alunas

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Um pouco de Teoria dos Números

Leia mais

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01 . CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01 Créditos: alguns itens desta lista são adaptados do material da disciplina CS188 - Artificial Intelligence

Leia mais

Capítulo 2: Máquinas de Estados Finitos. Modelagem do problema. Quebra-cabeças. Newton José Vieira, Isabel Gomes Barbosa. 19 de agosto de 2010

Capítulo 2: Máquinas de Estados Finitos. Modelagem do problema. Quebra-cabeças. Newton José Vieira, Isabel Gomes Barbosa. 19 de agosto de 2010 Sumário Newton José Vieira Isabel Gomes Barbosa Departamento de Ciência da Computação Universidade Federal de Minas Gerais 9 de agosto de 2 Quebra-cabeças Modelagem do problema O Leão, o coelho e o repolho

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

8 Lógica combinacional com dispositivos programáveis

8 Lógica combinacional com dispositivos programáveis Notas de aula de MAC0329 (24) 62 8 Lógica combinacional com dispositivos programáveis 8. PLA e PAL A minimização lógica dois-níveis ganhou impulso devido aos dispositivos conhecidos como PLA (Programmable

Leia mais

Ciclos hamiltonianos e o problema do caixeiro viajante

Ciclos hamiltonianos e o problema do caixeiro viajante Ciclos hamiltonianos e o problema do caixeiro viajante Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.

Leia mais

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior.

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 08 Minimização de AFD Autômatos Finitos com saídas 25/01/2017 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula de hoje Minimização de autômatos finitos

Leia mais

B-tree. B-Trees. Estrutura do nodo da B-tree. Balanceamento. Disposição dos elementos ordenados na B-tree. Exemplo de uma B-tree de ordem 3

B-tree. B-Trees. Estrutura do nodo da B-tree. Balanceamento. Disposição dos elementos ordenados na B-tree. Exemplo de uma B-tree de ordem 3 B-tree B-Trees Material da Prof. Denise Bandeira, aula de Christian Hofsetz B-Trees são árvores balanceadas. Diferente das árvores binárias, os nós de uma B-tree podem ter um número variável de nodos filho.

Leia mais

4 Implementação Computacional

4 Implementação Computacional 4 Implementação Computacional 4.1. Introdução Neste capítulo é apresentada a formulação matemática do problema de otimização da disposição das linhas de ancoragem para minimizar os deslocamentos (offsets)

Leia mais

UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS

UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS Uma visão geral dos GAs Um algoritmo genético é uma classe de algoritmo de busca. O algoritmo procura uma solução dentro de um espaço para um problema de otimização.

Leia mais

Teste de Software. Karen Frigo Busolin Novembro / 2010

Teste de Software. Karen Frigo Busolin Novembro / 2010 Teste de Software Karen Frigo Busolin Novembro / 2010 Processo de Testes de Software Possibilitar aos profissionais maior visibilidade e organização dos trabalhos. Representa uma estruturação de etapas,

Leia mais

IA346 M Métodos de Pesquisa Para Engenharia de Computação. Atividade 07

IA346 M Métodos de Pesquisa Para Engenharia de Computação. Atividade 07 IA346 M Métodos de Pesquisa Para Engenharia de Computação Atividade 07 Nome: Janize Monteiro de Castilho RA: 150148 1. Tema de Pesquisa: Implementação de monitores para verificação de padrões de cenários

Leia mais

DETERMINAÇÃO DE FUNÇÕES DE TRANSFERÊNCIA DE PROCESSOS QUÍMICOS ATRAVÉS DO MÉTODO DE EVOLUÇÃO DIFERENCIAL UTILIZANDO O SCILAB

DETERMINAÇÃO DE FUNÇÕES DE TRANSFERÊNCIA DE PROCESSOS QUÍMICOS ATRAVÉS DO MÉTODO DE EVOLUÇÃO DIFERENCIAL UTILIZANDO O SCILAB DETERMINAÇÃO DE FUNÇÕES DE TRANSFERÊNCIA DE PROCESSOS QUÍMICOS ATRAVÉS DO MÉTODO DE EVOLUÇÃO DIFERENCIAL UTILIZANDO O SCILAB A. H. R. REZENDE 1, D. L. SOUZA 1 1 Universidade Federal do Triângulo Mineiro,

Leia mais

EXPRESSÃO REGULAR PARA UMA FUNÇÃO EQUIVALENTE EM PASCAL, UTILIZANDO DOIS ALGORITMOS BASEADOS NO TEOREMA DE KLEENE RONALD GLATZ

EXPRESSÃO REGULAR PARA UMA FUNÇÃO EQUIVALENTE EM PASCAL, UTILIZANDO DOIS ALGORITMOS BASEADOS NO TEOREMA DE KLEENE RONALD GLATZ PROTÓTIPO TIPO PARA TRANSFORMAÇÃO DE UMA EXPRESSÃO REGULAR PARA UMA FUNÇÃO EQUIVALENTE EM PASCAL, UTILIZANDO DOIS ALGORITMOS BASEADOS NO TEOREMA DE KLEENE 1 OBJETIVO DESTE TRABALHO ALGUNS CONCEITOS BÁSICOS

Leia mais

Teoria da Computação Exame 1 30 de Junho de 2003

Teoria da Computação Exame 1 30 de Junho de 2003 Licenciatura em Engenharia Informática e de Computadores Teoria da Computação Exame 1 30 de Junho de 2003 I.1 a) Considere-se a gramática regular G = (V, I, P, S) onde V = {S, A, B, C, D}, I = {x, y} e

Leia mais

Revisões de Conjuntos

Revisões de Conjuntos Revisões de Conjuntos {, {a}, {b}, {a, b}} a A a pertence a A, a é elemento de A a {a, b, c} a / A a não pertence a A d / {a, b, c} A B A contido em B, A subconjunto de B x A x B {a, b} {b, c, a} A B A

Leia mais

Algoritmos para o problema da árvore de Steiner com coleta de prêmios

Algoritmos para o problema da árvore de Steiner com coleta de prêmios Algoritmos para o problema da árvore de Steiner com coleta de prêmios Camila Mari Matsubara Orientador: Prof. Dr. José Coelho de Pina Defesa de mestrado Instituto de Matemática e Estatística Universidade

Leia mais

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01 . CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01 Créditos: alguns itens desta lista são adaptados do material da disciplina CS188 - Artificial Intelligence

Leia mais

Complexidade computacional

Complexidade computacional Complexidade computacional Marina Andretta ICMC-USP 15 de setembro de 2015 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M. R. Cerioli, R. Dahab, P. Feofiloff,

Leia mais

Aperfeiçoamento do método Clause-Column Table para a geração eficiente de implicantes primos para minimização de funções booleanas.

Aperfeiçoamento do método Clause-Column Table para a geração eficiente de implicantes primos para minimização de funções booleanas. Aperfeiçoamento do método Clause-Column Table para a geração eficiente de implicantes primos para minimização de funções booleanas. Alexandre C. R. da Silva, Caroline D. P. N. Barbieri, Depto. de Engenharia

Leia mais

4 C odigos de Huffman 4.1 Arvores de c odigo folhas os internos n ıvel altura Arvore bin aria arvore bin aria ordenada

4 C odigos de Huffman 4.1 Arvores de c odigo folhas os internos n ıvel altura Arvore bin aria arvore bin aria ordenada 4 Códigos de Huffman 4.1 Árvores de código Numa árvore qualquer, os nós que não têm filhos são chamados de folhas e os demais nós são chamados de nós internos. Se um nó de uma árvore é filho de outro,

Leia mais

LIMITANTE INFERIOR PARA O PROBLEMA DE MINIMIZAR O NÚMERO DE TROCAS DE FERRAMENTAS

LIMITANTE INFERIOR PARA O PROBLEMA DE MINIMIZAR O NÚMERO DE TROCAS DE FERRAMENTAS LIMITANTE INFERIOR PARA O PROBLEMA DE MINIMIZAR O NÚMERO DE TROCAS DE FERRAMENTAS Horacio Hideki Yanasse Instituto Nacional de Pesquisas Espaciais INPE/LAC, Avenida dos Astronautas 1758, Jardim da Granja

Leia mais

Um Estudo Empírico de Métodos Hiper-Heurísticos

Um Estudo Empírico de Métodos Hiper-Heurísticos Um Estudo Empírico de Métodos Hiper-Heurísticos Igor Ribeiro Sucupira (Aluno de Mestrado) Flávio Soares Corrêa da Silva (Orientador) Departamento de Ciência da Computação Instituto de Matemática e Estatística

Leia mais

2 Definição do Problema

2 Definição do Problema Definição do Problema. Formulação Matemática O problema do Fluxo Máximo entre todos os pares de nós surge no contexto de redes, estas representadas por grafos, e deriva-se do problema singular de fluxo

Leia mais

Projeto e Validação de Protocolos de Computadores

Projeto e Validação de Protocolos de Computadores Projeto e Validação de Protocolos de Computadores Disciplina: Especificação Formal e Validação de Protocolos de Comunicação João Borges joaoborges@great.ufc.br Orientadora: PhD. Rossana Andrade r ossana@great.ufc.br

Leia mais

AULA 4 -Probabilidade Condicional e Regra de Bayes

AULA 4 -Probabilidade Condicional e Regra de Bayes AULA 4 - e Regra de Bayes Susan Schommer Introdução à Estatística Econômica - IE/UFRJ : exemplos A soma dos resultados de dois lançamentos de um dado é 9. Qual a probabilidade do primeiro resultado ter

Leia mais

Planejamento & Escalonamento O algoritmo FF-métrico. Aldebaran Perseke 3 de abril de 2003

Planejamento & Escalonamento O algoritmo FF-métrico. Aldebaran Perseke 3 de abril de 2003 Planejamento & Escalonamento O algoritmo FF-métrico Aldebaran Perseke aldeba@ime.usp.br 3 de abril de 2003 Planejamento & Escalonamento Problemas de planejamento e escalonamento envolvem os seguintes aspectos:

Leia mais

Algoritmos em Strings (compressão de texto)

Algoritmos em Strings (compressão de texto) Algoritmos em Strings (compressão de texto) R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011 1 Teoria da Informação O que é? É uma ferramenta matemática para determinar

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 5 de dezembro de 2017 Marco Antonio

Leia mais

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron

Leia mais

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins Editor de Autômatos Finitos Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins 0 1 0 0 Roteiro da Apresentação Introdução Autômatos Finitos Desenvolvimento trabalho Considerações finais 2/31

Leia mais

Descrição da Disciplina

Descrição da Disciplina UFMG/ICEx/DCC Algoritmos e Estruturas de Dados II Descrição da Disciplina Bacharelado em Ciência da Computação 1 o Semestre de 2007 1 A disciplina Carga Horária: 60 horas Créditos: 4 Professor: Antonio

Leia mais

Modelagem e CLP Linguagens e Expressões Regulares

Modelagem e CLP Linguagens e Expressões Regulares Modelagem e CLP Linguagens e Expressões Regulares Rafael Garlet de Oliveira Instituto Federal Catarinense - IFC Câmpus Luzerna 5 de março de 2014 Rafael Garlet de Oliveira 1 / 19 Sumário 1 Linguagens Alfabetos

Leia mais

Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno

Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno UFABC Estruturas de Dados para Conjuntos Disjuntos: Introdução Estruturas de Dados para Conjuntos Disjuntos: Introdução

Leia mais

OBTENÇÃO DE IMPLICANTES PRIMOS PARA FUNÇÕES BOOLEANAS ATRAVÉS DA OPERAÇÃO DE CONSENSO

OBTENÇÃO DE IMPLICANTES PRIMOS PARA FUNÇÕES BOOLEANAS ATRAVÉS DA OPERAÇÃO DE CONSENSO OBTENÇÃO DE IMPLICANTES PRIMOS PARA FUNÇÕES BOOLEANAS ATRAVÉS DA OPERAÇÃO DE CONSENSO Alexandre César Rodrigues da Silva 1, Ivanil Sebastião Bonatti 2 e Cláudio Kitano 3 Resumo No desenvolvimento de projetos

Leia mais

2.5 FORMAS NORMAIS. Forma normal da negação

2.5 FORMAS NORMAIS. Forma normal da negação Forma normal da negação 2.5 FORMAS NORMAIS Newton José Vieira 05 de agosto de 2007 Definições preliminares: literal: variável proposicional (literal positivo) ou negação de variável proposicional (literal

Leia mais

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma Grafos Árvores espalhadas mínimas Conteúdo Introdução Como construir uma árvore geradora miníma Algoritmos Referências Introdução Dado um grafo conectado não orientado G = (V, E) e uma função peso w :

Leia mais

Definição. Os valores assumidos pelos estimadores denomina-se estimativas pontuais ou simplesmente estimativas.

Definição. Os valores assumidos pelos estimadores denomina-se estimativas pontuais ou simplesmente estimativas. 1. Inferência Estatística Inferência Estatística é o uso da informção (ou experiência ou história) para a redução da incerteza sobre o objeto em estudo. A informação pode ou não ser proveniente de um experimento

Leia mais