3 resultados para EBWorld, Java, Offline, XML, GIS
em Instituto Politécnico do Porto, Portugal
Resumo:
Finding the optimal value for a problem is usual in many areas of knowledge where in many cases it is needed to solve Nonlinear Optimization Problems. For some of those problems it is not possible to determine the expression for its objective function and/or its constraints, they are the result of experimental procedures, might be non-smooth, among other reasons. To solve such problems it was implemented an API contained methods to solve both constrained and unconstrained problems. This API was developed to be used either locally on the computer where the application is being executed or remotely on a server. To obtain the maximum flexibility both from the programmers’ and users’ points of view, problems can be defined as a Java class (because this API was developed in Java) or as a simple text input that is sent to the API. For this last one to be possible it was also implemented on the API an expression evaluator. One of the drawbacks of this expression evaluator is that it is slower than the Java native code. In this paper it is presented a solution that combines both options: the problem can be expressed at run-time as a string of chars that are converted to Java code, compiled and loaded dynamically. To wide the target audience of the API, this new expression evaluator is also compatible with the AMPL format.
Resumo:
Atualmente a vantagem competitiva de uma empresa passa pela sua rápida adaptação às variações de procura do mercado, sendo necessário garantir elevados níveis de produtividade e, simultaneamente, grande flexibilidade, indispensável ao fabrico de pequenos lotes. A necessidade de ajuste do processo e a diminuição da média de vida do produto levam a paragens cada vez mais frequentes da célula de fabrico para programação e afinação, com consequentes perdas de produtividade. De forma a dar resposta a estes problemas, neste trabalho é testada a viabilidade da utilização da programação e simulação offline de tarefas de lixamento na Grohe Portugal, complementando a solução com o desenvolvimento de um novo método de afinação do programa, permitindo uma adaptação às flutuações do processo produtivo. Para isso foi necessário analisar o estado da arte dos robôs industriais na área de acabamento superficial e respetivos métodos de programação. Em seguida, após um trabalho prévio rigoroso de preparação e modelação da célula de trabalho, é possível fazer a programação offline das várias rotinas e trajetórias complexas que compõem um ciclo de lixamento de um produto, contribuindo para o aumento da qualidade do produto final sem comprometer os níveis de produtividade. Nesta dissertação são descritos e detalhados alguns dos procedimentos fulcrais no sucesso da aplicação deste método de programação. Por último é feita uma nova abordagem ao método de ajuste ponto-a-ponto convencional, desenvolvendo-se para isso um sistema de ajuste automático do programa, dotando o robô da capacidade de se adaptar às variações do processo, assegurando a consistência do mesmo. Foram realizados testes em pequena escala, extrapolando-se os resultados para a aplicação deste novo método no processo produtivo da Grohe Portugal, como forma de complemento ao método convencional de ajuste ponto-a-ponto do programa, reduzindo o tempo de paragem da célula de trabalho.
Resumo:
As plataformas com múltiplos núcleos tornaram a programação paralela/concorrente num tópico de interesse geral. Diversos modelos de programação têm vindo a ser propostos, facilitando aos programadores a identificação de regiões de código potencialmente paralelizáveis, deixando ao sistema operativo a tarefa de as escalonar dinamicamente em tempo de execução, explorando o maior grau possível de paralelismo. O Java não foge a esta tendência, disponibilizando ao programador um número crescente de bibliotecas de mecanismos de sincronização e paralelização de código. Neste contexto, esta tese apresenta e discute um conjunto de resultados obtidos através de testes intensivos à eficiência de algoritmos de ordenação implementados com recurso aos mecanismos de concorrência da API do Java 8 (Threads, Threadpools, ExecutorService, CountdownLach, ExecutorCompletionService e ForkJoinPools) em sistemas com um número de núcleos variável. Para cada um dos mecanismos, são apresentadas conclusões sobre o seu funcionamento e discutidos os cenários em que o seu uso pode ser rentabilizado de modo a serem obtidos melhores tempos de execução.