79,617 research outputs found

    Failure Filtrations for Fenced Sensor Networks

    Full text link
    In this paper we consider the question of sensor network coverage for a 2-dimensional domain. We seek to compute the probability that a set of sensors fails to cover given only non-metric, local (who is talking to whom) information and a probability distribution of failure of each node. This builds on the work of de Silva and Ghrist who analyzed this problem in the deterministic situation. We first show that a it is part of a slightly larger class of problems which is #P-complete, and thus fast algorithms likely do not exist unless P==NP. We then give a deterministic algorithm which is feasible in the case of a small set of sensors, and give a dynamic algorithm for an arbitrary set of sensors failing over time which utilizes a new criterion for coverage based on the one proposed by de Silva and Ghrist. These algorithms build on the theory of topological persistence

    Dynamic Approximate All-Pairs Shortest Paths: Breaking the O(mn) Barrier and Derandomization

    Full text link
    We study dynamic (1+ϵ)(1+\epsilon)-approximation algorithms for the all-pairs shortest paths problem in unweighted undirected nn-node mm-edge graphs under edge deletions. The fastest algorithm for this problem is a randomized algorithm with a total update time of O~(mn/ϵ)\tilde O(mn/\epsilon) and constant query time by Roditty and Zwick [FOCS 2004]. The fastest deterministic algorithm is from a 1981 paper by Even and Shiloach [JACM 1981]; it has a total update time of O(mn2)O(mn^2) and constant query time. We improve these results as follows: (1) We present an algorithm with a total update time of O~(n5/2/ϵ)\tilde O(n^{5/2}/\epsilon) and constant query time that has an additive error of 22 in addition to the 1+ϵ1+\epsilon multiplicative error. This beats the previous O~(mn/ϵ)\tilde O(mn/\epsilon) time when m=Ω(n3/2)m=\Omega(n^{3/2}). Note that the additive error is unavoidable since, even in the static case, an O(n3δ)O(n^{3-\delta})-time (a so-called truly subcubic) combinatorial algorithm with 1+ϵ1+\epsilon multiplicative error cannot have an additive error less than 2ϵ2-\epsilon, unless we make a major breakthrough for Boolean matrix multiplication [Dor et al. FOCS 1996] and many other long-standing problems [Vassilevska Williams and Williams FOCS 2010]. The algorithm can also be turned into a (2+ϵ)(2+\epsilon)-approximation algorithm (without an additive error) with the same time guarantees, improving the recent (3+ϵ)(3+\epsilon)-approximation algorithm with O~(n5/2+O(log(1/ϵ)/logn))\tilde O(n^{5/2+O(\sqrt{\log{(1/\epsilon)}/\log n})}) running time of Bernstein and Roditty [SODA 2011] in terms of both approximation and time guarantees. (2) We present a deterministic algorithm with a total update time of O~(mn/ϵ)\tilde O(mn/\epsilon) and a query time of O(loglogn)O(\log\log n). The algorithm has a multiplicative error of 1+ϵ1+\epsilon and gives the first improved deterministic algorithm since 1981. It also answers an open question raised by Bernstein [STOC 2013].Comment: A preliminary version was presented at the 2013 IEEE 54th Annual Symposium on Foundations of Computer Science (FOCS 2013

    Feedback Generation for Performance Problems in Introductory Programming Assignments

    Full text link
    Providing feedback on programming assignments manually is a tedious, error prone, and time-consuming task. In this paper, we motivate and address the problem of generating feedback on performance aspects in introductory programming assignments. We studied a large number of functionally correct student solutions to introductory programming assignments and observed: (1) There are different algorithmic strategies, with varying levels of efficiency, for solving a given problem. These different strategies merit different feedback. (2) The same algorithmic strategy can be implemented in countless different ways, which are not relevant for reporting feedback on the student program. We propose a light-weight programming language extension that allows a teacher to define an algorithmic strategy by specifying certain key values that should occur during the execution of an implementation. We describe a dynamic analysis based approach to test whether a student's program matches a teacher's specification. Our experimental results illustrate the effectiveness of both our specification language and our dynamic analysis. On one of our benchmarks consisting of 2316 functionally correct implementations to 3 programming problems, we identified 16 strategies that we were able to describe using our specification language (in 95 minutes after inspecting 66, i.e., around 3%, implementations). Our dynamic analysis correctly matched each implementation with its corresponding specification, thereby automatically producing the intended feedback.Comment: Tech report/extended version of FSE 2014 pape
    corecore