Please use this identifier to cite or link to this item: http://hdl.handle.net/10773/26911
Title: On the use of advanced optimization methods in mechanical design
Other Titles: Análise de métodos de otimização avançados em projeto mecânico
Author: Oliveira, Miguel Jorge Guimarães de
Advisor: Campos, António Gil d'Orey de Andrade
Oliveira, João Alexandre Dias de
Keywords: Advanced optimization methods
Mechanical design
Programming languages
Parallel processing
Defense Date: 28-Nov-2018
Abstract: Advanced optimization methods are widely applied to mechanical design, mainly for its abilities to solve complex problems that traditional optimization techniques such as gradient-based methods do not present. With its increasing popularity, the number of algorithms found in the literature is vast. In this work three algorithms are implemented, namely Particle Swarm Optimization (PSO), Differential Evolution (DE) and Teaching-Learning- Based Optimization (TLBO). Firstly, the application of these algorithms is analyzed for a composition function benchmark and three mechanical design minimization problems (the weight of a speed reducer, the volume of a three-bar truss and the area of a square plate with a cut-out hole). Furthermore, as the scope of available algorithms increases, the choice of programming tools to implement them is also vast, and generally made considering subjective criteria or difficulties in using enhancing strategies such as parallel processing. Thereby an analysis of programming tools applied to metaheuristic algorithms is carried out using four programming languages with distinct characteristics: Python, MATLAB, Java and C++. The selected algorithms and problems are coded using each programming language, which are initially compared in a sequential processing implementation. Additionally, in order to analyze potential gains in performance, parallel processing procedures are implemented using features of each programming language. The application of the algorithms to the mechanical design problems demonstrates good results in the achieved solutions. In what concerns to the computational time, sequential and processing results present considerable differences between programming languages while the implementation of parallel processing procedures demonstrates significant benefits for complex problems.
Métodos avançados de otimização têm sido amplamente aplicados ao projeto mecânico, principalmente pela sua capacidade de resolver problemas complexos que técnicas tradicionais de otimização como os métodos baseados em gradiente não apresentam. Devido à sua crescente popularidade, o número de algoritmos encontrados na literatura é vasto. Neste trabalho são implementados três algoritmos distintos, Otimização por Bando de Partículas (PSO), Evolução Diferencial (DE) e Otimização Baseada no Ensino-Aprendizagem (TLBO). Inicialmente, a aplicação destes algoritmos é analisada numa função composta e em três problemas de minimização de projeto mecânico (o peso de um redutor de velocidade, o volume de uma estrutura de três barras e a área de uma placa quadrada com um furo circular). Além disso, com o aumento do número de algoritmos existentes, a escolha de ferramentas de programação para implementá-los também é vasta e geralmente feita considerando critérios subjetivos ou dificuldades no uso de estratégias de melhoria como processamento paralelo. Deste modo, no presente trabalho é realizada uma análise de ferramentas de programação aplicadas a algoritmos metaheurísticos, utilizando linguagens de programação com distintas características: Python, MATLAB, Java e C++. Os algoritmos e problemas selecionados são programados em cada linguagem de programação, e inicialmente comparados numa implementação de processamento sequencial. Além disso, de forma a analisar possíveis ganhos de desempenho, são implementados procedimentos de processamento paralelo utilizando recursos de cada linguagem de programação. A aplicação dos algoritmos aos problemas de projeto mecânico demonstra bons resultados nas soluções obtidas. Os resultados, em termos de tempo computacional, de processamento sequencial e paralelo, apresentam diferenças consideráveis entre as linguagens de programação. A implementação de procedimentos de processamento paralelo demonstra benefícios significativos em problemas complexos.
URI: http://hdl.handle.net/10773/26911
Appears in Collections:DEM - Dissertações de mestrado
UA - Dissertações de mestrado

Files in This Item:
File Description SizeFormat 
documento.pdf4.94 MBAdobe PDFView/Open


FacebookTwitterLinkedIn
Formato BibTex MendeleyEndnote Degois 

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.