All Projects → alpha-asp → Alpha

alpha-asp / Alpha

Licence: BSD-2-Clause license
A lazy-grounding Answer-Set Programming system

Programming Languages

java
68154 projects - #9 most used programming language
Classic ASP
548 projects

Projects that are alternatives of or similar to Alpha

lava-optimization
Constraint Optimization with Lava
Stars: ✭ 23 (-47.73%)
Mutual labels:  solver
rekenaar
Idris tactics for (commutative) monoids
Stars: ✭ 21 (-52.27%)
Mutual labels:  solver
rust-lp-modeler
Lp modeler written in Rust
Stars: ✭ 75 (+70.45%)
Mutual labels:  solver
lpsolvers
Linear programming solvers in Python with a unified API
Stars: ✭ 20 (-54.55%)
Mutual labels:  solver
csb
A cloth and soft body simulation library, using position based dynamics.
Stars: ✭ 29 (-34.09%)
Mutual labels:  solver
featool-multiphysics
FEATool - "Physics Simulation Made Easy" (Fully Integrated FEA, FEniCS, OpenFOAM, SU2 Solver GUI & Multi-Physics Simulation Platform)
Stars: ✭ 190 (+331.82%)
Mutual labels:  solver
CapMonsterCloud
a C# wrapper for CapMonster Cloud API
Stars: ✭ 17 (-61.36%)
Mutual labels:  solver
euler2D-kfvs-Fortran2003
2D solver for Euler equations in quadrilateral grid, using kinetic flux vector splitting scheme, written in OOP F2003
Stars: ✭ 17 (-61.36%)
Mutual labels:  solver
salesman.js
Solves the traveling salesman problem using simulated annealing.
Stars: ✭ 38 (-13.64%)
Mutual labels:  solver
libsmt.rs
Rust Bindings to interact with SMTLIB2 compliant solvers
Stars: ✭ 14 (-68.18%)
Mutual labels:  solver
GHOST
General meta-Heuristic Optimization Solving Toolkit
Stars: ✭ 28 (-36.36%)
Mutual labels:  solver
ipc solver
O(N log N)-space IPC solver in OCaml
Stars: ✭ 46 (+4.55%)
Mutual labels:  solver
CSDP.jl
Julia Wrapper for CSDP (https://projects.coin-or.org/Csdp/)
Stars: ✭ 18 (-59.09%)
Mutual labels:  solver
fdtd3d
fdtd3d is an open source 1D, 2D, 3D FDTD electromagnetics solver with MPI, OpenMP and CUDA support for x86, arm, arm64 architectures
Stars: ✭ 77 (+75%)
Mutual labels:  solver
cplex-example
Solving a TSP with the CPLEX C++ API.
Stars: ✭ 40 (-9.09%)
Mutual labels:  solver
ruzzle-solver
A python script that solves ruzzle boards
Stars: ✭ 46 (+4.55%)
Mutual labels:  solver
Fluid Simulation
Self advection, external force and pressure solve to a velocity field represented by a MaC grid.
Stars: ✭ 107 (+143.18%)
Mutual labels:  solver
JSMinesweeper
Minesweeper player, solver and analyser in javascript
Stars: ✭ 25 (-43.18%)
Mutual labels:  solver
rcbc
COIN-OR branch and cut (CBC) bindings for R
Stars: ✭ 16 (-63.64%)
Mutual labels:  solver
ProxSDP.jl
Semidefinite programming optimization solver
Stars: ✭ 69 (+56.82%)
Mutual labels:  solver

Alpha

Latest DOI Travis-CI Build Status AppVeyor Build Status codecov Code Quality Status Coverage Status

Alpha is an Answer Set Programming (ASP) system: It reads a logic program (a set of logical rules) and computes the corresponding answer sets. ASP falls into the category of declarative and logic programming. Its applications are solving combinatorial problems, but it also is a good tool for reasoning in the context of knowledge-representation and databases.

Alpha is the successor of OMiGA and currently in development. In contrast to many other ASP systems, Alpha implements a lazy-grounding approach in hopes of overcoming memory constraints when working with large input.

Alpha is not the fastest system available, since its goal is not to be the fastest system with current technology but to explore new technologies rapidly. Those technologies, like lazy-grounding, allow Alpha to succeed where other ASP systems fail completely. The project deliberately chooses to trade shorter execution times (which would be possible by using unmanaged runtimes, e.g. C/C++, and low-level optimization) for a more straight forward system design and possibilities to interface with the ecosystem built around the Java Virtual Machine.

Getting Started

Download a current version of alpha.jar from Releases.

Running Alpha is as simple as running any other JAR:

$ java -jar alpha.jar

Example Usage

Solve 3-colorability for some benchmarking instance and filter for color predicates:

$ java -jar alpha.jar -i benchmarks/omiga/omiga-testcases/3col/3col-10-18.txt -fblue -fred -fgreen

Note that in this example the path to the input file is relative to the root of this repository. If you have not checked out the repository, you can just download the example file from GitHub.

Building

Alpha uses the Gradle build automation system. Executing

$ ./gradlew build

will automatically fetch all dependencies (declared in build.gradle) and compile the project.

Artifacts generated will be placed in build/. Most notably you'll find files ready for distribution at build/distributions/. They contain archives which in turn contain a bin/ directory with scripts to run Alpha on Linux and Windows.

If you want to generate a JAR file to be run standalone, execute

$ ./gradlew bundledJar

and pick up build/libs/alpha-bundled.jar.

A Note on IDEs

We have contributors using IntelliJ IDEA as well as Eclipse IDE. However, we decided to not check in files related to project configuration. For both tools, standard features to "import" the project based on its Gradle build configuration are available, and they will infer sane defaults. If you run into trouble feel free to file an issue.

Suggested Reading

Research Papers on Alpha

Peer-reviewed publications part of journals, conferences and workshops:

2021

2020

2019

2018

2017

Others (e.g. non-peer-reviewed publications, less formal articles, newsletters):

Similar Work

  • Smodels, a solver usually used in conjunction with lparse.
  • DLV
  • ASPeRiX, a solver that implements grounding-on-the-fly.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].