MAOS-QAP is a cooperative group optimization system (MAOS) for solving the Quadratic Assignment Problem (QAP).

Related Information: MAOS-QAP shares the MAOS kernel with other MAOS applications (e.g. MAOS-GCP and MAOS-TSP), and contains some modules that are specifically for tacking QAP. Please find other related code and software in our Source Code Library.

Basic Description What’s New Directories & Files Command Line & Parameters Output Information References

License information: MAOS-QAP is free software; you can redistribute it and/or modify it under the terms of theĀ Creative Commons Non-Commercial License 3.0.

System Requirements: MAOS-QAP is a platform-independent software developed by JAVA version 1.5 or above.

What’s New

Version: V1.0.001 [download (Binary Code)]:

  • Solver “STD_NLDUX”: It implements the original MAOS-QAP algorithm [1].
  • Setting parameters: QAP:Problem, N, T, Tcon, Solver.

Directories & Files
binary	                           // the binary code of MAOS-QAP
source                             // the source code of MAOS-QAP
myprojects                         // user directory
|-----> examples.bat               // commandline examples
|-----> results                    // the directory for storing runtime results
|-----> setting                    // the setting directory  
	|-----> kernel             // the setting directory for MAOS Kernel
	|-----> QAP                // the setting directory for QAP solvers
                |-----> solver     // the directory containing solver script files (the name of each file is Solver_Name)
|-----> tasks                      // task directory
        |-----> QAP
                |-----> instance   // QAP instances (Problem_Name with the default suffix .txt) 
                |-----> solution   // the directory for storing solutions of QAP instances
                                   // For a normal solution, the file name is Problem_Name.(objective value).sln
                                   // If objective value is removed from the file name, the solution is considered as optimal.

Command Line & Parameters

MAOS-QAP is executed on the command line (Enter the directory “myprojects”, and execute maosKernel.MAOSExecuter). Here is a typical example (See the file “myprojects/Examples.bat” for more examples), in which a user should specify JAVA options, general parameters, problem instance, and solver instance:

$ cd myprojects
$ java -cp ../binary/MAOS_BIN.jar maosKernel.MAOSExecuter QAP:Problem=jeu_100_025_01 N=500 T=500 DUP_TIMES=10 solver=STD_NLDUX

//java: the JAVA executor, JAVA Runtime Environment Version 1.5 or above is preferred
//maosKernel.MAOSExecuter: the main execution entrance of the MAOS program

JAVA Options (See “java -help” for more information):

There is one recommended optional parameter for java:
  -server: select the "server" VM, which is normally faster than the "client" VM

The "-cp" option is used for loading the binary file "../release/MAOS_BIN.jar".

General Parameters:

NAME         VALUE_type   Range      Default_Value   Description

QAP:Problem  String      *	     <Problem_Name>  The problem instance to be solved
--------------------------------------------------------------------------------------------------
N            integer     >1          100 	     The number of agents
T            integer     >0          500	     Terminate condition: The maximum learning cycles
Tcon         integer     >0          -1              Terminate condition: The number of cycles as the best state is unvaried
                                                     //If Tcon==-1, then Tcon=T

DUP_TIMES    integer     >0          2		     Number of trials
--------------------------------------------------------------------------------------------------
Solver       String      *	     <Solver_Name>   The name of the script of the actual solver

//The explanation of Problem_Name and Solver_Name can be found in Directories & Files.

Output Information

For the output, we provide screen output, output a file for the running result, and stored the best solution ever found.

Screen Output:

[Initialization information]: provide the parsing information during the initialization.
[Runtime information]: The program outputs runtime information, i.e., the current best evaluation values, execution time, at every "Tout" cycles.
[Summary information]: At the end, it outputs the input variables, response values, and evaluation values <Vcon, Vopt> of the best solution.

Result File:

The result file will be stored at the directory "myprojects/results".

Solution File:

The best solution (better than any previous solutions) will be stored at the directory "myprojects/tasks/QAP/solution" (of the QAPLIB format).

References
[1] Xiao-Feng Xie. Round-table group optimization for sequencing problems. International Journal of Applied Metaheuristic Computing, 2012, 3(4): 1-24. [DOI]