HOME

TheInfoList



OR:

Comet is a commercial
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
designed by at-the-time
Brown University Brown University is a private research university in Providence, Rhode Island. Brown is the seventh-oldest institution of higher education in the United States, founded in 1764 as the College in the English Colony of Rhode Island and Providenc ...
professor Dr.
Pascal Van Hentenryck Pascal Van Hentenryck (born 8 March 1963) is the A. Russell Chandler III Chair and Professor of Industrial and Systems Engineering at Georgia Tech. He is credited with pioneering advances in constraint programming and stochastic optimization, bridg ...
and used to solve complex
combinatorial optimization Combinatorial optimization is a subfield of mathematical optimization that consists of finding an optimal object from a finite set of objects, where the set of feasible solutions is discrete or can be reduced to a discrete set. Typical combi ...
problems in areas such as
resource allocation In economics, resource allocation is the assignment of available resources to various uses. In the context of an entire economy, resources can be allocated by various means, such as markets, or planning. In project management, resource allocation ...
and
scheduling A schedule or a timetable, as a basic time-management tool, consists of a list of times at which possible task (project management), tasks, events, or actions are intended to take place, or of a sequence of events in the chronological order ...
. It offers a range of optimization algorithms: from
mathematical programming Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
to
constraint programming Constraint programming (CP) is a paradigm for solving combinatorial problems that draws on a wide range of techniques from artificial intelligence, computer science, and operations research. In constraint programming, users declaratively state th ...
,
local search algorithm In computer science, local search is a heuristic method for solving computationally hard optimization problems. Local search can be used on problems that can be formulated as finding a solution maximizing a criterion among a number of candidate so ...
s and "dynamic stochastic combinatorial optimization."Taylor, J.,
First Look - Dynadec Comet
, July 8, 2009
Comet programs specify local search algorithms as two components: * a high-level model describing the applications in terms of constraints, constraint combinators, and
objective function In mathematical optimization and decision theory, a loss function or cost function (sometimes also called an error function) is a function that maps an event or values of one or more variables onto a real number intuitively representing some "cos ...
s; * a search procedure expressed in terms of the model at a high abstraction level. This approach promotes
reusability In computer science and software engineering, reusability is the use of existing ''assets'' in some form within the software product development process; these ''assets'' are products and by-products of the software development life cycle and in ...
across applications. Its
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
allows it to be used as a
software library In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subr ...
. Comet also features high-level abstractions for
parallel Parallel is a geometric term of location which may refer to: Computing * Parallel algorithm * Parallel computing * Parallel metaheuristic * Parallel (software), a UNIX utility for running programs in parallel * Parallel Sysplex, a cluster of IBM ...
and
distributed computing A distributed system is a system whose components are located on different computer network, networked computers, which communicate and coordinate their actions by message passing, passing messages to one another from any system. Distributed com ...
, based on
loop scheduling In parallel computing, loop scheduling is the problem of assigning proper iterations of parallelizable loops among ''n'' processors to achieve load balancing and maintain data locality with minimum dispatch overhead. Typical loop scheduling meth ...
,
interrupt In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted, ...
s, and
work stealing In parallel computing, work stealing is a scheduling strategy for multithreaded computer programs. It solves the problem of executing a ''dynamically multithreaded'' computation, one that can "spawn" new threads of execution, on a ''statically mul ...
.


References


External links


Comet homepage at Dynadec
(defunct)
Constraint-Based Local Search by Pascal Van Hentenryck and Laurent Michel. The MIT Press, 2005.
{{Mathematical optimization software Domain-specific programming languages