Steve Gregory

University of Bristol, Bristol, England, United Kingdom

Are you Steve Gregory?

Claim your profile

Publications (21)20.01 Total impact

  • Source
    Yilei Bu · Steve Gregory · Harriet L Mills
    [Show abstract] [Hide abstract]
    ABSTRACT: It has recently become established that the spread of infectious diseases between humans is affected not only by the pathogen itself but also by changes in behavior as the population becomes aware of the epidemic, for example, social distancing. It is also well known that community structure (the existence of relatively densely connected groups of vertices) in contact networks influences the spread of disease. We propose a set of local strategies for social distancing, based on community structure, that can be employed in the event of an epidemic to reduce the epidemic size. Unlike most social distancing methods, ours do not require individuals to know the disease state (infected or susceptible, etc.) of others, and we do not make the unrealistic assumption that the structure of the entire contact network is known. Instead, the recommended behavior change is based only on an individual's local view of the network. Each individual avoids contact with a fraction of his/her contacts, using knowledge of his/her local network to decide which contacts should be avoided. If the behavior change occurs only when an individual becomes ill or aware of the disease, these strategies can substantially reduce epidemic size with a relatively small cost, measured by the number of contacts avoided.
    Full-text · Article · Oct 2013 · Physical Review E
  • Source
    Bowen Yan · Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Sampling techniques such as Respondent-Driven Sampling (RDS) are widely used in epidemiology to sample "hidden" populations, such that properties of the network can be deduced from the sample. We consider how similar techniques can be designed that allow the discovery of the structure, especially the community structure, of networks. Our method involves collecting samples of a network by random walks and reconstructing the network by probabilistically coalescing vertices, using vertex attributes to determine the probabilities. Even though our method can only approximately reconstruct a part of the original network, it can recover its community structure relatively well. Moreover, it can find the key vertices which, when immunized, can effectively reduce the spread of an infection through the original network.
    Full-text · Article · Apr 2013 · PLoS ONE
  • Source
    Bowen Yan · Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Community detection and edge prediction are both forms of link mining: they are concerned with discovering the relations between vertices in networks. Some of the vertex similarity measures used in edge prediction are closely related to the concept of community structure. We use this insight to propose a novel method for improving existing community detection algorithms by using a simple vertex similarity measure. We show that this new strategy can be more effective in detecting communities than the basic community detection algorithms.
    Full-text · Article · Jan 2012 · Journal of Statistical Mechanics Theory and Experiment
  • Source
    Bowen Yan · Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Many edge prediction methods have been proposed, based on various local or global properties of the structure of an incomplete network. Community structure is another significant feature of networks: Vertices in a community are more densely connected than average. It is often true that vertices in the same community have "similar" properties, which suggests that missing edges are more likely to be found within communities than elsewhere. We use this insight to propose a strategy for edge prediction that combines existing edge prediction methods with community detection. We show that this method gives better prediction accuracy than existing edge prediction methods alone.
    Full-text · Article · Sep 2011 · Physical review. E, Statistical physics, plasmas, fluids, and related interdisciplinary topics
  • Source
    Bowen Yan · Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Many algorithms have been proposed for predicting missing edges in networks, but they do not usually take account of which edges are missing. We focus on networks which have missing edges of the form that is likely to occur in real networks, and compare algorithms that find these missing edges. We also investigate the effect of this kind of missing data on community detection algorithms.
    Full-text · Article · Sep 2011 · Journal of Physics A Mathematical and Theoretical
  • Source
    Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Community structure in networks is often a consequence of homophily, or assortative mixing, based on some attribute of the vertices. For example, researchers may be grouped into communities corresponding to their research topic. This is possible if vertex attributes have discrete values, but many networks exhibit assortative mixing by some continuous-valued attribute, such as age or geographical location. In such cases, no discrete communities can be identified. We consider how the notion of community structure can be generalized to networks that are based on continuous-valued attributes: in general, a network may contain discrete communities which are ordered according to their attribute values. We propose a method of generating synthetic ordered networks and investigate the effect of ordered community structure on the spread of infectious diseases. We also show that community detection algorithms fail to recover community structure in ordered networks, and evaluate an alternative method using a layout algorithm to recover the ordering.
    Preview · Article · Apr 2011 · Physica A: Statistical Mechanics and its Applications
  • Source
    Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Networks commonly exhibit a community structure, whereby groups of vertices are more densely connected to each other than to other vertices. Often these communities overlap, such that each vertex may occur in more than one community. However, two distinct types of overlapping are possible: crisp (where each vertex belongs fully to each community of which it is a member) and fuzzy (where each vertex belongs to each community to a different extent). We investigate the effects of the fuzziness of community overlap. We find that it has a strong effect on the performance of community detection methods: some algorithms perform better with fuzzy overlapping while others favour crisp overlapping. We also evaluate the performance of some algorithms that recover the belonging coefficients when the overlap is fuzzy. Finally, we investigate whether real networks contain fuzzy or crisp overlapping.
    Preview · Article · Oct 2010 · Journal of Statistical Mechanics Theory and Experiment
  • Source
    Bowen Yan · Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Many algorithms have been proposed for detecting disjoint communities (relatively densely connected subgraphs) in networks. One popular technique is to optimize modularity, a measure of the quality of a partition in terms of the number of intracommunity and intercommunity edges. Greedy approximate algorithms for maximizing modularity can be very fast and effective. We propose a new algorithm that starts by detecting disjoint cliques and then merges these to optimize modularity. We show that this performs better than other similar algorithms in terms of both modularity and execution speed.
    Full-text · Conference Paper · Dec 2009
  • Source
    Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: We propose an algorithm for finding overlapping community structure in very large networks. The algorithm is based on the label propagation technique of Raghavan, Albert, and Kumara, but is able to detect communities that overlap. Like the original algorithm, vertices have labels that propagate between neighbouring vertices so that members of a community reach a consensus on their community membership. Our main contribution is to extend the label and propagation step to include information about more than one community: each vertex can now belong to up to v communities, where v is the parameter of the algorithm. Our algorithm can also handle weighted and bipartite networks. Tests on an independently designed set of benchmarks, and on real networks, show the algorithm to be highly effective in recovering overlapping communities. It is also very fast and can process very large and dense networks in a short time.
    Preview · Article · Oct 2009 · New Journal of Physics
  • Source
    Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Many algorithms have been designed to discover community structure in networks. Most of these detect disjoint communities, while a few can find communities that overlap. We propose a new, two-phase, method of detecting overlapping communities. In the first phase, a network is transformed to a new one by splitting vertices, using the idea of split betweenness; in the second phase, the transformed network is processed by a disjoint community detection algorithm. This approach has the potential to convert any disjoint community detection algorithm into an overlapping community detection algorithm. Our experiments, using several “disjoint” algorithms, demonstrate that the method works, producing solutions, and execution times, that are often better than those produced by specialized “overlapping” algorithms.
    Preview · Chapter · Apr 2009
  • Source
    Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Many networks possess a community structure, such that vertices form densely connected groups which are more sparsely linked to other groups. In some cases these groups overlap, with some vertices shared between two or more communities. Discovering communities in networks is a computationally challenging task, especially if they overlap. In previous work we proposed an algorithm, CONGA, that could detect overlapping communities using the new concept of split betweenness. Here we present an improved algorithm based on a local form of betweenness, which yields good results but is much faster. It is especially effective in discovering small-diameter communities in large networks, and has a time complexity of only O(n log n) for sparse networks.
    Preview · Conference Paper · Sep 2008
  • Source
    Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Recent years have seen the development of many graph clustering algorithms, which can identify community structure in networks. The vast ma- jority of these only find disjoint communities, but in many real-world networks communities overlap to some extent. We present a new algorithm for discover- ing overlapping communities in networks, by extending Girvan and Newman's well-known algorithm based on the betweenness centrality measure. Like the original algorithm, ours performs hierarchical clus tering — partitioning a net- work into any desired number of clusters — but allo ws them to overlap. Ex- periments confirm good performance on randomly generated networks based on a known overlapping community structure, and interesting results have also been obtained on a range of real-world networks.
    Preview · Conference Paper · Sep 2007
  • Source
    Steve Gregory · Martha Paschali
    [Show abstract] [Hide abstract]
    ABSTRACT: Workflow management systems control activities that are performed in a distributed manner by a number of human or aut omated participants . There is a wide variety of workflow systems in use, mostl y commercial products, and no standard language has been defined in which to e xpress workflow specifica- tions. In this paper we propose Workflow Prolog, a new extension of Prolog. The language allows workflow systems to be implemented in a novel declara- tive style, while preserving the existing propertie s of Prolog, such as its famili- arity and efficiency. We then demonstrate the expre ssiveness of the language by showing how it can express each of the workflow patterns that have previously been identified as the requirements of a workflow l anguage.
    Preview · Conference Paper · Jun 2007
  • Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Tempo is a language based on classical first-order logic, which can be used for both specifying and implementing concurrent systems. As a declarative programming language, it is unique in that a program explicitly specifies the safety properties that it satisfies. Unlike most specification languages, a Tempo specification of a concurrent system can be executed, also concurrently. An earlier paper presented a subset of Tempo, in which simple synchronization problems could be expressed by precedence relations between events. In this paper we describe a major extension to the language which greatly increases its expressive power. In particular, the language now includes facilities to perform computation — data values, operations on them, and control features — as well as synchronization.
    No preview · Chapter · Apr 2006
  • Rong Yang · Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: One of the distinguishing features of declarative languages is the separation of control and logic. Ideally, this allows us to improve the efficiency of an algorithm by changing only the control but not the logic. In this work, we investigate new control strategies and data structures in logic programs. Our main focus is on logic programs which contain dependent non-determinate computation. We propose a newt ype of finite domain variables, which allow any kind of compound terms in their domain. A compound term in the domain may contain unbound variables which can also become domain variables, leading to nested domain variables.With nested domain variables, we can represent the Cartesian product of several domains as a tree structure. That is, disjunctive constraints stores can be constructed as a nested domain. The consistency of a nested domain can then be checked simultaneously by different parts of computations. Two forms of lookahead are used to perform the consistency checking: deep lookahead and shallow lookahead. It is hoped that, with our lookahead techniques and nested domains, many unnecessary or-branches can be pruned at an early stage. We have tested our ideas by an experimental implementation under SICStus Prolog, and obtained very encouraging results.
    No preview · Conference Paper · Jan 2002
  • Rong Yang · Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: The Andorra Model is a computation model to improve the efficiency of Prolog programs as well as to exploit parallelism. The model was designed in two stages: the basic model and the extended model. The major difference between the two is that a binding determinacy principle replaced the original clause determinacy principle, and an and-or box rewriting computation replaced the traditional resolution. This work aims to tackle some unsolved problems left in the Extended Andorra Model. We propose to replace the original and-or box rewriting method by a targeted search. The search is called targeted because we only look for possible solutions of certain specified variables. The variables shared between different local computations can be dynamically changed to finite domain variables after the targeted search, and their consistency checked eagerly. Therefore, many unnecessary or-branches can be pruned at an early stage. A special feature of our domain variable is that we allow a domain to contain non-ground compound terms, i.e., open structures. Variables within these open structures can also become domain variables, leading to nested domain variables. We have tested our idea by an experimental implementation under SICStus Prolog, and obtained very encouraging results.
    No preview · Conference Paper · Jan 2001
  • Source
    Steve Gregory · Rafael Ramirez
    [Show abstract] [Hide abstract]
    ABSTRACT: Tempo is a declarative concurrent programming language based on classical firstorder logic. It improves on traditional concurrent logic programming languages (e.g., Parlog) by explicitly specifying aspects of the behaviour of concurrent programs, namely their safety properties. This provides great advantages in writing concurrent programs and manipulating them while preserving correctness. The language has a procedural interpretation that allows the specification to be executed, also concurrently. Tempo is sufficiently high-level to simulate practical concurrent programming paradigms, and can act as a common framework in which algorithms for a variety of paradigms may be expressed, compared, and manipulated.
    Preview · Article · Jul 2000
  • Source
    Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Tempo is a logic programming language that has recently been designed with the aim of allowing concurrent programs to be written in a more declarative manner than existing languages. One of the benefits of declarative programming is the potential for systematic derivation of programs --- the subject of this paper. Here we present a few transformation rules that can be applied to Tempo programs, and then describe in detail the derivation of some concurrent algorithms in Tempo. An outline of the Tempo language is also included in order to make the paper self-contained. 1 Introduction One of the major advantages of the declarative approach to programming is the ability to construct programs systematically from specifications by applying correctnesspreserving transformation rules. Existing programs can be transformed to new, possibly more efficient, programs in the same way. Although it could be argued that the same technique can also be applied to "conventional" languages, it is undoubted...
    Preview · Article · Jan 1996
  • Source
    Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: Introduction 1.1 Process-oriented debugging Most debugging tools for logic programs are process-oriented: they allow the user to trace the execution of a program while observing enough information about the execution to locate a bug that has been observed. For example, Prolog's four-port debugger provides facilities for the user to traverse the proof tree and the search tree defined by the program, in the usual top-down left-right order of Prolog. Prolog's debugger essentially allows the user to manually search the proof tree for a buggy node: for example, one that produces a runtime error, unexpectedly fails, or succeeds with incorrect output bindings. A typical search strategy is as follows: 1. Select a subtree to search: either the entire tree or a subtree rooted at a spypoint, preferably near the buggy node. 2. Starting from the root, skip each of the offspring nodes until a buggy node is found. 3. Use the retr
    Preview · Article · Jul 1995
  • Source
    Steve Gregory
    [Show abstract] [Hide abstract]
    ABSTRACT: One way to execute a program faster on a parallel computer is to allocate some processors to speculative computation: work which may prove to be unnecessary. However, this technique, speculative parallelism, requires the programmer to have some control over the physical processors in the machine, and is therefore not usually possible in high-level concurrent languages. This paper investigates the exploitation of speculative parallelism in concurrent logic programming languages. We propose a simple language extension that makes the technique possible, and illustrate its use in two applications: (1) the familiar branch-and-bound search algorithm, and (2) a new dynamic buffer protocol for interprocess communication. The new language feature has been implemented by extending the JAM Parallel Parlog system. The results of our experiments confirm that speculative parallelism can result in greater parallel speedups than is possible with other (divide and conquer) forms of parallelism alone. K...
    Preview · Article · Jan 1995