Halcyon Carvalho | UPE Escola politecnica de pernambuco (original) (raw)
Drafts by Halcyon Carvalho
Resumo-A Otimização por Enxame de Partículas (PSO-Particle Swarm Optimization), parte da família ... more Resumo-A Otimização por Enxame de Partículas (PSO-Particle Swarm Optimization), parte da família de inteligência de enxames, é conhecida por efetivamente resolver problemas de otimização não-linear em larga escala. Este artigo apresenta uma visão geral dos conceitos básicos do PSO e suas topologias. Ao final uma comparação do comportamento da otimização dependendo da topologia, função e peso da inércia aplica. Palavras Chaves-otimização clássica, otimização de enxame de partículas (PSO), inteligência de enxame I. INTRODUÇÃO O algoritmo de Otimização por Exame de Partículas (PSO, do inglês Particle Swarm Optimization) foi introduzido em meados da década de 90 por Kennedy e Eberhart [1], como uma alternativa ao Algoritmo Genético padrão. Conceitualmente, a PSO é uma técnica de busca estocástica que visa otimizar uma função de objetivo, sendo desenvolvida através da tentativa de simular graficamente a coreografia realizada por pássaros em busca de alimentos. Mais tarde, buscando fundamentos teóricos, foram realizados estudos sobre a maneira como indivíduos em sociedades, de uma forma geral, interagem, trocando informações e revendo seus conceitos em busca de melhores soluções para seus problemas [2]. A otimização numérica é a tarefa de determinar valores ótimos dentro de um universo de possibilidades (x ϵ Ʀ n), onde o grau de otimização é dado por uma função de avaliação (f : Ʀ n Ʀ), que pode ser linear ou não-linear [3]. No decorrer deste trabalho mostramos o potencial do mecanismo de controle de inércia da partícula, comparando seus resultados experimentais com a PSO Global. O restante do trabalho está dividido da seguinte forma: a Seção 2 apresenta uma visão geral do modelo da PSO padrão. Na Seção 3 são citados algumas topologias e seus desempenhos. A Seção 4 apresenta as funções de otimização e descreve as configurações experimentais usadas para encontrar os resultados discutidos na Seção 5. E, finalmente, a Seção 6 faz uma conclusão do trabalho. II. OTIMIZAÇÃO POR ENXAMES DE PARTÍCULA O algoritmo PSO original foi inspirado pelo comportamento social de organismos biológicos, especificamente a capacidade de grupos de algumas espécies de animais para trabalhar como um todo na localização de posições desejáveis em uma determinada área. Esse comportamento de busca foi associado ao de uma busca de otimização por soluções para equações não-lineares em um espaço de busca de valor real. A PSO não utiliza os operadores evolucionários para manipular seus indivíduos, mas uma velocidade é atribuída para cada indivíduo para a movimentação pelo espaço de busca, sofrendo o ajuste de velocidade a cada iteração, de acordo com a sua própria experiência (experiência cognitiva), a experiência das outras partículas (experiência social) do enxame e sua velocidade atual. A não execução do operador de seleção é uma característica que difere a PSO dos algoritmos genéticos, da programação evolucionária e das estratégias evolucionárias [4]. A implementação do algoritmo da PSO é dada da seguinte forma: Seja s o tamanho do enxame, n a dimensão do problema e t o instante atual, cada partícula i possui uma posição xi (t) ϵ Ʀ n no espaço de soluções e uma velocidade vi (t) ϵ Ʀ n que indica a direção e a magnitude de seu deslocamento. Adicionalmente, cada partícula possui a lembrança pi * (t) ϵ Ʀ n da melhor posição individual visitada, e o enxame possui a lembrança da melhor posição visitada por alguma partícula até então (pb * ϵ Ʀ n). No decorrer do algoritmo, a velocidade de cada partícula é calculada segundo a melhor posição visitada individual pi * , a melhor posição visitada do enxame pb e o componente que agrupa sua velocidade anterior, servindo com um termo de momentum (inércia). Assim, a atualização da velocidade de cada partícula fica de acordo com a equação (1): vi (t+1) = wvi(t) + c1r1(pi * (t)-xi(t)) + c2r2(pb * (t)-xi(t)) onde r1 e r2 são componentes aleatórias retiradas de uma distribuição uniforme entre 0 e 1, responsáveis por uma busca mais natural, como na natureza, durante o processo de otimização [1]. Já c1 e c2 são os coeficientes de aceleração, que geralmente possuem valores fixos e iguais, responsáveis por controlar a distância que uma partícula irá se mover em apenas uma iteração. O item w é o peso de inércia (termo de momentum) que multiplica a velocidade no instante t anterior e faz com que a busca seja mais explorativa no início e mais explotativa no final, para um valor inércia linearmente decrescente, como sugerido por [1]. Após a atualização da velocidade da partícula, sua posição atual sofre a atualização segundo a equação (2): xi (t + 1) = xi(t) + vi(t + 1) O processo de atualização é resumido no Algoritmo 1.
Papers by Halcyon Carvalho
International Journal of Software Engineering & Applications, 2020
As demand for computer software continually increases, software scope and complexity become highe... more As demand for computer software continually increases, software scope and complexity become higher than ever. The software industry is in real need of accurate estimates of the project under development. Software development effort estimation is one of the main processes in software project management. However, overestimation and underestimation may cause the software industry loses. This study determines which technique has better effort prediction accuracy and propose combined techniques that could provide better estimates. Eight different ensemble models to estimate effort with Ensemble Models were compared with each other base on the predictive accuracy on the Mean Absolute Residual (MAR) criterion and statistical tests. The results have indicated that the proposed ensemble models, besides delivering high efficiency in contrast to its counterparts, and produces the best responses for software project effort estimation. Therefore, the proposed ensemble models in this study will help the project managers working with development quality software.
IEEE Access
The project management process has been used in the area of Software Engineering to support proje... more The project management process has been used in the area of Software Engineering to support project managers to keep projects under control. One of the essential processes in Software Engineering is to conduct an accurate and reliable estimation of the required effort to complete the project. This article's objectives are: i) to identify the variables that influence the estimation based on the correlation, and ii) to apply the Extreme Learning Machine-ELM model for effort estimation and compare it with the literature models. Thus, it was investigated which technique has better effort prediction accuracy. The models were compared with each other based on predictive precision in the criterion of absolute mean residue (MAR) and statistical tests. The main findings in this study were: i) important variables for effort estimation and; ii) the results indicated that the ELM model presents the best results compared to the models in the literature for estimating software design effort. In this way, the use of Machine Learning techniques in the effort estimation process can increase the chances of success in the accuracy of the time estimates and the project's costs. INDEX TERMS Extreme learning machine, machine learning, effort estimation, software development, project management. WYLLIAMS SANTOS received the M.Sc. and Ph.D. degrees in computer science from the Informatics Center (CIn), Federal University of Pernambuco (UFPE), Brazil, in 2011 and 2018, respectively. From 2015 to 2016, he undertook his joint Ph.D. research with the Department of Computer Science and Information Systems (CSIS), University of Limerick, Ireland, and in collaboration with Lero-the Irish Software Research Centre. He is currently an Adjunct Professor with the University of Pernambuco (UPE), Brazil, where he leads the REACT Research Laboratories. His research interests include the management of software projects, agile software development, technical debt, and industry-academia collaboration.
Resumo-A Otimização por Enxame de Partículas (PSO-Particle Swarm Optimization), parte da família ... more Resumo-A Otimização por Enxame de Partículas (PSO-Particle Swarm Optimization), parte da família de inteligência de enxames, é conhecida por efetivamente resolver problemas de otimização não-linear em larga escala. Este artigo apresenta uma visão geral dos conceitos básicos do PSO e suas topologias. Ao final uma comparação do comportamento da otimização dependendo da topologia, função e peso da inércia aplica. Palavras Chaves-otimização clássica, otimização de enxame de partículas (PSO), inteligência de enxame I. INTRODUÇÃO O algoritmo de Otimização por Exame de Partículas (PSO, do inglês Particle Swarm Optimization) foi introduzido em meados da década de 90 por Kennedy e Eberhart [1], como uma alternativa ao Algoritmo Genético padrão. Conceitualmente, a PSO é uma técnica de busca estocástica que visa otimizar uma função de objetivo, sendo desenvolvida através da tentativa de simular graficamente a coreografia realizada por pássaros em busca de alimentos. Mais tarde, buscando fundamentos teóricos, foram realizados estudos sobre a maneira como indivíduos em sociedades, de uma forma geral, interagem, trocando informações e revendo seus conceitos em busca de melhores soluções para seus problemas [2]. A otimização numérica é a tarefa de determinar valores ótimos dentro de um universo de possibilidades (x ϵ Ʀ n), onde o grau de otimização é dado por uma função de avaliação (f : Ʀ n Ʀ), que pode ser linear ou não-linear [3]. No decorrer deste trabalho mostramos o potencial do mecanismo de controle de inércia da partícula, comparando seus resultados experimentais com a PSO Global. O restante do trabalho está dividido da seguinte forma: a Seção 2 apresenta uma visão geral do modelo da PSO padrão. Na Seção 3 são citados algumas topologias e seus desempenhos. A Seção 4 apresenta as funções de otimização e descreve as configurações experimentais usadas para encontrar os resultados discutidos na Seção 5. E, finalmente, a Seção 6 faz uma conclusão do trabalho. II. OTIMIZAÇÃO POR ENXAMES DE PARTÍCULA O algoritmo PSO original foi inspirado pelo comportamento social de organismos biológicos, especificamente a capacidade de grupos de algumas espécies de animais para trabalhar como um todo na localização de posições desejáveis em uma determinada área. Esse comportamento de busca foi associado ao de uma busca de otimização por soluções para equações não-lineares em um espaço de busca de valor real. A PSO não utiliza os operadores evolucionários para manipular seus indivíduos, mas uma velocidade é atribuída para cada indivíduo para a movimentação pelo espaço de busca, sofrendo o ajuste de velocidade a cada iteração, de acordo com a sua própria experiência (experiência cognitiva), a experiência das outras partículas (experiência social) do enxame e sua velocidade atual. A não execução do operador de seleção é uma característica que difere a PSO dos algoritmos genéticos, da programação evolucionária e das estratégias evolucionárias [4]. A implementação do algoritmo da PSO é dada da seguinte forma: Seja s o tamanho do enxame, n a dimensão do problema e t o instante atual, cada partícula i possui uma posição xi (t) ϵ Ʀ n no espaço de soluções e uma velocidade vi (t) ϵ Ʀ n que indica a direção e a magnitude de seu deslocamento. Adicionalmente, cada partícula possui a lembrança pi * (t) ϵ Ʀ n da melhor posição individual visitada, e o enxame possui a lembrança da melhor posição visitada por alguma partícula até então (pb * ϵ Ʀ n). No decorrer do algoritmo, a velocidade de cada partícula é calculada segundo a melhor posição visitada individual pi * , a melhor posição visitada do enxame pb e o componente que agrupa sua velocidade anterior, servindo com um termo de momentum (inércia). Assim, a atualização da velocidade de cada partícula fica de acordo com a equação (1): vi (t+1) = wvi(t) + c1r1(pi * (t)-xi(t)) + c2r2(pb * (t)-xi(t)) onde r1 e r2 são componentes aleatórias retiradas de uma distribuição uniforme entre 0 e 1, responsáveis por uma busca mais natural, como na natureza, durante o processo de otimização [1]. Já c1 e c2 são os coeficientes de aceleração, que geralmente possuem valores fixos e iguais, responsáveis por controlar a distância que uma partícula irá se mover em apenas uma iteração. O item w é o peso de inércia (termo de momentum) que multiplica a velocidade no instante t anterior e faz com que a busca seja mais explorativa no início e mais explotativa no final, para um valor inércia linearmente decrescente, como sugerido por [1]. Após a atualização da velocidade da partícula, sua posição atual sofre a atualização segundo a equação (2): xi (t + 1) = xi(t) + vi(t + 1) O processo de atualização é resumido no Algoritmo 1.
International Journal of Software Engineering & Applications, 2020
As demand for computer software continually increases, software scope and complexity become highe... more As demand for computer software continually increases, software scope and complexity become higher than ever. The software industry is in real need of accurate estimates of the project under development. Software development effort estimation is one of the main processes in software project management. However, overestimation and underestimation may cause the software industry loses. This study determines which technique has better effort prediction accuracy and propose combined techniques that could provide better estimates. Eight different ensemble models to estimate effort with Ensemble Models were compared with each other base on the predictive accuracy on the Mean Absolute Residual (MAR) criterion and statistical tests. The results have indicated that the proposed ensemble models, besides delivering high efficiency in contrast to its counterparts, and produces the best responses for software project effort estimation. Therefore, the proposed ensemble models in this study will help the project managers working with development quality software.
IEEE Access
The project management process has been used in the area of Software Engineering to support proje... more The project management process has been used in the area of Software Engineering to support project managers to keep projects under control. One of the essential processes in Software Engineering is to conduct an accurate and reliable estimation of the required effort to complete the project. This article's objectives are: i) to identify the variables that influence the estimation based on the correlation, and ii) to apply the Extreme Learning Machine-ELM model for effort estimation and compare it with the literature models. Thus, it was investigated which technique has better effort prediction accuracy. The models were compared with each other based on predictive precision in the criterion of absolute mean residue (MAR) and statistical tests. The main findings in this study were: i) important variables for effort estimation and; ii) the results indicated that the ELM model presents the best results compared to the models in the literature for estimating software design effort. In this way, the use of Machine Learning techniques in the effort estimation process can increase the chances of success in the accuracy of the time estimates and the project's costs. INDEX TERMS Extreme learning machine, machine learning, effort estimation, software development, project management. WYLLIAMS SANTOS received the M.Sc. and Ph.D. degrees in computer science from the Informatics Center (CIn), Federal University of Pernambuco (UFPE), Brazil, in 2011 and 2018, respectively. From 2015 to 2016, he undertook his joint Ph.D. research with the Department of Computer Science and Information Systems (CSIS), University of Limerick, Ireland, and in collaboration with Lero-the Irish Software Research Centre. He is currently an Adjunct Professor with the University of Pernambuco (UPE), Brazil, where he leads the REACT Research Laboratories. His research interests include the management of software projects, agile software development, technical debt, and industry-academia collaboration.