14 research outputs found

    An Optimal Algorithm for Tiling the Plane with a Translated Polyomino

    Full text link
    We give a O(n)O(n)-time algorithm for determining whether translations of a polyomino with nn edges can tile the plane. The algorithm is also a O(n)O(n)-time algorithm for enumerating all such tilings that are also regular, and we prove that at most Θ(n)\Theta(n) such tilings exist.Comment: In proceedings of ISAAC 201

    Polycubes

    Get PDF
    Σημείωση: α) η ηλεκτρονική έκδοση δεν καλύπτει ή δεν αποδίδει πλήρως την αντίστοιχη έντυπη. Ως κύρια εργασία διατίθεται η ψηφιοποιημένη έντυπη έκδοση. β) διατίθεται σε ενιαίο συνοδευτικό αρχείο η ηλεκτρονική έκδοση, όπως διατέθηκε από τον/τη δημιουργό

    On covering by translates of a set

    Full text link
    In this paper we study the minimal number of translates of an arbitrary subset SS of a group GG needed to cover the group, and related notions of the efficiency of such coverings. We focus mainly on finite subsets in discrete groups, reviewing the classical results in this area, and generalizing them to a much broader context. For example, we show that while the worst-case efficiency when SS has kk elements is of order 1/logk1/\log k, for kk fixed and nn large, almost every kk-subset of any given nn-element group covers GG with close to optimal efficiency.Comment: 41 pages; minor corrections; to appear in Random Structures and Algorithm

    Extracting Data-Level Parallelism in High-Level Synthesis for Reconfigurable Architectures

    Get PDF
    High-Level Synthesis (HLS) tools are a set of algorithms that allow programmers to obtain implementable Hardware Description Language (HDL) code from specifications written high-level, sequential languages such as C, C++, or Java. HLS has allowed programmers to code in their preferred language while still obtaining all the benefits hardware acceleration has to offer without them needing to be intimately familiar with the hardware platform of the accelerator. In this work we summarize and expand upon several of our approaches to improve the automatic memory banking capabilities of HLS tools targeting reconfigurable architectures, namely Field-Programmable Gate Arrays or FPGA\u27s. We explored several approaches to automatically find the optimal partition factor and a usable banking scheme for stencil kernels including a tessellation based approach using multiple families of hyperplanes to do the partitioning which was able to find a better banking factor than current state-of-the-art methods and a graph theory methodology that allowed us to mathematically prove the optimality of our banking solutions. For non-stencil kernels we relaxed some of the conditions in our graph-based model to propose a best-effort solution to arbitrarily reduce memory access conflicts (simultaneous accesses to the same memory bank). We also proposed a non-linear transformation using prime factorization to convert a small subset of non-stencil kernels into stencil memory accesses, allowing us to use all previous work in memory partition to them. Our approaches were able to obtain better results than commercial tools and state-of-the-art algorithms in terms of reduced resource utilization and increased frequency of operation. We were also able to obtain better partition factors for some stencil kernels and usable baking schemes for non-stencil kernels with better performance than any applicable existing algorithm

    Programmation et indécidabilités dans les systèmes complexes

    No full text
    N/AUn système complexe est un système constitué d'un ensemble d'entités quiinteragissent localement, engendrant des comportements globaux, émergeant dusystème, qu'on ne sait pas expliquer à partir du comportement local, connu, desentités qui le constituent. Nos travaux ont pour objet de mieux cerner lesliens entre certaines propriétés des systèmes complexes et le calcul. Parcalcul, il faut entendre l'objet d'étude de l'informatique, c'est-à-dire ledéplacement et la combinaison d'informations. À l'aide d'outils issus del'informatique, l'algorithmique et la programmation dans les systèmes complexessont abordées selon trois points de vue. Une première forme de programmation,dite externe, consiste à développer l'algorithmique qui permet de simuler lessystèmes étudiés. Une seconde forme de programmation, dite interne, consiste àdévelopper l'algorithmique propre à ces systèmes, qui permet de construire desreprésentants de ces systèmes qui exhibent des comportements programmés. Enfin,une troisième forme de programmation, de réduction, consiste à plonger despropriétés calculatoires complexes dans les représentants de ces systèmes pourétablir des résultats d'indécidabilité -- indice d'une grande complexitécalculatoire qui participe à l'explication de la complexité émergente. Afin demener à bien cette étude, les systèmes complexes sont modélisés par desautomates cellulaires. Le modèle des automates cellulaires offre une dualitépertinente pour établir des liens entre complexité des propriétés globales etcalcul. En effet, un automate cellulaire peut être décrit à la fois comme unréseau d'automates, offrant un point de vue familier de l'informatique, etcomme un système dynamique discret, une fonction définie sur un espacetopologique, offrant un point de vue familier de l'étude des systèmesdynamiques discrets.Une première partie de nos travaux concerne l'étude de l'objet automatecellulaire proprement dit. L'observation expérimentale des automatescellulaires distingue, dans la littérature, deux formes de dynamiques complexesdominantes. Certains automates cellulaires présentent une dynamique danslaquelle émergent des structures simples, sortes de particules qui évoluentdans un domaine régulier, se rencontrent lors de brèves collisions, avant degénérer d'autres particules. Cette forme de complexité, dans laquelletransparaît une notion de quanta d'information localisée en interaction, estl'objet de nos études. Un premier champ de nos investigations est d'établir uneclassification algébrique, le groupage, qui tend à rendre compte de ce type decomportement. Cette classification met à jour un type d'automate cellulaireparticulier : les automates cellulaires intrinsèquement universels. Un automatecellulaire intrinsèquement universel est capable de simuler le comportement detout automate cellulaire. C'est l'objet de notre second champ d'investigation.Nous caractérisons cette propriété et démontrons son indécidabilité. Enfin, untroisième champ d'investigation concerne l'algorithmique des automatescellulaires à particules et collisions. Étant donné un ensemble de particuleset de collisions d'un tel automate cellulaire, nous étudions l'ensemble desinteractions possibles et proposons des outils pour une meilleure programmationinterne à l'aide de ces collisions.Une seconde partie de nos travaux concerne la programmation par réduction. Afinde démontrer l'indécidabilité de propriétés dynamiques des automatescellulaires, nous étudions d'une part les problèmes de pavage du plan par desjeux de tuiles finis et d'autre part les problèmes de mortalité et depériodicité dans les systèmes dynamiques discrets à fonction partielle. Cetteétude nous amène à considérer des objets qui possèdent la même dualité entredescription combinatoire et topologique que les automates cellulaires. Unenotion d'apériodicité joue un rôle central dans l'indécidabilité des propriétésde ces objets

    Aspects algorithmiques de la géométrie discrète

    Get PDF
    Cette thèse étudie diverses notions en géométrie discrète d'un point de vue algorithmique. Plus particulièrement, elle fournit un cadre d'algorithmes efficaces afin de résoudre des problèmes concernant les figures discrètes en se basant uniquement sur l'étude du contour de ces dernières. Les résultats obtenus s'appuient principalement sur la théorie des graphes et leurs représentations, ainsi que sur la combinatoire des mots. La première théorie permet d'aborder les problèmes étudiés sous un angle géométrique, tandis que la seconde fournit un modèle simple et efficace pour le traitement et l'analyse de chemins et de figures discrètes. Les résultats développés au fil du texte appartiennent principalement aux domaines de la théorie des graphes, de la combinatoire des mots et de l'informatique théorique. En plus de ces contributions théoriques, ils trouvent aussi écho dans plusieurs autres domaines liés aux technologies de l'information, notamment en traitement d'images numériques ou, encore, en cristallographie. Ce document s'articule autour de trois sujets principaux, tous liés de près ou de loin à la notion centrale de polyominos, c'est-à-dire un ensemble de pixels connexes dans le plan discret Z2. Dans un premier temps, nous introduisons le concept de réseau parallélogramme, permettant ainsi d'établir de nouveaux résultats de nature algébrique sur un type particulier de morphisme appelé morphisme parallélogramme. Ensuite, nous étudions la notion de polyomino premier. Notamment, nous fournissons un algorithme polynomial de factorisation. Finalement, nous étudions diverses opérations géométriques fondamentales sur les polyominos. Notons que tous les algorithmes présentés ont été implémentés et testés sur plusieurs exemples. Ce travail de fin d'études constitue un apport aux mathématiques discrètes par l'établissement de nouveaux résultats. Parmi ceux-ci, mentionnons un algorithme linéaire pour le calcul des enveloppes externe et convexe de tout chemin discret de Z2 ainsi que des algorithmes linéaires afin de calculer l'union, l'intersection et la différence de polyominos
    corecore