Skip to content

CombView/language-combview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CombView is a mathematical modeling language based on GMPL.

The idea is to allow the modeling of classic linear integer programming for
combinatorial optimization problems (traveling salesman problem, vehicle
routing problem, knapsack problem, generalized assignment problem, 
timetabling problems, ...) also including novel powerful constructs that
arise naturally in these problems (permutations, subsets, multisets,
 partitions, ...). Decision problems, multi-objective problems and multi-
level problems can also be defined in the language.

Each of these is presented as a function that may return a ''dynamic'' type,
meaning that the result can be either empty, a single object or many
objects simulateneously.

For instance, "function subset(s: set) -> dynamic set" can return many
different sets that are subset of s. As opposed to dynamic functions,
classic (static) functions are also possible, for example,
"function square(int) -> int".

Lamdba functions can be used as parameters and to define new functions.
Functions and types can also be defined externally in the base language
API, still being written in C++ (with future plans for Python).

Labels can be used to identify problem constraints and to reference those
constraints recursively in dynamic programming approaches.

The current version is just a text highlight for Atom editor, that can
help (a lot) the writting of optimization problems using the language.

Future plans include an interpreter an more advanced constructs (and some
syntactic sugar) to simplify even more the definition of optimization and
decision problems.

For those wanting to collaborate with the project (MIT LICENSE), the GMPL
documentation can be handful, also Rubular website for regular expressions.
Perhaps the creation of GMPL language for Atom would greatly help the
development of CombView, as it could be written as an extension.
Other Atom grammars can be found in:
* https://github.com/atom/language-python
* https://github.com/atom
To install it, just include in Atom grammars folder:
$ ~/.atom/packages/language-combview/grammars/combview.cson

More examples will be added soon.

Enjoy!
Igor Machado Coelho and collaborators


About

CombView is a mathematical programming language inspired by GMPL.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published