Minimização de Conjuntos de Casos de Teste por meio de
|
|
- Luzia Pedroso
- 5 Há anos
- Visualizações:
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
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 maisUma 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 maisAbordagens 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 maisTeoria 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 maisComplexidade 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 maisTeoria 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 maisMGASet - 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 maisJPlavisFSM 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 maisContribuiçõ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 maisPCC104 - 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 maisMinimizaçã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 maisLINGUAGENS 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 maisProblemas 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 maisBCC204 - 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 maisCapí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 maisAutó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 mais5COP096 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 maisTeoria 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 mais3 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 maisEmparelhamentos 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 maisInteligê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 maisIV 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 maisLinguagens 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 maisAutó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 maisThiago 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 maisINCLUSÃ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 maisVersã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 maisLinguagens 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 maisProjeto 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 maisOtimizaçã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 maisProblemas 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 maisAutó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 maisAná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 maisNoçõ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 mais5COP096 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 maisAs 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 maisProblemas 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 maisTRANSFORMAÇÃ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 maisIntroduçã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 maisFormas 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 maisAlgoritmos 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 maisLinguagens 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 maisAutó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 mais5 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 maisC : 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 maisAlgoritmos 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 maisn 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 maisModelos 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 maisAula 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 maisGrafos 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 maisO 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 maisUm 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 maisCaixa 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 maisTeoria 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 maisProva 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 maisAná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 maisTó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 maisUm 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 maisAprendizado 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 maisLinguagens 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 mais2.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 maisCurso: 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 maisComplexidade 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 maisCEFET/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 maisCapí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 maisCapí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 mais8 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 maisCiclos 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 maisLFA 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 maisB-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 mais4 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 maisUMA 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 maisTeste 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 maisIA346 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 maisDETERMINAÇÃ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 maisEXPRESSÃ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 maisTeoria 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 maisRevisõ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 maisAlgoritmos 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 maisCEFET/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 maisComplexidade 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 maisAperfeiç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 mais4 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 maisLIMITANTE 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 maisUm 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 mais2 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 maisProjeto 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 maisAULA 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 maisPlanejamento & 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 maisAlgoritmos 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 maisPCC104 - 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 maisESTRUTURAS 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 maisEditor 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 maisDescriçã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 maisModelagem 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 maisEstruturas 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 maisOBTENÇÃ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 mais2.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 maisGrafos. 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 maisDefiniçã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