Skip to content

Documentation improvements #1225

@odow

Description

@odow

Here are some thoughts on improving the documentation. As a general guide, we should aim for something like https://diataxis.fr.

Each of the "Interfaces" could use a tutorial that walks through a simple example, as well as some "How to" guides.

The "Terminology" section is good background explanation.

Guide

My thoughts on the guide is that it is too generic for a novice user. I think we're better off expanding the docs of each interface. For example:

HiGHS has comprehensive tools for defining and extracting models. This can be done either to/from MPS or (CPLEX) format LP files, or via method calls. HiGHS also has methods that permit the incumbent model to be modified. Solutions can be supplied and extracted using either files or method calls.

This isn't helpful because it doesn't say what the tools are, how they're called, or how things differ between the interfaces.

We could keep the Guide, and have something like:

## Load a model from file

The simplest way to use HiGHS to solve a model is to load it from a file using the method `readModel`.

HiGHS infers the file type by the extension. Supported extensions are:

 * `.mps`: for an MPS file
 * `.lp`: for a CPLEX LP file
 
HiGHS can read compressed files that end in the `.zip`, and `.gz` extension.

### Python

```python
model = highspy.readModel("filename.mps")
```

### C

```c
model = Highs_create()
ret = Highs_readModel(model, "filename.mps")
if (ret != 0) {
    printf("Something went wrong.")
}
```

Python

  • Add examples for SciPy, Pyomo, etc
  • Finish documenting highspy example
  • See if @odow can figure out a way to run the Python code in the documentation
  • "Classes" pages need formatting and examples. Not obvious how these relate
  • Move Enums to a higher level? It seems they could go with the options, since they're the same for all interfaces.

C

The Gurobi docs have a very nice layout and structure: https://www.gurobi.com/documentation/10.0/refman/c_api_details.html

Julia

  • Link to JuMP documentation
  • Optional: add examples of how to use the C API

Other

  • @odow fix the edit URLs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions