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.Mestrado em Engenharia Mecânic