13 research outputs found
Topologically Trivial Closed Walks in Directed Surface Graphs
Let be a directed graph with vertices and edges, embedded on a
surface , possibly with boundary, with first Betti number . We
consider the complexity of finding closed directed walks in that are either
contractible (trivial in homotopy) or bounding (trivial in integer homology) in
. Specifically, we describe algorithms to determine whether contains a
simple contractible cycle in time, or a contractible closed walk in
time, or a bounding closed walk in time. Our
algorithms rely on subtle relationships between strong connectivity in and
in the dual graph ; our contractible-closed-walk algorithm also relies on
a seminal topological result of Hass and Scott. We also prove that detecting
simple bounding cycles is NP-hard.
We also describe three polynomial-time algorithms to compute shortest
contractible closed walks, depending on whether the fundamental group of the
surface is free, abelian, or hyperbolic. A key step in our algorithm for
hyperbolic surfaces is the construction of a context-free grammar with
non-terminals that generates all contractible closed walks of
length at most L, and only contractible closed walks, in a system of quads of
genus . Finally, we show that computing shortest simple contractible
cycles, shortest simple bounding cycles, and shortest bounding closed walks are
all NP-hard.Comment: 30 pages, 18 figures; fixed several minor bugs and added one figure.
An extended abstraction of this paper will appear at SOCG 201
I/O-Efficient Algorithms on Near-Planar Graphs
Obtaining I/O-efficient algorithms for basic graph problems on sparse directed graphs is a long-standing open problem. While the best known upper bounds for most basic problems on such graphs with V vertices still require O(V ) I/Os, optimal O(sort (V )) I/O algorithms are known for special classes of sparse graphs, like planar graphs and grid graphs. It is hard to accept that a problem becomes difficult as soon as the graph contains a few deviations from planarity. In this paper we extend the class of graphs on which basic graph problems can be solved I/O-efficiently. We give a characterization of near-planarity which covers a wide range of near-planar graphs, and obtain the first I/O-efficient algorithms for directed graphs that are near-planar
Automatic determination of information system subsystems development order
Prilikom razvoja informacijskog sustava potrebno je odrediti slijed razvoja podsustava informacijskog sustava. Ovaj problem trenutno nije formalno riješen. Stoga predlažemo rješenje koje će kao kriterij, određivanja slijeda razvoja podsustava informacijskog sustava, imati sumu težina povratnih lukova u slijedu podsustava informacijskog sustava. Nadalje, dokazali smo kako je ovaj problem NP-potpun, NP-težak, i APX-težak. Isto tako, kako bismo riješili ovaj problem osmislili smo: algoritam temeljen na metodi Grananja i ograničenja, Monte Carlo randomizirani algoritam, i heuristički algoritam. Za sva tri algoritma smo procijenili složenost. Sva tri algoritma su implementirana i empirijski testirana. Na kraju smo pokazali na koji način se u praksi, po potrebi, mogu uvrštavati dodatna ograničenja, i gdje se još osmišljeni algoritmi potencijalno mogu koristiti.When we are developing Information System we must determine development order of its subsystems. Currently, this problem is not formally solved. Therefore, we have proposed a solution which takes sum of weights of feedback arcs as a criteria for determining development order of Information System subsystems. Furthermore, we have proved that the problem of Information System Subsystems Development Order is NP-complete, NP-hard, and APX-hard. Also, in order to solve this problem we have created: Branch and Bound algorithm, Monte Carlo randomized algorithm, and heuristic algorithm. Complexity has been calculated for all three algorithms. All three algorithms have been implemented and empirically analysed. Lastly, we have showed how one can apply additional constraints upon the problem of Information System Subsystems Development Order, and where can one potentially use developed algorithms outside of Information System Subsystems Development Order problem
Automatic determination of information system subsystems development order
Prilikom razvoja informacijskog sustava potrebno je odrediti slijed razvoja podsustava informacijskog sustava. Ovaj problem trenutno nije formalno riješen. Stoga predlažemo rješenje koje će kao kriterij, određivanja slijeda razvoja podsustava informacijskog sustava, imati sumu težina povratnih lukova u slijedu podsustava informacijskog sustava. Nadalje, dokazali smo kako je ovaj problem NP-potpun, NP-težak, i APX-težak. Isto tako, kako bismo riješili ovaj problem osmislili smo: algoritam temeljen na metodi Grananja i ograničenja, Monte Carlo randomizirani algoritam, i heuristički algoritam. Za sva tri algoritma smo procijenili složenost. Sva tri algoritma su implementirana i empirijski testirana. Na kraju smo pokazali na koji način se u praksi, po potrebi, mogu uvrštavati dodatna ograničenja, i gdje se još osmišljeni algoritmi potencijalno mogu koristiti.When we are developing Information System we must determine development order of its subsystems. Currently, this problem is not formally solved. Therefore, we have proposed a solution which takes sum of weights of feedback arcs as a criteria for determining development order of Information System subsystems. Furthermore, we have proved that the problem of Information System Subsystems Development Order is NP-complete, NP-hard, and APX-hard. Also, in order to solve this problem we have created: Branch and Bound algorithm, Monte Carlo randomized algorithm, and heuristic algorithm. Complexity has been calculated for all three algorithms. All three algorithms have been implemented and empirically analysed. Lastly, we have showed how one can apply additional constraints upon the problem of Information System Subsystems Development Order, and where can one potentially use developed algorithms outside of Information System Subsystems Development Order problem
AN EQUIVALENT CLASS SOLUTION FOR A COMPLETE TEST OF A PARALLEL PROGRAM
With the advent of multi-core chips (multiple CPUs on a single chip) a fundamental shift in the design of programs is taking place. Previous use of parallel code in programs was limited to servers that contained multiple CPUs on separate chips. This idea is starting to change, with the majority of chips sold today containing multiple CPUs which require parallel code in software programs. The use of parallel code is not without problems. Non-parallel code executes programming statements in the same order, every time the same inputs are used. This result contrasts parallel code in the extreme. Identical inputs and conditions in no way to guarantee that parallel code will result in the same order of execution. For that reason testing parallel code is dramatically more difficult. It is because of this difficulty that I propose a solution that will allow a tester to guarantee a complete coverage of the shared memory parallel code through a series of non-exhaustive tests. This solution relies on the fact that the majority of the lines of code in the different threads don’t access the shared memory of program. This concept is what allows the creation of equivalent execution classes. Two execution schedules are equivalent if the critical sections that conflict with previously executed sections are in the same order in the schedule and the grouping of code between these sections are simply permutations of legal execution ordering
I/O-Efficient Topological Sorting of Planar DAGs
We present algorithms that solve a number of fundamental problems on planar directed graphs (planar digraphs) in O(sort(N)) I/Os, where sort(N) is the number of I/Os needed to sort N elements. The problems we consider are breadth-first search, the single-source shortest path problem, computing a directed ear decomposition of a strongly connected planar digraph, computing an open directed ear decomposition of a strongly connected biconnected planar digraph, and topologically sorting a planar directed acyclic graph