This repository contains the implementation of software used in the research article "Can LIME Make Interactive Multiobjective Optimization Methods Explainable?"
The repository includes two main components:
- Backend: Computes KKT multipliers and approximated solutions. It provides a Flask API for integration with the frontend but can also function as a standalone module.
- Frontend: An interactive user interface that allows users to input reference points and obtain non-dominated solutions with explanations.
To get started, clone this repository:
git clone https://github.com/industrial-optimization-group/kkt-lime-explanations.git
- Create a virtual environment for the backend Using Python's venv module:
python -m venv .venv
Or with Poetry:
poetry shell
- Activate the virtual environment For venv:
source .venv/bin/activate
Or with Poetry:
poetry shell
- Install dependencies Navigate to the tradeoff-analysis folder and install the backend code:
poetry install
- Run the code Navigate to the explainable_moo folder and run:
python api.py
After this, the server should be running locally in your computer. The IP address of the server will be shown in the terminal.
- In a separate terminal, navigate to the XMOO-UI folder:
cd kkt-lime-explanations
cd XMOO-UI
- Install Dependencies: Use npm, pnpm, or yarn to install the required packages:
npm install
(Replace npm with pnpm or yarn if using one of those package managers.)
- Run the development server: Start the server for local development:
npm run dev
Or open the app in a browser automatically:
npm run dev -- --open
- Ensure the backend server is running.
- Activate the virtual environment and start the Flask API server from the backend directory.
- Access the frontend application:
- Open the development server URL (default: http://localhost:3000) in a web browser.
- Provide reference points in the frontend to generate solutions and explanations.