14 research outputs found

    Are We Still Missing an Item?

    Full text link
    The missing item problem, as introduced by Stoeckl in his work at SODA 23, focuses on continually identifying a missing element ee in a stream of elements e1,...,eℓ{e_1, ..., e_{\ell}} from the set {1,2,...,n}\{1,2,...,n\}, such that e≠eie \neq e_i for any i∈{1,...,ℓ}i \in \{1,...,\ell\}. Stoeckl's investigation primarily delves into scenarios with ℓ<n\ell<n, providing bounds for the (i) deterministic case, (ii) the static case -- where the algorithm might be randomized but the stream is fixed in advanced and (iii) the adversarially robust case -- where the algorithm is randomized and each stream element can be chosen depending on earlier algorithm outputs. Building upon this foundation, our paper addresses previously unexplored aspects of the missing item problem. In the first segment, we examine the static setting with a long stream, where the length of the steam ℓ\ell is close to or even exceeds the size of the universe nn. We present an algorithm demonstrating that even when ℓ\ell is very close to nn (say ℓ=n−1\ell=n-1), polylog(nn) bits of memory suffice to identify the missing item. When the stream's length ℓ\ell exceeds the size of the universe nn i.e. ℓ=n+k\ell = n +k, we show a tight bound of roughly Θ(k)\Theta(k). The second segment focuses on the adversarially robust setting. We show a lower bound for a pseudo-deterministic error-zero (where the algorithm reports its errors) algorithm of approximating Ω(ℓ)\Omega(\ell), up to polylog factors. Based on Stoeckl's work and the previous result, we establish a tight bound for a random-start (only use randomness at initialization) error-zero streaming algorithm of roughly Θ(ℓ)\Theta(\sqrt{\ell})

    Making Data Accessible: An Overview of Interactive Data Visualization Using D3.js as Applied to a Scientific Dataset : Making a Static Visualization Interactive

    Get PDF
    Technology is moving at a very fast pace, but data is still represented as tables, static graphs and infographics that do not create an impact on the population at large. Excluding the scientific and educational communities, to the common individual information should be displayed in an entertaining manner. This project set out to fulfill this goal by using known technologies from D3js, design guidelines, CSS3 animations, and HTML5 elements to real scientific data from the United States National Climate Data Center. The final product is a one page web application displaying 3,000,000 years of global temperatures in a visual format. The data was plotted using D3js, made interactive with JavaScript and laid out using Twitter Bootstrap. What can be concluded is that it is possible to create interactive content with current technologies, but the process is still only achievable after extensive study of the technologies involved. Further development has to be made for data interactive tools to become easier to use and to produce large-scale interactive web applications involving data display and analysis. The advancement of interactive visualizations are also relevant as studies have shown that engaging lectures lead to a statistically significant higher average on unit exams compared with traditional didactic lectures. This could be hypothesized to be the same for interactive data and this was confirmed by a small questionnaire

    Programming with narrowing: A tutorial

    Get PDF
    AbstractNarrowing is a computation implemented by some declarative programming languages. Research in the last decade has produced significant results on the theory and foundation of narrowing, but little has been published on the use of narrowing in programming. This paper introduces narrowing from a programmer’s viewpoint; shows, by means of examples, when, why and how to use narrowing in a program; and discusses the impact of narrowing on software development activities such as design and maintenance. The examples are coded in the programming language Curry, which provides narrowing as a first class feature

    Programmiersprachen und Rechenkonzepte

    Get PDF
    Seit 1984 veranstaltet die GI-Fachgruppe "Programmiersprachen und Rechenkonzepte" regelmäßig im Frühjahr einen Workshop im Physikzentrum Bad Honnef. Das Treffen dient in erster Linie dem gegenseitigen Kennenlernen, dem Erfahrungsaustausch, der Diskussion und der Vertiefung gegenseitiger Kontakte. In diesem Forum werden Vorträge und Demonstrationen sowohl bereits abgeschlossener als auch noch laufender Arbeiten vorgestellt, unter anderem (aber nicht ausschließlich) zu Themen wie - Sprachen, Sprachparadigmen - Korrektheit von Entwurf und Implementierung - Werkzeuge - Software-/Hardware-Architekturen - Spezifikation, Entwurf - Validierung, Verifikation - Implementierung, Integration - Sicherheit (Safety und Security) - eingebettete Systeme - hardware-nahe Programmierung. In diesem Technischen Bericht sind einige der präsentierten Arbeiten zusammen gestellt

    Relational Programming in miniKanren: Techniques, Applications, and Implementations

    Get PDF
    Thesis (Ph.D.) - Indiana University, Computer Sciences, 2009The promise of logic programming is that programs can be written relationally, without distinguishing between input and output arguments. Relational programs are remarkably flexible&mdash;for example, a relational type-inferencer also performs type checking and type inhabitation, while a relational theorem prover generates theorems as well as proofs and can even be used as a simple proof assistant. Unfortunately, writing relational programs is difficult, and requires many interesting and unusual tools and techniques. For example, a relational interpreter for a subset of Scheme might use nominal unification to support variable binding and scope, Constraint Logic Programming over Finite Domains (CLP(FD)) to implement relational arithmetic, and tabling to improve termination behavior. In this dissertation I present miniKanren, a family of languages specifically designed for relational programming, and which supports a variety of relational idioms and techniques. I show how miniKanren can be used to write interesting relational programs, including an extremely flexible lean tableau theorem prover and a novel constraint-free binary arithmetic system with strong termination guarantees. I also present interesting and practical techniques used to implement miniKanren, including a nominal unifier that uses triangular rather than idempotent substitutions and a novel &ldquo;walk&rdquo;-based algorithm for variable lookup in triangular substitutions. The result of this research is a family of languages that supports a variety of relational idioms and techniques, making it feasible and useful to write interesting programs as relations

    Programmiersprachen und Rechenkonzepte

    Get PDF
    Seit 1984 veranstaltet die GI-Fachgruppe "Programmiersprachen und Rechenkonzepte", die aus den ehemaligen Fachgruppen 2.1.3 "Implementierung von Programmiersprachen" und 2.1.4 "Alternative Konzepte für Sprachen und Rechner" hervorgegangen ist, regelmäßig im Frühjahr einen Workshop im Physikzentrum Bad Honnef. Das Treffen dient in erster Linie dem gegenseitigen Kennenlernen, dem Erfahrungsaustausch, der Diskussion und der Vertiefung gegenseitiger Kontakte

    Programmiersprachen und Rechenkonzepte

    Get PDF
    Seit 1984 veranstaltet die GI--Fachgruppe "Programmiersprachen und Rechenkonzepte" regelmäßig im Frühjahr einen Workshop im Physikzentrum Bad Honnef. Das Treffen dient in erster Linie dem gegenseitigen Kennenlernen, dem Erfahrungsaustausch, der Diskussion und der Vertiefung gegenseitiger Kontakte
    corecore