868 research outputs found

    ВСрификация шаблонов Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ Π³Ρ€Π°Π½ΠΈΡ†

    Get PDF
    The Design and Analysis of Computer Algorithms is a must of Computer Curricula. It covers many topics that group around several core themes. These themes range from data structures to the complexity theory, but one very special theme is algorithmic design patterns, including greedy method, divide-and-conquer, dynamic programming, backtracking and branch-and-bound. Naturally, all the listed design patterns are taught, learned and comprehended by examples. But they can be semi-formalized as design templates, semi-specified by correctness conditions, and semi-formally verified by means of Floyd method. Moreover, this approach can lead to new insights and better comprehension of the design patterns, specification and verification methods. In this paper we demonstrate an utility of the approach by study of backtracking and branch-and-bound design patterns. In particular, we prove correctness of the suggested templates when the boundary condition is monotone, but the decision condition is anti-monotone on sets of "visited" vertices.ΠšΡƒΡ€Ρ проСктирования ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ всСх ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ. Π’ унивСрситСтах этот курс ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ структур Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ проСктирования Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Ρ‚Π΅ΠΎΡ€ΠΈΡŽ слоТности ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΎΡ‚ курс Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ проСктирования Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΊΠ°ΠΊ ΠΆΠ°Π΄Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, динамичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΠ΅Ρ‚ΠΎΠ΄ раздСляй ΠΈ властвуй, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΊΠ°Ρ‚Π°, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ Π³Ρ€Π°Π½ΠΈΡ†. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ знакомство с этими ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ происходит Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. Но (ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅) ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ (ΠΏΠΎΠ»Ρƒ)Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ "ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²", спСцифицированы условиями частичной ΠΈ/ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ коррСктности ΠΈ обоснованы (Π΄ΠΎΠΊΠ°Π·Π°Π½Ρ‹) ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π€Π»ΠΎΠΉΠ΄Π° Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Π’Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ, Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΌΡƒ пониманию этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ дСмонстрируСтся ΠΏΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ Π³Ρ€Π°Π½ΠΈΡ†. Π’ частности, ΠΌΡ‹ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹, Ссли Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΎΠ΅ условиС - монотонная функция, Π° Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ условиС - антимонотонная функция ΠΎΡ‚ мноТСства ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½

    A Survey of Symbolic Execution Techniques

    Get PDF
    Many security and software testing applications require checking whether certain properties of a program hold for any possible usage scenario. For instance, a tool for identifying software vulnerabilities may need to rule out the existence of any backdoor to bypass a program's authentication. One approach would be to test the program using different, possibly random inputs. As the backdoor may only be hit for very specific program workloads, automated exploration of the space of possible inputs is of the essence. Symbolic execution provides an elegant solution to the problem, by systematically exploring many possible execution paths at the same time without necessarily requiring concrete inputs. Rather than taking on fully specified input values, the technique abstractly represents them as symbols, resorting to constraint solvers to construct actual instances that would cause property violations. Symbolic execution has been incubated in dozens of tools developed over the last four decades, leading to major practical breakthroughs in a number of prominent software reliability applications. The goal of this survey is to provide an overview of the main ideas, challenges, and solutions developed in the area, distilling them for a broad audience. The present survey has been accepted for publication at ACM Computing Surveys. If you are considering citing this survey, we would appreciate if you could use the following BibTeX entry: http://goo.gl/Hf5FvcComment: This is the authors pre-print copy. If you are considering citing this survey, we would appreciate if you could use the following BibTeX entry: http://goo.gl/Hf5Fv

    Learning to Find Proofs and Theorems by Learning to Refine Search Strategies: The Case of Loop Invariant Synthesis

    Full text link
    We propose a new approach to automated theorem proving where an AlphaZero-style agent is self-training to refine a generic high-level expert strategy expressed as a nondeterministic program. An analogous teacher agent is self-training to generate tasks of suitable relevance and difficulty for the learner. This allows leveraging minimal amounts of domain knowledge to tackle problems for which training data is unavailable or hard to synthesize. As a specific illustration, we consider loop invariant synthesis for imperative programs and use neural networks to refine both the teacher and solver strategies

    Doctor of Philosophy

    Get PDF
    dissertationAsynchronous circuits exhibit impressive power and performance benefits over its synchronous counterpart. Asynchronous system design, however, is not widely adopted due to the fact that it lacks an equivalent support of CAD tools and requires deep expertise in asynchronous circuit design. A relative timing (RT) based asynchronous asynchronous commercial CAD tools was recently proposed. This design flow enables engineers who are proficient in using synchronous design and CAD flow to more easily switch to asynchronous design without asynchronous experience while retaining the asynchronous benefits of power and performance. Relative timing constraints are the key step to this design flow, and were generated manually by the designer based on his/her intuition and understanding of the circuit logic and structure. This process was quite time-consuming and error-prone. This dissertation presents an algorithm that automatically generates a set of relative timing constraints to guarantee the correctness of a circuit with the aid of a formal verification engine - Analyze. The algorithms have been implemented in a tool called ARTIST (Automatic Relative Timing Identifier based on Signal Traces). Automatic generation of relative timing constraints relies on manipulation, such as searching and backtracking, of a trace status tableau that is built based on the counter example signal trace returned from the formal verification engine. The underlying mechanism of relative timing is to force signal ordering on the labeled transition graph of the system to restrict its reachability to failure states such that the circuit implementation conforms to the specification. Examples from a simple C-Element to complex six-four GasP circuits are demonstrated to show how this technique is applied to real problems. The set of relative timing constraints generated by ARTIST is compared against the set of hand generated constraints in terms of efficiency and quality. Over 100 four-phase handshake controller protocols have been verified through ARTIST and Analyze. ARTSIT vastly reduces the design time as compared to hand generation which may take days or even months to achieve a solution set of RT constraints. The quality of ARTIST generated constraints is also shown to be as good as hand generation

    Using middle-out reasoning to guide inductive theorem proving

    Get PDF

    Model-Based Schedulability Analysis of Real-Time Systems

    Get PDF
    • …
    corecore