7,539 research outputs found
Simulations Between Programs as Cellular Automata
We present cellular automata on appropriate digraphs and show that any covered normal logic program is a cellular automaton. Seeing programs as cellular automata shifts attention from classes of Herbrand models to orbits of Herbrand interpretations. Orbits capture both the declarative, model-theoretic meaning of programs as well as their inferential behavior. Logically and intentionally different programs can produce orbits that simulate each other. Simple examples of such behavior are compellingly exhibited with space-time diagrams of the programs as cellular automata. Construing a program as a cellular automaton leads to a general method for simulating any covered program with a Horn clause program
Complex Systems: A Survey
A complex system is a system composed of many interacting parts, often called
agents, which displays collective behavior that does not follow trivially from
the behaviors of the individual parts. Examples include condensed matter
systems, ecosystems, stock markets and economies, biological evolution, and
indeed the whole of human society. Substantial progress has been made in the
quantitative understanding of complex systems, particularly since the 1980s,
using a combination of basic theory, much of it derived from physics, and
computer simulation. The subject is a broad one, drawing on techniques and
ideas from a wide range of areas. Here I give a survey of the main themes and
methods of complex systems science and an annotated bibliography of resources,
ranging from classic papers to recent books and reviews.Comment: 10 page
Self-Replication and Self-Assembly for Manufacturing
It has been argued that a central objective of nanotechnology is to make
products inexpensively, and that self-replication is an effective approach
to very low-cost manufacturing. The research presented here is intended to
be a step towards this vision. We describe a computational simulation of
nanoscale machines floating in a virtual liquid. The machines can bond
together to form strands (chains) that self-replicate and self-assemble
into user-specified meshes. There are four types of machines and the
sequence of machine types in a strand determines the shape of the mesh
they will build. A strand may be in an unfolded state, in which the bonds
are straight, or in a folded state, in which the bond angles depend on the
types of machines. By choosing the sequence of machine types in a strand,
the user can specify a variety of polygonal shapes. A simulation typically
begins with an initial unfolded seed strand in a soup of unbonded machines.
The seed strand replicates by bonding with free machines in the soup. The
child strands fold into the encoded polygonal shape, and then the polygons
drift together and bond to form a mesh. We demonstrate that a variety of
polygonal meshes can be manufactured in the simulation, by simply changing
the sequence of machine types in the seed
Object orientation and visualization of physics in two dimensions
We present a generalized framework for cellular/lattice based visualizations
in two dimensions based on state of the art computing abstractions. Our
implementation takes the form of a library of reusable functions written in C++
which hides complex graphical programming issues from the user and mimics the
algebraic structure of physics at the Hamiltonian level. Our toolkit is not
just a graphics library but an object analysis of physical systems which
disentangles separate concepts in a faithful analytical way. It could be
rewritten in other languages such as Java and extended to three dimensional
systems straightforwardly. We illustrate the usefulness of our analysis with
implementations of spin-films (the two-dimensional XY model with and without an
external magnetic field) and a model for diffusion through a triangular
lattice.Comment: 12 pages, 10 figure
- …