Download

It is possible to save the obtained solution and the processing information in JSON format, either as a JSON String or as an external JSON file.

Replaced external JSON parsing library javax.json with newer jakarta.json.

Fixed bug in defining lower bounds on json format.

You can formulate the problem in JSON format contained either in a string or in an external file using the JsonProblem class.

The classes in the org.ssclab.log package have been updated with the introduction of the error(),info(),fine() etc. methods in the SscLogger class. The SscLevel class has the new ERROR level.

The class org.ssclab.pl.milp.MILP has been corrected as the constructor that accepted a ListConstraints object as a parameter was missing. The class org.ssclab.pl.milp.Constraint has also been corrected as the constructor that accepted a string indicating the constraint label was missing.

Now it is possible to declare, in a MILP problem in text format, all variables as belonging to a specific type using the "ALL" statement (for example, if all variables are wanted to be integers "INT ALL"). It is also possible, still in text format, to declare in a MILP problem a subset of variables as belonging to a specific type using the wildcard statement "*" (see example 2.9).

SSC4.1.0r1.jar.zip
SSC4.1.0r1.src.zip

  • 11/04/2024
  • JDK 10.0 or later

Optimization of cleaning the final table Phase 1 of the simplex.

SSC4.1.0r0.jar.zip
SSC4.1.0r0.src.zip

  • 03/04/2024
  • JDK 10.0 o superiore

In text format, it is now possible to explicitly specify constraints by placing variables on both the left-hand side (LHS) and right-hand side (RHS). Furthermore, in text format, it is not necessary to include all variables in the objective function, but only those with coefficients different from zero. It is possible to provide a problem in text format by inserting it into a string (see example 1.5 ). Finally, in problems with text format stored in external files, it is no longer possible to pass a simple path as a string to the constructor, but rather as an instance of the Path class (see example 1.11 ).

SSC4.0.0r0.jar.zip
SSC4.0.0r0.src.zip

  • 22/03/2024
  • JDK 10.0 or later

Warning ! The library now has prefixes related to the package names that have been changed from it.ssc to org.ssclab to ensure uniqueness by aligning these names with the domain name made available on the internet. Nevertheless, the class names and their functionalities remain the same as in previous versions. Additionally, this version introduces several improvements in memory usage.

SSC3.0.1r3.jar.zip
SSC3.0.1r3.src.zip

  • 18/06/2019
  • JDK 8.0 or later

Warning ! If you download this version, please note that to run the updated examples or use the API documentation, you will need to adapt the package names (the prefix will change from 'it.ssc' to 'org.ssclab' in the next version). For example, if an example code contains a statement like 'import org.ssclab.pl.milp.LP', you will need to change it to 'import it.ssc.pl.milp.LP' to use it with this version of the library.

SSC3.0.1r0.jar.zip
SSC3.0.1r0.src.zip

  • 20/10/2018
  • JDK 8.0 or later

From this version it is possible to interrupt the simplex or the B&B to obtain a feasible solution that is not necessarily optimal (see examples 1.10 and 2.14).

SSC3.0.0r2.jar.zip

  • 12/10/2018
  • JDK 8.0 or later

Starting from version 3, in the problems with matrix format, the "Double" wrapper is no longer used to store the coefficients of the matrix A and the rhs values, but the "double" primitive is used. As a result, the null values cannot be stored in these variables, but will be represented with the NaN notation (see example 1.4). Furthermore, the inequalities format has been modified to be more flexible (see example 1.6). Finally, in the use of the sparse format it is necessary to pass to the LP (or MILP) constructor the constant FormatType.SPARSE (see example 1.7).