solve() sends a model to the service as a sequence of bytes, in a format
defined by the service. encode() produces these bytes from a model or a
program(), and encode_params() the bytes for parameter tables on their
own. Encoding gives the same bytes for the same model every time.
Details
You need these functions only to store the bytes, compare them, or send
them yourself; solve() encodes a model for you.