19 research outputs found
A technique for doing lazy evaluation in logic
AbstractWe develop a natural technique for defining functions in logic, i.e. PROLOG, which directly yields lazy evaluation. Its use does not require any change to the PROLOG interpreter. Function definitions run as PROLOG programs and so run very efficiently. It is possible to combine lazy evaluation with nondeterminism and simulate coroutining. It is also possible to handle infinite data structures and implement networks of communicating processes. We analyze this technique and develop a precise definition of lazy evaluation for lists. For further efficiency we show how to preprocess programs and ensure, using logical variables, that values of expressions once generated are remembered for future access. Finally, we show how to translate programs in a simple functional language into programs using this technique
Fast Design Space Exploration of Nonlinear Systems: Part I
System design tools are often only available as blackboxes with complex
nonlinear relationships between inputs and outputs. Blackboxes typically run in
the forward direction: for a given design as input they compute an output
representing system behavior. Most cannot be run in reverse to produce an input
from requirements on output. Thus, finding a design satisfying a requirement is
often a trial-and-error process without assurance of optimality. Finding
designs concurrently satisfying multiple requirements is harder because designs
satisfying individual requirements may conflict with each other. Compounding
the hardness are the facts that blackbox evaluations can be expensive and
sometimes fail to produce an output due to non-convergence of underlying
numerical algorithms. This paper presents CNMA (Constrained optimization with
Neural networks, MILP solvers and Active Learning), a new optimization method
for blackboxes. It is conservative in the number of blackbox evaluations. Any
designs it finds are guaranteed to satisfy all requirements. It is resilient to
the failure of blackboxes to compute outputs. It tries to sample only the part
of the design space relevant to solving the design problem, leveraging the
power of neural networks, MILPs, and a new learning-from-failure feedback loop.
The paper also presents parallel CNMA that improves the efficiency and quality
of solutions over the sequential version, and tries to steer it away from local
optima. CNMA's performance is evaluated for seven nonlinear design problems of
8 (2 problems), 10, 15, 36 and 60 real-valued dimensions and one with 186
binary dimensions. It is shown that CNMA improves the performance of stable,
off-the-shelf implementations of Bayesian Optimization and Nelder Mead and
Random Search by 1%-87% for a given fixed time and function evaluation budget.
Note, that these implementations did not always return solutions.Comment: 14 pages, 26 figures. arXiv admin note: text overlap with
arXiv:2010.0984
Using service grammar to diagnose bgp configuration errors
Often network components work correctly, yet end-to-end services don’t. This happens if configuration parameters of components are set to incorrect values. Configuration is a fundamental operation for logically integrating components to set up end-to-end services. Configuration errors arise frequently because transforming end-to-end service requirements into component configurations is inherently difficult. Such transformation is largely performed in a manual and localized fashion, resulting in high cost of network operations. The Service Grammar technique has been developed to solve the configuration error diagnosis problem, and, more generally, to formalize the process of building complex systems via configuration. At its core is a Requirements Language that contains global, high-level constraints upon configuration parameters. These are derived from identifying the notion of “correct configuration ” associated with different protocols. These are composed to create system-wide requirements on architecture and policies. A Diagnosis Engine checks if constraints in the Requirements Language are true given definite component configurations, and is used recursively to check composite requirements. This paper describes an application of Service Grammar to diagnosing BGP configuration errors. As BGP architecture and policies differ widely from one network to another, it is not possible using previous techniques to check if router configurations implement the intended requirements. Our tools enable administrators to specify system-wide, network-specific requirements and check if they are correctly implemented by component configurations
Symbolic Discrete-Event Simulation
The event-scheduling view of the discrete-event simulation technique is widely used to model and simulate dynamic systems. This paper presents DMOD, a formalization of this technique. It offers two main advantages. First, it retains the powerful intuitions behind this technique yet makes it easier to use them. In particular, it proposes a new method for logically specifying event preemption. Second, DMOD permits temporal reasoning about modeled systems. This is done by means of symbolic simulation, i.e. simulation in which input parameters can be constrained variables. Symbolic simulation yields histories parameterized by input variables. Simple manipulation of symbolic histories allows proof of a range of temporal properties such as safety, possibility, or sensitivity. Restrictions upon models are outlined which allow symbolic simulation to proceed efficiently. DMOD is illustrated by means of a hybrid system, a railroad crossing with continuous, non-linear state and discrete events. D..