/* Copyright 2025, Gurobi Optimization, LLC *//* This example reads a model from a file and tunes it. It then writes the best parameter settings to a file and solves the model using these parameters. */importcom.gurobi.gurobi.*;publicclassTune{publicstaticvoidmain(String[]args){if(args.length<1){System.out.println("Usage: java Tune filename");System.exit(1);}try{GRBEnvenv=newGRBEnv();// Read model from fileGRBModelmodel=newGRBModel(env,args[0]);// Set a time limit for the modelmodel.set(GRB.DoubleParam.TimeLimit,5);// Set a time limit for the whole tuning run// Note that both time limits are chosen to have a quick demonstration.// In general, a total tune time limit should be set such that the// tuning tool can test several hundreds of parameter settingmodel.set(GRB.DoubleParam.TuneTimeLimit,60);// Set the TuneResults parameter to 2//// The first parameter setting is the result for the first solved// setting. The second entry the parameter setting of the best// parameter setting.model.set(GRB.IntParam.TuneResults,2);// Tune the modelmodel.tune();// Get the number of tuning resultsintresultcount=model.get(GRB.IntAttr.TuneResultCount);if(resultcount>=2){// Load the tuned parameters into the model's environment//// Note, the first parameter setting is associated to the first// solved setting and the second parameter setting to best tune// result.model.getTuneResult(1);// Write the tuned parameters to a filemodel.write("tune.prm");// Solve the model using the tuned parametersmodel.optimize();}// Dispose of model and environmentmodel.dispose();env.dispose();}catch(GRBExceptione){System.out.println("Error code: "+e.getErrorCode()+". "+e.getMessage());}}}
Help and Feedback