910 resultados para TDP, Travelling Deliveryman Problem, Algoritmi di ottimizzazione
Resumo:
La tesi tratta aspetti relativi all'ottimizzazione strutturale. Algoritmi di ottimizzazione scritti in linguaggio di programmazione Python, sia basati sul metodo del simplesso che di tipo gentico, sono stati integrati in ambiente Salome-Meca/CAE ed applicati ad esempi di interesse strutturale.
Resumo:
The aim of this Doctoral Thesis is to develop a genetic algorithm based optimization methods to find the best conceptual design architecture of an aero-piston-engine, for given design specifications. Nowadays, the conceptual design of turbine airplanes starts with the aircraft specifications, then the most suited turbofan or turbo propeller for the specific application is chosen. In the aeronautical piston engines field, which has been dormant for several decades, as interest shifted towards turboaircraft, new materials with increased performance and properties have opened new possibilities for development. Moreover, the engine’s modularity given by the cylinder unit, makes it possible to design a specific engine for a given application. In many real engineering problems the amount of design variables may be very high, characterized by several non-linearities needed to describe the behaviour of the phenomena. In this case the objective function has many local extremes, but the designer is usually interested in the global one. The stochastic and the evolutionary optimization techniques, such as the genetic algorithms method, may offer reliable solutions to the design problems, within acceptable computational time. The optimization algorithm developed here can be employed in the first phase of the preliminary project of an aeronautical piston engine design. It’s a mono-objective genetic algorithm, which, starting from the given design specifications, finds the engine propulsive system configuration which possesses minimum mass while satisfying the geometrical, structural and performance constraints. The algorithm reads the project specifications as input data, namely the maximum values of crankshaft and propeller shaft speed and the maximal pressure value in the combustion chamber. The design variables bounds, that describe the solution domain from the geometrical point of view, are introduced too. In the Matlab® Optimization environment the objective function to be minimized is defined as the sum of the masses of the engine propulsive components. Each individual that is generated by the genetic algorithm is the assembly of the flywheel, the vibration damper and so many pistons, connecting rods, cranks, as the number of the cylinders. The fitness is evaluated for each individual of the population, then the rules of the genetic operators are applied, such as reproduction, mutation, selection, crossover. In the reproduction step the elitist method is applied, in order to save the fittest individuals from a contingent mutation and recombination disruption, making it undamaged survive until the next generation. Finally, as the best individual is found, the optimal dimensions values of the components are saved to an Excel® file, in order to build a CAD-automatic-3D-model for each component of the propulsive system, having a direct pre-visualization of the final product, still in the engine’s preliminary project design phase. With the purpose of showing the performance of the algorithm and validating this optimization method, an actual engine is taken, as a case study: it’s the 1900 JTD Fiat Avio, 4 cylinders, 4T, Diesel. Many verifications are made on the mechanical components of the engine, in order to test their feasibility and to decide their survival through generations. A system of inequalities is used to describe the non-linear relations between the design variables, and is used for components checking for static and dynamic loads configurations. The design variables geometrical boundaries are taken from actual engines data and similar design cases. Among the many simulations run for algorithm testing, twelve of them have been chosen as representative of the distribution of the individuals. Then, as an example, for each simulation, the corresponding 3D models of the crankshaft and the connecting rod, have been automatically built. In spite of morphological differences among the component the mass is almost the same. The results show a significant mass reduction (almost 20% for the crankshaft) in comparison to the original configuration, and an acceptable robustness of the method have been shown. The algorithm here developed is shown to be a valid method for an aeronautical-piston-engine preliminary project design optimization. In particular the procedure is able to analyze quite a wide range of design solutions, rejecting the ones that cannot fulfill the feasibility design specifications. This optimization algorithm could increase the aeronautical-piston-engine development, speeding up the production rate and joining modern computation performances and technological awareness to the long lasting traditional design experiences.
Resumo:
Combustion control is one of the key factors to obtain better performances and lower pollutant emissions for diesel, spark ignition and HCCI engines. An algorithm that allows estimating, as an example, the mean indicated torque for each cylinder, could be easily used in control strategies, in order to carry out cylinders trade-off, control the cycle to cycle variation, or detect misfires. A tool that allows evaluating the 50% of Mass Fraction Burned (MFB50), or the net Cumulative Heat Release (CHRNET), or the ROHR peak value (Rate of Heat Release), could be used to optimize spark advance or to detect knock in gasoline engines and to optimize injection pattern in diesel engines. Modern management systems are based on the control of the mean indicated torque produced by the engine: they need a real or virtual sensor in order to compare the measured value with the target one. Many studies have been performed in order to obtain an accurate and reliable over time torque estimation. The aim of this PhD activity was to develop two different algorithms: the first one is based on the instantaneous engine speed fluctuations measurement. The speed signal is picked up directly from the sensor facing the toothed wheel mounted on the engine for other control purposes. The engine speed fluctuation amplitudes depend on the combustion and on the amount of torque delivered by each cylinder. The second algorithm processes in-cylinder pressure signals in the angular domain. In this case a crankshaft encoder is not necessary, because the angular reference can be obtained using a standard sensor wheel. The results obtained with these two methodologies are compared in order to evaluate which one is suitable for on board applications, depending on the accuracy required.
Resumo:
I moderni sistemi embedded sono equipaggiati con risorse hardware che consentono l’esecuzione di applicazioni molto complesse come il decoding audio e video. La progettazione di simili sistemi deve soddisfare due esigenze opposte. Da un lato è necessario fornire un elevato potenziale computazionale, dall’altro bisogna rispettare dei vincoli stringenti riguardo il consumo di energia. Uno dei trend più diffusi per rispondere a queste esigenze opposte è quello di integrare su uno stesso chip un numero elevato di processori caratterizzati da un design semplificato e da bassi consumi. Tuttavia, per sfruttare effettivamente il potenziale computazionale offerto da una batteria di processoriè necessario rivisitare pesantemente le metodologie di sviluppo delle applicazioni. Con l’avvento dei sistemi multi-processore su singolo chip (MPSoC) il parallel programming si è diffuso largamente anche in ambito embedded. Tuttavia, i progressi nel campo della programmazione parallela non hanno mantenuto il passo con la capacità di integrare hardware parallelo su un singolo chip. Oltre all’introduzione di multipli processori, la necessità di ridurre i consumi degli MPSoC comporta altre soluzioni architetturali che hanno l’effetto diretto di complicare lo sviluppo delle applicazioni. Il design del sottosistema di memoria, in particolare, è un problema critico. Integrare sul chip dei banchi di memoria consente dei tempi d’accesso molto brevi e dei consumi molto contenuti. Sfortunatamente, la quantità di memoria on-chip che può essere integrata in un MPSoC è molto limitata. Per questo motivo è necessario aggiungere dei banchi di memoria off-chip, che hanno una capacità molto maggiore, come maggiori sono i consumi e i tempi d’accesso. La maggior parte degli MPSoC attualmente in commercio destina una parte del budget di area all’implementazione di memorie cache e/o scratchpad. Le scratchpad (SPM) sono spesso preferite alle cache nei sistemi MPSoC embedded, per motivi di maggiore predicibilità, minore occupazione d’area e – soprattutto – minori consumi. Per contro, mentre l’uso delle cache è completamente trasparente al programmatore, le SPM devono essere esplicitamente gestite dall’applicazione. Esporre l’organizzazione della gerarchia di memoria ll’applicazione consente di sfruttarne in maniera efficiente i vantaggi (ridotti tempi d’accesso e consumi). Per contro, per ottenere questi benefici è necessario scrivere le applicazioni in maniera tale che i dati vengano partizionati e allocati sulle varie memorie in maniera opportuna. L’onere di questo compito complesso ricade ovviamente sul programmatore. Questo scenario descrive bene l’esigenza di modelli di programmazione e strumenti di supporto che semplifichino lo sviluppo di applicazioni parallele. In questa tesi viene presentato un framework per lo sviluppo di software per MPSoC embedded basato su OpenMP. OpenMP è uno standard di fatto per la programmazione di multiprocessori con memoria shared, caratterizzato da un semplice approccio alla parallelizzazione tramite annotazioni (direttive per il compilatore). La sua interfaccia di programmazione consente di esprimere in maniera naturale e molto efficiente il parallelismo a livello di loop, molto diffuso tra le applicazioni embedded di tipo signal processing e multimedia. OpenMP costituisce un ottimo punto di partenza per la definizione di un modello di programmazione per MPSoC, soprattutto per la sua semplicità d’uso. D’altra parte, per sfruttare in maniera efficiente il potenziale computazionale di un MPSoC è necessario rivisitare profondamente l’implementazione del supporto OpenMP sia nel compilatore che nell’ambiente di supporto a runtime. Tutti i costrutti per gestire il parallelismo, la suddivisione del lavoro e la sincronizzazione inter-processore comportano un costo in termini di overhead che deve essere minimizzato per non comprometterre i vantaggi della parallelizzazione. Questo può essere ottenuto soltanto tramite una accurata analisi delle caratteristiche hardware e l’individuazione dei potenziali colli di bottiglia nell’architettura. Una implementazione del task management, della sincronizzazione a barriera e della condivisione dei dati che sfrutti efficientemente le risorse hardware consente di ottenere elevate performance e scalabilità. La condivisione dei dati, nel modello OpenMP, merita particolare attenzione. In un modello a memoria condivisa le strutture dati (array, matrici) accedute dal programma sono fisicamente allocate su una unica risorsa di memoria raggiungibile da tutti i processori. Al crescere del numero di processori in un sistema, l’accesso concorrente ad una singola risorsa di memoria costituisce un evidente collo di bottiglia. Per alleviare la pressione sulle memorie e sul sistema di connessione vengono da noi studiate e proposte delle tecniche di partizionamento delle strutture dati. Queste tecniche richiedono che una singola entità di tipo array venga trattata nel programma come l’insieme di tanti sotto-array, ciascuno dei quali può essere fisicamente allocato su una risorsa di memoria differente. Dal punto di vista del programma, indirizzare un array partizionato richiede che ad ogni accesso vengano eseguite delle istruzioni per ri-calcolare l’indirizzo fisico di destinazione. Questo è chiaramente un compito lungo, complesso e soggetto ad errori. Per questo motivo, le nostre tecniche di partizionamento sono state integrate nella l’interfaccia di programmazione di OpenMP, che è stata significativamente estesa. Specificamente, delle nuove direttive e clausole consentono al programmatore di annotare i dati di tipo array che si vuole partizionare e allocare in maniera distribuita sulla gerarchia di memoria. Sono stati inoltre sviluppati degli strumenti di supporto che consentono di raccogliere informazioni di profiling sul pattern di accesso agli array. Queste informazioni vengono sfruttate dal nostro compilatore per allocare le partizioni sulle varie risorse di memoria rispettando una relazione di affinità tra il task e i dati. Più precisamente, i passi di allocazione nel nostro compilatore assegnano una determinata partizione alla memoria scratchpad locale al processore che ospita il task che effettua il numero maggiore di accessi alla stessa.
Resumo:
L’obiettivo di questo lavoro di tesi è stato quello di definire degli algoritmi in grado di comprendere le prestazioni raggiungibili dalla tecnica NFER alternativa in termini di ranging e accuratezza e, di conseguenza, dedurre se il sistema sia utilizzabile o meno.
Resumo:
La tesi è l'esito di un lavoro di studio e ricerca nell'ambito della gestione delle sale operatorie, uno dei problemi principali su cui si sono focalizzati gli studi di Ricerca Operativa, applicati ai sistemi sanitari, sviluppati nell'ultimo decennio. Vengono presentati i due modelli di ottimizzazione creati al fine di migliorare l'efficienza organizzativa delle pianificazioni degli interventi chirurgici di un presidio ospedaliero. I due modelli, uno teorico e l'altro implementato con istanze reali, si distinguono dalle ricerche presenti in letteratura per l'innovativa proposta di pianificare attività preoperatorie che contribuiscano a raggiungere una miglior efficienza e la diminuzione dei costi delle pratiche chirurgiche.
Resumo:
La Tomografia Computerizzata (TC) perfusionale rappresenta attualmente una importante tecnica di imaging radiologico in grado di fornire indicatori funzionali di natura emodinamica relativi alla vascolarizzazione dei tessuti investigati. Le moderne macchine TC consentono di effettuare analisi funzionali ad una elevata risoluzione spaziale e temporale, provvedendo ad una caratterizzazione più accurata di zone di interesse clinico attraverso l’analisi dinamica della concentrazione di un mezzo di contrasto, con dosi contenute per il paziente. Tale tecnica permette potenzialmente di effettuare una valutazione precoce dell’efficacia di trattamenti antitumorali, prima ancora che vengano osservate variazioni morfologiche delle masse tumorali, con evidenti benefici prognostici. I principali problemi aperti in questo campo riguardano la standardizzazione dei protocolli di acquisizione e di elaborazione delle sequenze perfusionali, al fine di una validazione accurata e consistente degli indicatori funzionali nella pratica clinica. Differenti modelli matematici sono proposti in letteratura al fine di determinare parametri di interesse funzionale a partire dall’analisi del profilo dinamico del mezzo di contrasto in differenti tessuti. Questa tesi si propone di studiare, attraverso l’analisi e l’elaborazione di sequenze di immagini derivanti da TC assiale perfusionale, due importanti modelli matematici di stima della perfusione. In particolare, vengono presentati ed analizzati il modello del massimo gradiente ed il modello deconvoluzionale, evidenziandone tramite opportune simulazioni le particolarità e le criticità con riferimento agli artefatti più importanti che influenzano il protocollo perfusionale. Inoltre, i risultati ottenuti dall’analisi di casi reali riguardanti esami perfusionali epatici e polmonari sono discussi al fine di valutare la consistenza delle misure quantitative ottenute tramite i due metodi con le considerazioni di natura clinica proposte dal radiologo.
Resumo:
Recenti studi hanno evidenziato come il cammino in ambiente acquatico possa portare a notevoli benefici nell’ambito di un processo riabilitativo: il cammino in acqua è infatti oggi considerato una delle principali terapie per pazienti con disturbi nella deambulazione, oltre ad essere impiegato per migliorare il recupero a seguito di interventi ed infortuni. Una caratterizzazione biomeccanica del cammino umano in acqua permetterebbe tuttavia di giungere a una conoscenza più approfondita degli effetti di quest’attività sul processo riabilitativo, e dunque a una sua prescrizione più mirata come parte delle terapie. Nonostante il crescente interesse, uno dei motivi per cui ancora pochi studi sono stati condotti in questo senso risiede nell’inadeguatezza di molti dei tradizionali sistemi di Motion Capture rispetto all’impiego subacqueo. La nuova branca della Markerless Motion Capture potrebbe invece in questo senso rappresentare una soluzione. In particolare, ci si occuperà in questo lavoro di tesi della tecnica markerless basata sulla ricostruzione del visual hull per retroproiezione delle silhouette. Il processo iniziale che permette di ottenere le silhouette dai video delle acquisizioni è detto segmentazione, la quale è anche una fase particolarmente importante per ottenere una buona accuratezza finale nella ricostruzione della cinematica articolare. Si sono pertanto sviluppati e caratterizzati in questo lavoro di tesi sette algoritmi di segmentazione, nati specificamente nell’ottica dell’analisi del cammino in acqua con tecnica markerless. Si mostrerà inoltre come determinate caratteristiche degli algoritmi influenzino la qualità finale della segmentazione, e sarà infine presentato un ulteriore algoritmo di post-processing per il miglioramento della qualità delle immagini segmentate.