GRAND CHALLENGES for COMPUTING RESEARCH This pack contains the abstracts of seven proposals for Grand Challenges that will help to focus UK computing research upon long-term scientific objectives over the coming two decades. This exercise was initiated in 2002. The accompanying document Criteria of Maturity for a Grand Challenge explains what is meant by the term ‘Grand Challenge’. Another accompanying document, Report of the Programme Committee on a Workshop on Grand Challenges for Computing Research, explains how these seven proposals were distilled from submissions from the UK computer science community, at a Workshop held in Edinburgh in November 2002. These proposals are under continuing discussion on a website, www.nesc.ac. uk/esi/events/Grand_Challenges, which is open to all. A small team managing each proposal is continually refining it, and enlisting support for it. These proposals, and further submissions for new proposals, will be discussed at a conference at Newcastle in the spring of 2004. By these means the community will develop and update its long-term research goals. September 2003 1 IVIS: In Vivo ⇔ In Silico The Worm, the Weed and the Bug: Breathing Life into the Biological Data Mountain Ronan Sleep, University of East Anglia Biology continues to advance by leaps and bounds. Hard on the heels of the Genome project are, among others, the Proteome and Metabolome projects generating still more data for Biologists to digest. This data is collected, processed, and stored in computer form, but accessing and making it all fit together presents a major challenge. It takes years of experience to gain familiarity with even one sort of biological data, let alone the many new forms emerging with ever increasing frequency. To meet this challenge, a new breed of scientist who understands both biology and computing is emerging in a new cross-disciplinary field of Biocomputing. Projects such as the Medical Research Council Mouse Atlas Project at Edinburgh are beginning to show how modern computing technology can draw the data together in a more convenient and accessible manner, and similar projects are being mooted for other life forms. An Atlas sounds rather a passive thing. Could computing play a much more active role, by breathing life into the data in the form of an advanced simulation model? Such a simulation would allow the scientist to perform an increasing range of experiments with virtual life forms. Even rudimentary simulations would allow rapid checking of new theories on existing data, in a way which just is not possible with raw biological data in its various forms. As the fidelity of the virtual life form improved, a point might be reached where the model moves beyond its experimental base to generate predictions, which could be checked with ’wet’ experiments. We routinely use simulations to design aeroplanes, bridges and to predict weather: can we apply the same techniques to living systems? Building a faithful simulation (in silico) model of real (in vivo) life form is a Grand Challenge indeed. Where should we start? Which life forms should it target initially? What aspects of the life form should be the focus of the challenge? The IVIS Grand Challenge has selected developmental biology as the focus, and identified some of the most studied and stable life forms as possible targets, including the Nematode Worm (C. elegans), the common weed Arabidopsis, and the bug Streptomyces (the worm, the weed and the bug). There is already a considerable amount of precise data about these very studied life forms. This provides a sharp set of targets for the challenge, which will either deliver a convincing in silico model or not, and even a lay person will be able to detect outright failure. For the expert, the touchstone of success will be widespread use of IVIS models by biologists. The potential benefits from a successfully mounted challenge are enormous, ranging from an understanding of regeneration processes in plants and animals with potentially revolutionary implications for disease and accident victims, to adaptive and self-repairing software, hardware, and even social systems. The coping stone of a successful challenge would be a generic approach to modelling of complex systems which becomes the standard medium for expressing and reasoning in the life sciences and which also has major applications in the design of man made complex distributed reactive adaptive systems. Even partial success would open major commercial opportunities. 2 Science for Global Ubiquitous Computing Robin Milner, University of Cambridge How many computers will be you be using, wearing, or have installed in your body, in 2020? How many other computers will they be talking to? What will they be saying about you, doing for you, or doing to you? By that time computers will be ubiquitous and globally connected. It is better not to count them, but to regard them collectively as a single Global Universal Computer (GUC). Who then will program the GUC, and how, and for whose benefit? Shall we still be in control of it, or even understand it? These questions underlie two Grand Challenges. This one is theoretical: what are the models and theories we need to understand the GUC? The other, “Scalable Ubiquitous Computing Systems”, is concerned with engineering: how shall we design and build the GUC? The two are strongly linked, but the attack will be sharper if their goals are set separately. The GUC entails large-scale networks of computing devices and agents. They are hardware or software; static or mobile; permanent or ephemeral; interactive and location-aware. They may be reflective, i.e. they may monitor and adapt their own performance. They operate in highly distributed scenarios involving both processes and data, at low power and in a timely fashion, guaranteeing privacy and security, locally prone to failure yet reliable as a whole. The GUC is partly engineering artefacts, and partly a natural phenomenon (i.e. not fully designed). The theoretical Challenge is this: • To develop a coherent informatic science whose concepts, calculi, theories and automated tools allow descriptive and predictive analysis of the GUC at many levels of abstraction; • That every system and software construction – including languages – for the GUC shall employ only these concepts and calculi, and be analysed and justified by these theories and tools. We deliberately pose this as an ideal goal. It will never be fully achieved, but we pose it in this ideal form because we see no argument that limits the degree of attainable success. The second part of the Challenge is a stern test: that theories should inform the creation of systems, not merely be retrofitted to analyse them. Many engineering disciplines meet this test to a high degree, but our current GUC —the Internet— fails it. This is because we have only recently attained some grasp of the range of concepts involved. They include: Non-determinism and concurrency; Space and mobility; Security and Privacy; Boundaries, resources and trust; Distributed data; Game-theoretic modelling; Hybrid systems; Stochastics; Model-checking. To address the Challenge, three categories are defined for its sub-projects: (1) experimental applications (Exemplars); (2) experimental generic systems; (3) evolving theories at many levels of abstraction. These are all essential, so that the theoretical Challenge both informs and is informed by practical systems. The first two categories must be collaborative. Examples of applications are ‘A Sentient Building’, and ‘Healthcare Coordinated across a City’. On experimental generic systems we shall collaborate with our sister Grand Challenge, ‘Scalable Ubiquitous Computing Systems’. The third category, evolving a hierarchy of theories, is the only way to render the GUC susceptible to scientific explanation. Why a hierarchy? Consider just one example: at one level of abstraction we must explain the GUC in terms of notions like trust. We have to develop a logic of trust, which codifies when and why one agent (of billions) may trust another that seeks to interact with it. But the behaviour which conforms to this trust model will be enacted at a lower, more concrete, level in terms of purely operational concepts. Our theory must demonstrate that this enactment is sound. Notions like reflectivity or security demand similar treatment. So the hierarchy of theories lies at the heart of the proposed research. We already have a precedent for this kind of work in calculi, logics and tools already developed for concurrent interactive systems, so we are not starting from scratch. Success in meeting our Challenge may be measured by how far such theories are not merely developed but applied in practice. 3 Memories for Life Ehud Reiter, University of Aberdeen There is probably a tremendous amount of information about you in the various electronic devices you own (PC, mobile, TV, etc): emails you have sent and received, telephone numbers you have called, TV programmes you have watched, perhaps digital photographs and audio recordings. These are your computer ”memories”, and they will almost certainly grow in size and richness, and in their importance to you, over the next 10-20 years. Imagine the possibilities if this information could be accessed and used easily (while remaining under your complete control to preserve privacy). For example, imagine being able to easily search for anything about your nephew Peter, regardless of whether its in an email, digital photo, or audio recording. In the longer term, imagine a computer maths tutoring system for your daughter Mary that based its lessons on things Mary had been doing, so she could see that maths was important and relevant - and a system that helped grandpa George create ”stories” about his life (perhaps a summary of his experiences as a soldier in the 2003 Iraq war, for his grandson Peter) by finding and integrating relevant computer memories. Achieving this vision is an enormous challenge for computer science. Among the many questions that need to be answered are • (computer systems challenge) how can ”memories” be stored reliably over a period of decades, especially if hardware and software continue to change rapidly (have you tried to listen to a 78 record recently?) • (computer security challenge) how should privacy be protected, especially when you are present in someone else’s memory (if your ex-lover has a digital photo of you and him together, what rights do you have over his photo?) • (database and information retrieval challenge) how should a diverse range of memories be stored, indexed, and searched in an integrated and seamless fashion? How can queries that require sophisticated interpretation be handled, such as ”find a picture of me playing with Peter when he was a toddler”? • (artificial intelligence challenge) how can information from a diverse assortment of memories be combined and reasoned with, and how can knowledge extracted from this process be used by applications (can we deduce from Mary’s memories that her cat has had kittens, and use this in a maths tutoring system?) • (human-computer interaction challenge) how should people interact with (view, update, delete, annotate) memories and associated knowledge? Can we provide appropriate tools for people of widely different backgrounds and preferences (virtual reality for Peter, smart paper for you, speech-based interface for grandpa George as he can’t see well?) We believe that the accumulation of personal digital memories is inevitable; people are going to be storing their emails, digital photos, etc regardless of what computer scientists do. The general challenge for computer science is to develop ideas and techniques that help people get the maximum benefit from these memories, while at the same time giving people complete control over memories so as to preserve their privacy. 4 Scalable Ubiquitous Computing Systems Jon Crowcroft, University of Cambridge We are all acquainted with the Personal Computer. We are less aware of the burgeoning numbers of invisible, embedded computers around us in the fabric of our homes, shops, vehicles and even farms. They help us command, control, communicate, entertain, and commerce, and these invisible computers are far, far more numerous than their desktop cousins. The visible face of computing, the ubiquitous PC, is nowadays generally networked. To date, embedded computing systems have been largely used to replace analog control systems (for reasons of price, performance and reliability). Increasingly, however, we will find systems are integrated into a whole. This will lead to a challenge for Computer Science in the form of system complexity. Complexity is at the core of the skillset of computer science and engineering, but it is also becoming a key piece of the formalisms used to understand other systems in the natural world, in ecology and biology and in physics. With the Internet as large and organic as it already is, we see a complex set of interactions with graph theory, control theory, economics and game theory, and a number of other disciplines being bought to bear and even extended to understand its behaviour. We also see a set of engineering rules of thumb maturing into design principles, which can be applied to other systems. Some principles already established in the world of Internet-scale engineering give us hope that we can build systems early (and there are many Ubiquitous Computing projects underway in the UK, EU and world today), with some hope that they will work. However, as systems grow, new problems for performance (stability, availability, etc) will emerge. Critical new areas for concern are the control of multiple resources (scheduling for battery life, randomising timing of events to avoid correlated overload, statistical failure tolerance in very large scale sensor systems). WIthin the timescales of this challenge, components will even start to draw resources (power) directly from their environment (ambient heat, RF etc), and this has hidden consequences (radio opacity in unusual places for example). The more we look at how such systems will be built, the more we see them vanish into the substance (and ether) around us! The core of this challenge then, is to abstract out these engineering design principles, and this will be achieved largely through a process of “build and learn”. This is a natural complement and sister to the challenge to uncover the Science for Global Ubiquitous Computing, which will have descriptive power. We will have prescriptive solutions (patterns) for the mixed reality environment that will form the next phase of development of cyberspace. 5 Architecture of Brain and Mind Aaron Sloman, University of Birmingham Introduction What is the most powerful and most complicated computer on the planet? Wrong! it’s not a machine you can buy for millions of dollars, it’s the amazing system that we all own, the few kilos of grey and white mush in our heads..... Biological information processing systems produced by evolution still far outstrip both our understanding and our practical achievements. In order to reduce both the theoretical and the practical gap, we need to look closely at two of the most impressive products of evolution: human brains and human minds – and attempt to construct a combined vision of how they work: Brains, the contents of our skulls, are composed of extraordinarily intricate physical structures, performing many tasks in parallel at many scales, from individual molecules to large collections of cooperating neurones or chemical transport systems. Minds are more abstract and contain ideas, percepts, thoughts, feelings, memories, mathematical knowledge, motor control skills and other things that cannot be seen by opening up skulls. Yet their existence and their power to do things depends on all the ‘wetware’ components that make up brains. Can we ever replicate all that functionality? At least we can improve our understanding, by developing new deep theories, tested in working models. The Challenge We aim to combine insights from several disciplines: from neuroscientists studying brain mechanisms, from psychologists, linguists, social scientists, ethologists and philosophers studying what minds can and cannot do, and from researchers in computer science and AI developing techniques for implementing many kinds of abstract mechanisms and processes in concrete physical machines. We should be able to implement many kinds of abstract mental processes and mechanisms in physical systems, just as abstract machines like spelling checkers, email systems, databases and AI planners and problem-solvers are already implemented in electronic computers and networks. This research will address two age-old quests: the attempt to understand what we are, and the attempt to make artificial human-like systems, whether entertaining toys, surrogate humans to work in inhospitable environments or intelligent robot helpers for the aged and the infirm. How will it be done? Several mutually-informing tasks will be pursued in parallel: Task 1 Build computational models of brain function, at various levels of abstraction, designed to support as many as possible of the higher level functions identified in other tasks. Task 2 Codify typical human capabilities, for instance those shared by young children, including perceptual, motor, communicative, emotional and learning capabilities and use them to specify a succession of increasingly ambitious design goals for a fully functioning (partially) human-like system. Task 3 Develop a new theory of the kinds of architectures capable of combining all the many information-processing mechanisms operating at different levels of abstraction, and test the theory by designing and implementing a succession of increasingly sophisticated working models, each version adding more detail. Analysing what those models can and cannot do and why, will feed back information to the other two tasks. A possible 15 to 20 year target providing an extremely demanding test of the scientific advances might be demonstration of a robot with some of the general intelligence of a young child, able to learn to navigate a typical home and perform a subset of domestic tasks, including some collaborative and communicative tasks. Unlike current robots it should know what it is doing and why, and be able to discuss alternatives. Linguistic skills should include understanding and discussing simple narratives about things that can happen in its world, and their implications. Achieving all this will require major scientific advances in the aforementioned disciplines, and could provide the foundation for a variety of practical applications in many industries, in unmanned space exploration, in education, and in the evergrowing problem of caring for disabled or blind persons wishing to lead an active life without being dependent on human helpers. Perhaps many people reading this will welcome such a helper one day. 6 Dependable systems evolution Jim Woodcock, University of Kent CNN News, June 4th, 1996: “The Ariane 5 rocket was destroyed seconds after it took off,” a spokesman for Arianespace said today. The European Space Agency spent 10 years and $7 billion developing the giant rocket that can put six tonnes of satellite into orbit. So what went wrong? A piece of software that had been extensively tested, and which worked well in Ariane 4, caused a simple arithmetic error in Ariane 5. This led the guidance system to make a dramatic, but unnecessary change to the rocket’s course. A backup system took over control, and repeated the same mistake. The rocket was destroyed before aerodynamic forces ripped it apart. The millions of software faults that afflict ordinary PC users every day are less dramatic, but much more familiar, and collectively more expensive even than the loss of Ariane 5. Each software fault offers an opening to a virus. Just one infection like the Code Red virus was estimated to have caused losses of $4 billion world wide. It all adds up. In May 2002, the US department of Commerce estimated that the total cost to the US economy of avoidable faults in software is $60 billion. A computing system is dependable if we can justify the reliance that we place on the things that it does for us. Evidence is needed in advance to back up any promises about a computer system’s future service, and this evidence must be scientifically rigorous. At the moment it’s very expensive and difficult to produce such evidence. Exhaustive testing is usually out of the question: checking every test case in an aircraft control system would take thousands of computers hundreds of years to complete. A more sophisticated approach to checking correctness is based on mathematics. This was used to show, for instance, that certain smart cards don’t let crooks counterfeit money. But even these techniques can be costly to use. It took over 100 man-years of effort to produce the safety case for the Sizewell B nuclear power station. We need the scientific foundation to be able to build systems whose dependability can be justified, even in the face of the most extreme threats. We need to be able to put systems in inaccessible places, knowing that they will continue to work over decades. We need to be able to build very large scale systems with controllable costs and risks. We need the ability to evolve such systems rapidly, at costs which reflect the size of change, not the scale of the system. The scientific and technical advances that we hope will result from this Grand Challenge could be the basis and trigger of a radical change in the practice of developing computer systems. We want suppliers to sell software for its safety, security, and reliability, as well as for its functionality. Perhaps in the future: • Commercial and industrial-scale software can be developed to be truly dependable, at lower cost and with less development risk than today. • The vulnerabilities in existing computer systems can be discovered and corrected more effectively, improving their dependability. • Dependable systems can be evolved dependably including, for a class of applications, just-in-time creation of required services. The various technologies are now sufficiently advanced that this project can be planned with a reasonable prediction of success. Within fifteen years we hope to produce prototype tools and examples of their successful use that are sufficiently persuasive to encourage the industry to make these improvements. 7 Journeys in Non-Classical Computation Robust, adaptable, powerful computation, as inspired by Nature Susan Stepney, University of York How can we build complex computational systems - systems that are autonomous, adaptable, and robust - from millions of less reliable and simpler components? How can we build them to perform correctly and safely in an unpredictable, changing and hostile environment, and over long periods of time? Such tasks are currently well beyond the state of our computational art, and as our technology moves towards ever smaller and ever more numerous nano-scale and quantum devices, these tasks will get only more difficult. And yet biological processes manage to do such things routinely. Living creatures are remarkably robust and adaptable. They can survive injury, damage, wear and tear, and continual attack from other creatures. Biology manages to take huge amounts of potentially unreliable matter and use self-checking, self-repair, self-reconfiguration, multiple levels of redundancy, multiple levels of defence, to develop adaptable complex biological organisms that continue to work for long periods of time in an extremely hostile environment. So, in an attempt to cope with complexity, researchers are drawing inspiration from biology, which seems to have already discovered the answers, to develop a host of bio-inspired algorithms in evolution (genetic algorithms, genetic programming), neurology (artificial neural networks), immunology (artificial immune systems), plant growth (L-systems), social networks (ant colony optimisation), and more. Researchers are also beginning to explore open complex adaptive systems, where new resources, and new kinds of resources can be added at any time, either by external agency, or by the actions of the system itself. Such new resources can fundamentally alter the character of the system dynamics, and so allow new possibilities, new adaptations. Our current computational systems are beginning to open themselves, for example, through the continuing dialogue between user and machine, through continued new connections to networks such as the Internet, and through robotic systems controlling their own energy sources. One of the most exciting, and seemingly weird, recent developments is the nonclassical paradigm of quantum computing. This has emphasised the fundamental link between computation and its physical embodiment in the real world. Still in relative infancy, it holds out the promise of massive increases in computation power, of untappable communication channels, and of spooky effects such as quantum teleportation. Classical physics did not disappear when modern physics came along: rather its restrictions and domains of applicability were made explicit. Similarly, these various forms of non-classical computation — bio-inspired algorithms, open complex adaptive systems, quantum computation, and more — will not supersede classical computation: they will augment and enrich it. This Grand Challenge seeks to explore, generalise, and unify all these many diverse non-classical computational paradigms, to produce a fully mature and rich science of all forms of computation, that unifies the classical and non-classical (natural) computational paradigms. This Challenge will additionally provide some of the infrastructure and context for sister Grand Challenges in Biological Modelling and in Ubiquitous Computing. Such a mature computational science will allow us to design and build robust, adaptable, powerful, safe, complex computational systems. It will help researchers to uncover deep biological truths: which features of biology are necessary for correct robust functioning (so true of any living organism)? Which are necessary only because of the particular physical realisation (carbon-based terrestrial life-forms)? Which are merely contingent evolutionary aspects (and so could be different if “the tape were played again”)? And it will help researchers to uncover deep physical truths: what is the relationship between logical information (bits) and physical reality?