901 resultados para programming style
Resumo:
Thèse doctorale effectuée en cotutelle au département d'histoire de l'Université de Montréal et à l'École doctorale d'archéologie de l'Université Paris 1 Panthéon-Sorbonne - UMR 7041, Archéologies et Sciences de l'Antiquité - Archéologie du monde grec.
Resumo:
La programmation linéaire en nombres entiers est une approche robuste qui permet de résoudre rapidement de grandes instances de problèmes d'optimisation discrète. Toutefois, les problèmes gagnent constamment en complexité et imposent parfois de fortes limites sur le temps de calcul. Il devient alors nécessaire de développer des méthodes spécialisées afin de résoudre approximativement ces problèmes, tout en calculant des bornes sur leurs valeurs optimales afin de prouver la qualité des solutions obtenues. Nous proposons d'explorer une approche de reformulation en nombres entiers guidée par la relaxation lagrangienne. Après l'identification d'une forte relaxation lagrangienne, un processus systématique permet d'obtenir une seconde formulation en nombres entiers. Cette reformulation, plus compacte que celle de Dantzig et Wolfe, comporte exactement les mêmes solutions entières que la formulation initiale, mais en améliore la borne linéaire: elle devient égale à la borne lagrangienne. L'approche de reformulation permet d'unifier et de généraliser des formulations et des méthodes de borne connues. De plus, elle offre une manière simple d'obtenir des reformulations de moins grandes tailles en contrepartie de bornes plus faibles. Ces reformulations demeurent de grandes tailles. C'est pourquoi nous décrivons aussi des méthodes spécialisées pour en résoudre les relaxations linéaires. Finalement, nous appliquons l'approche de reformulation à deux problèmes de localisation. Cela nous mène à de nouvelles formulations pour ces problèmes; certaines sont de très grandes tailles, mais nos méthodes de résolution spécialisées les rendent pratiques.
Resumo:
Cette étude porte sur un type de cinéma italien appelé giallo. Ayant connu une forte popularité au tournant des années 1970 auprès d’un public dit vernaculaire, ces thrillers horrifiques sont encore aujourd’hui réputés pour leurs scènes de meurtre sanglantes et spectaculaires mettant à l’honneur un assassin ganté. Ce mémoire se propose de faire le point sur ces séquences de meurtre et surtout d’expliquer la façon particulière avec laquelle elles sont mises en scène. Pour bien y parvenir, nous en fournissons tout au long des exemples et les soumettons à une analyse détaillée. Notre approche analytique se veut essentiellement formaliste. Il s’agit de déconstruire ces scènes violentes afin d’en révéler certains des rouages. Dans un premier temps, nous rappelons quelques notions fondamentales du cinéma gore et nous penchons sur la problématique que pose invariablement la représentation de la mort au grand écran. Ceci nous permet ensuite d’observer plus amplement comment les réalisateurs du giallo traitent ces scènes d’homicide sur un mode excessif et poétique. Enfin, le rapport érotique à la violence entretenu dans ces scènes est considéré. Cela nous donne notamment l’occasion de nous intéresser à la figure du mannequin (vivant et non vivant) et de voir de quelles manières les cinéastes peuvent par son entremise transmettre un sentiment d’inquiétante étrangeté.
Resumo:
Thèse soutenue le 27 février 2015 devant un jury composé par Marie-Hélène Benoit-Otis (présidente, Université de Montréal), François de Médicis (Université de Montréal), Christopher Moore (Université d'Ottawa) et Michel Duchesneau (Université de Montréal).
Resumo:
La problématique délinquance et toxicomanie est évoquée quotidiennement dans les médias nord-américains. Les auteurs s'interrogent sur ce lien drogue-crime et présentent l'évolution du concept de déviance. Ils terminent par l'analyse de ce « style de vie déviant ».
Resumo:
Au commencement était le style, et le style était monolithique, et le monolithe était style. Mais au commencement de quels commencements? L’Odyssée immémoriale d’Homère ou celle, postmémorielle, de Stanley Kubrick? L’odyssée qui nous fait traverser les eaux troubles du Léthé ou celle qui nous plonge dans la source solennelle du Styx? Le style descendant sur terre sous la forme d’un monolithe pour accélérer le développement de la parole chez les hommes singes ou celui, létal, remontant le fleuve héraclitéen afin de la ravir, tel le feu prométhéen, aux sages femmes? Premier postulat axiologique : la question du style est elle-même une question de style. Impossible de la soulever sans d’abord reconnaître qu’elle dépend de sa formulation dans l’avancement hasardeux d’une réponse. C’est pourtant ce à quoi je vais m’employer, avec ou sans style, dans les pages qui suivent. À défaut de répondre à la question « qu’est-ce que le style? » ou « qu’en est-il du style aujourd’hui? », je veux interroger le style comme opération herméneutique manœuvrant entre forme et sens. La question ainsi reformulée devient : que peut faire le style? [Introduction]
Resumo:
Successful management is dependent heavily on the manager’s ability to handle conflict effectively. The workforce has been increasingly becoming diversified vis-à-vis the gender, culture and ethnicity. The present work environment has in itself contributed to sowing seeds of conflict with greater diversity, hostility, complexity and newer business competencies in the work context.The classic study of Mintzberg’s Managerial roles approach (1973) also says that a manager has to spend sufficient time and energy in solving conflict as he has to take roles as a negotiator, and dispute handler. An understanding of the conflict and role that it plays in influencing employee behavior constructively or destructively is immense. Therefore conflict when left unmanaged can lead to diminished cohesiveness amongst employees, productivity and reduced organizational fitness. To manage conflict effective conflict resolution strategies that have constructive outcomes is called for. Conflict resolution style theorists opine that collaborative or integrative style, where there is high concern for task and people is considered to give positive individual and organizational outcomes, while the withdrawing /avoidance style and forcing / dominating style are considered to be ineffective in managing conflict. Though managers have typical preferences in the styles followed it need not necessarily be the typical response as it depends on the context, power relationships, emotions etc. The adoption of conflict styles of managers however is dependent on variables like gender orientation, cultural values, personality orientation, underlying relationships – public/private. The paper attempts to draw the importance of managing conflicts at workplace positively and the need for effective conflict resolution strategies. The conflict style adopted and the variables that affect the adoption of each style are discussed and possible interventions at the workplace are suggested
Resumo:
In order to minimize the risk of failures or major renewals of hull structures during the ship's expected life span, it is imperative that the precaution must be taken with regard to an adequate margin of safety against any one or combination of failure modes including excessive yielding, buckling, brittle fracture, fatigue and corrosion. The most efficient system for combating underwater corrosion is 'cathodic protection'. The basic principle of this method is that the ship's structure is made cathodic, i.e. the anodic (corrosion) reactions are suppressed by the application of an opposing current and the ship is there by protected. This paper deals with state of art in cathodic protection and its programming in ship structure
Resumo:
This paper describes our plans to evaluate the present state of affairs concerning parallel programming and its systems. Three subprojects are proposed: a survey among programmers and scientists, a comparison of parallel programming systems using a standard set of test programs, and a wiki resource for the parallel programming community - the Parawiki. We would like to invite you to participate and turn these subprojects into true community efforts.
Resumo:
In this publication, we report on an online survey that was carried out among parallel programmers. More than 250 people worldwide have submitted answers to our questions, and their responses are analyzed here. Although not statistically sound, the data we provide give useful insights about which parallel programming systems and languages are known and in actual use. For instance, the collected data indicate that for our survey group MPI and (to a lesser extent) C are the most widely used parallel programming system and language, respectively.
Resumo:
Genetic programming is known to provide good solutions for many problems like the evolution of network protocols and distributed algorithms. In such cases it is most likely a hardwired module of a design framework that assists the engineer to optimize specific aspects of the system to be developed. It provides its results in a fixed format through an internal interface. In this paper we show how the utility of genetic programming can be increased remarkably by isolating it as a component and integrating it into the model-driven software development process. Our genetic programming framework produces XMI-encoded UML models that can easily be loaded into widely available modeling tools which in turn posses code generation as well as additional analysis and test capabilities. We use the evolution of a distributed election algorithm as an example to illustrate how genetic programming can be combined with model-driven development. This example clearly illustrates the advantages of our approach – the generation of source code in different programming languages.
Resumo:
The process of developing software that takes advantage of multiple processors is commonly referred to as parallel programming. For various reasons, this process is much harder than the sequential case. For decades, parallel programming has been a problem for a small niche only: engineers working on parallelizing mostly numerical applications in High Performance Computing. This has changed with the advent of multi-core processors in mainstream computer architectures. Parallel programming in our days becomes a problem for a much larger group of developers. The main objective of this thesis was to find ways to make parallel programming easier for them. Different aims were identified in order to reach the objective: research the state of the art of parallel programming today, improve the education of software developers about the topic, and provide programmers with powerful abstractions to make their work easier. To reach these aims, several key steps were taken. To start with, a survey was conducted among parallel programmers to find out about the state of the art. More than 250 people participated, yielding results about the parallel programming systems and languages in use, as well as about common problems with these systems. Furthermore, a study was conducted in university classes on parallel programming. It resulted in a list of frequently made mistakes that were analyzed and used to create a programmers' checklist to avoid them in the future. For programmers' education, an online resource was setup to collect experiences and knowledge in the field of parallel programming - called the Parawiki. Another key step in this direction was the creation of the Thinking Parallel weblog, where more than 50.000 readers to date have read essays on the topic. For the third aim (powerful abstractions), it was decided to concentrate on one parallel programming system: OpenMP. Its ease of use and high level of abstraction were the most important reasons for this decision. Two different research directions were pursued. The first one resulted in a parallel library called AthenaMP. It contains so-called generic components, derived from design patterns for parallel programming. These include functionality to enhance the locks provided by OpenMP, to perform operations on large amounts of data (data-parallel programming), and to enable the implementation of irregular algorithms using task pools. AthenaMP itself serves a triple role: the components are well-documented and can be used directly in programs, it enables developers to study the source code and learn from it, and it is possible for compiler writers to use it as a testing ground for their OpenMP compilers. The second research direction was targeted at changing the OpenMP specification to make the system more powerful. The main contributions here were a proposal to enable thread-cancellation and a proposal to avoid busy waiting. Both were implemented in a research compiler, shown to be useful in example applications, and proposed to the OpenMP Language Committee.
Resumo:
Distributed systems are one of the most vital components of the economy. The most prominent example is probably the internet, a constituent element of our knowledge society. During the recent years, the number of novel network types has steadily increased. Amongst others, sensor networks, distributed systems composed of tiny computational devices with scarce resources, have emerged. The further development and heterogeneous connection of such systems imposes new requirements on the software development process. Mobile and wireless networks, for instance, have to organize themselves autonomously and must be able to react to changes in the environment and to failing nodes alike. Researching new approaches for the design of distributed algorithms may lead to methods with which these requirements can be met efficiently. In this thesis, one such method is developed, tested, and discussed in respect of its practical utility. Our new design approach for distributed algorithms is based on Genetic Programming, a member of the family of evolutionary algorithms. Evolutionary algorithms are metaheuristic optimization methods which copy principles from natural evolution. They use a population of solution candidates which they try to refine step by step in order to attain optimal values for predefined objective functions. The synthesis of an algorithm with our approach starts with an analysis step in which the wanted global behavior of the distributed system is specified. From this specification, objective functions are derived which steer a Genetic Programming process where the solution candidates are distributed programs. The objective functions rate how close these programs approximate the goal behavior in multiple randomized network simulations. The evolutionary process step by step selects the most promising solution candidates and modifies and combines them with mutation and crossover operators. This way, a description of the global behavior of a distributed system is translated automatically to programs which, if executed locally on the nodes of the system, exhibit this behavior. In our work, we test six different ways for representing distributed programs, comprising adaptations and extensions of well-known Genetic Programming methods (SGP, eSGP, and LGP), one bio-inspired approach (Fraglets), and two new program representations called Rule-based Genetic Programming (RBGP, eRBGP) designed by us. We breed programs in these representations for three well-known example problems in distributed systems: election algorithms, the distributed mutual exclusion at a critical section, and the distributed computation of the greatest common divisor of a set of numbers. Synthesizing distributed programs the evolutionary way does not necessarily lead to the envisaged results. In a detailed analysis, we discuss the problematic features which make this form of Genetic Programming particularly hard. The two Rule-based Genetic Programming approaches have been developed especially in order to mitigate these difficulties. In our experiments, at least one of them (eRBGP) turned out to be a very efficient approach and in most cases, was superior to the other representations.
Resumo:
Computational models are arising is which programs are constructed by specifying large networks of very simple computational devices. Although such models can potentially make use of a massive amount of concurrency, their usefulness as a programming model for the design of complex systems will ultimately be decided by the ease in which such networks can be programmed (constructed). This thesis outlines a language for specifying computational networks. The language (AFL-1) consists of a set of primitives, ad a mechanism to group these elements into higher level structures. An implementation of this language runs on the Thinking Machines Corporation, Connection machine. Two significant examples were programmed in the language, an expert system (CIS), and a planning system (AFPLAN). These systems are explained and analyzed in terms of how they compare with similar systems written in conventional languages.
Resumo:
Most Artificial Intelligence (AI) work can be characterized as either ``high-level'' (e.g., logical, symbolic) or ``low-level'' (e.g., connectionist networks, behavior-based robotics). Each approach suffers from particular drawbacks. High-level AI uses abstractions that often have no relation to the way real, biological brains work. Low-level AI, on the other hand, tends to lack the powerful abstractions that are needed to express complex structures and relationships. I have tried to combine the best features of both approaches, by building a set of programming abstractions defined in terms of simple, biologically plausible components. At the ``ground level'', I define a primitive, perceptron-like computational unit. I then show how more abstract computational units may be implemented in terms of the primitive units, and show the utility of the abstract units in sample networks. The new units make it possible to build networks using concepts such as long-term memories, short-term memories, and frames. As a demonstration of these abstractions, I have implemented a simulator for ``creatures'' controlled by a network of abstract units. The creatures exist in a simple 2D world, and exhibit behaviors such as catching mobile prey and sorting colored blocks into matching boxes. This program demonstrates that it is possible to build systems that can interact effectively with a dynamic physical environment, yet use symbolic representations to control aspects of their behavior.