Repository files navigation

[IEEE TITS] ICAM (Instance-Conditioned Adaptation Model)

This repository contains the code implementation of the paper Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver. In this paper, we propose a powerful RL-based constructive method called ICAM. When facing diverse geometric structures and patterns of instances across different scales, ICAM can effectively capture the instance-specific features (i.e., distance and scale) via the proposed instance-conditioned adaptation function. To make the model better aware of instance-specific information, we incorporate these features into the whole solution construction process (i.e., embedding, attention, and compatibility) via a powerful yet low-complexity instance-conditioned adaptation attention mechanism. Therefore, ICAM can directly generate promising solutions for instances across quite different scales, which improves the large-scale generalization performance for RL-based NCOs.

ICAM

Dependencies

Python>=3.8
torch==2.0.1
numpy==1.24.4
tqdm

We don't use any hard-to-install packages. If any package is missing, just install it following the prompts.

We recommend using PyTorch 2.x for better GPU memory utilization and training (testing) acceleration. This code is trained and tested with PyTorch 2.0.1 (CUDA version 11.7). If you are using PyTorch 1.x, you may encounter OOM (i.e., Out of Memory) issues even with the same training configuration (unchanged batch size). For more characteristics of PyTorch 2.x, please refer to the PyTorch 2.x.

Please refer to the official instructions Previous PyTorch Versions to install the correct version of PyTorch, which is compatible with your CUDA version.

We provide the official instructions to install Torch 2.0.1 with CUDA 11.7:

# CUDA 11.7
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2

How to Run

Note: The project's structure is clear, with code based on .py files that should be easy to read, understand, and run.

The code for each CO problem defaults to retaining the parameters used for training the pre-trained model and those used for testing. Please refer to our paper for training and testing settings.

To run the code and further verify the efficiency of our method, please follow these steps:

1. Clone the Repository

git clone https://github.com/CIAM-Group/ICAM.git
cd ICAM

2. Install Dependencies

We recommend creating a virtual environment first (e.g., using conda).

# Example using conda
conda create -n icam python=3.8
conda activate icam
# Install PyTorch (example for CUDA 11.7)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
# Install other dependencies
pip install numpy==1.24.4
pip install tqdm

3. Train the Model

ICAM is trained using reinforcement learning, and the random data generation method is demonstrated in three files, such as ICAM_TSP/TSProblemDef.py and ICAM_CVRP/CVRProblemDef.py.

# Example: Train the TSP modelcd ICAM_TSP
python tsp_train_vst_n100_to_n500.py
# Example: Train the CVRP modelcd ICAM_CVRP
python cvrp_train_vst_n100_to_n500.py

4. Inference

You can use our provided pre-trained models or your own trained models to run the evaluation script and verify the method's performance.

Models: All pre-trained models are placed in ./pretrained.

Data: Please download test sets from Google Drive https://drive.google.com/drive/folders/1B2qBj8rD5apvxaWuBsjOeBStOa_bMQu9?usp=sharing, and place them in ./data.

# Example: Evaluate on TSPscd ICAM_TSP
python tsp_test_main.py # Testing model performance on synthetic data
python tsp_test_lib.py # Testing model performance on TSPLib# Example: Evaluate on CVRPscd ICAM_CVRP
python cvrp_test_main.py # Testing model performance on synthetic data
python cvrp_test_lib.py # Testing model performance on CVRPLib

Further Improvement

We have verified the legality of the corresponding solutions for each problem. We will continue to strive to improve its clarity and welcome any minor errors in the code implementation.

🐛 If there are any issues in running or re-implementing the code, please contact the author Changliang Zhou via email (zhoucl2022@mail.sustech.edu.cn) in a timely manner.

Citation

🤩🤩🤩 If this repository is helpful for your research, please cite our paper:

@article{zhou2024icam,
title={Instance-Conditioned Adaptation for Large-Scale Generalization of Neural Routing Solver},
author={Zhou, Changliang and Lin, Xi and Wang, Zhenkun and Tong, Xialiang and Yuan, Mingxuan and Zhang, Qingfu},
journal={IEEE Transactions on Intelligent Transportation Systems},
volume={27},
number={7},
pages={8270--8284},
year={2026},
publisher={IEEE}
}

Acknowledgements

The code implementation of ICAM is based on the code of POMO and MatNet. Thank them for their implementations.

Copyright (c) 2026 CIAM Group

The code can only be used for non-commercial purposes. Please contact the authors if you want to use this code for business matters.

About

Official implementation of the paper: [IEEE TITS] Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

[IEEE TITS] ICAM (Instance-Conditioned Adaptation Model)

This repository contains the code implementation of the paper Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver. In this paper, we propose a powerful RL-based constructive method called ICAM. When facing diverse geometric structures and patterns of instances across different scales, ICAM can effectively capture the instance-specific features (i.e., distance and scale) via the proposed instance-conditioned adaptation function. To make the model better aware of instance-specific information, we incorporate these features into the whole solution construction process (i.e., embedding, attention, and compatibility) via a powerful yet low-complexity instance-conditioned adaptation attention mechanism. Therefore, ICAM can directly generate promising solutions for instances across quite different scales, which improves the large-scale generalization performance for RL-based NCOs.

ICAM

Dependencies

Python>=3.8
torch==2.0.1
numpy==1.24.4
tqdm

We don't use any hard-to-install packages. If any package is missing, just install it following the prompts.

We recommend using PyTorch 2.x for better GPU memory utilization and training (testing) acceleration. This code is trained and tested with PyTorch 2.0.1 (CUDA version 11.7). If you are using PyTorch 1.x, you may encounter OOM (i.e., Out of Memory) issues even with the same training configuration (unchanged batch size). For more characteristics of PyTorch 2.x, please refer to the PyTorch 2.x.

Please refer to the official instructions Previous PyTorch Versions to install the correct version of PyTorch, which is compatible with your CUDA version.

We provide the official instructions to install Torch 2.0.1 with CUDA 11.7:

# CUDA 11.7
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2

How to Run

Note: The project's structure is clear, with code based on .py files that should be easy to read, understand, and run.

The code for each CO problem defaults to retaining the parameters used for training the pre-trained model and those used for testing. Please refer to our paper for training and testing settings.

To run the code and further verify the efficiency of our method, please follow these steps:

1. Clone the Repository

git clone https://github.com/CIAM-Group/ICAM.git
cd ICAM

2. Install Dependencies

We recommend creating a virtual environment first (e.g., using conda).

# Example using conda
conda create -n icam python=3.8
conda activate icam
# Install PyTorch (example for CUDA 11.7)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
# Install other dependencies
pip install numpy==1.24.4
pip install tqdm

3. Train the Model

ICAM is trained using reinforcement learning, and the random data generation method is demonstrated in three files, such as ICAM_TSP/TSProblemDef.py and ICAM_CVRP/CVRProblemDef.py.

# Example: Train the TSP modelcd ICAM_TSP
python tsp_train_vst_n100_to_n500.py
# Example: Train the CVRP modelcd ICAM_CVRP
python cvrp_train_vst_n100_to_n500.py

4. Inference

You can use our provided pre-trained models or your own trained models to run the evaluation script and verify the method's performance.

Models: All pre-trained models are placed in ./pretrained.

Data: Please download test sets from Google Drive https://drive.google.com/drive/folders/1B2qBj8rD5apvxaWuBsjOeBStOa_bMQu9?usp=sharing, and place them in ./data.

# Example: Evaluate on TSPscd ICAM_TSP
python tsp_test_main.py # Testing model performance on synthetic data
python tsp_test_lib.py # Testing model performance on TSPLib# Example: Evaluate on CVRPscd ICAM_CVRP
python cvrp_test_main.py # Testing model performance on synthetic data
python cvrp_test_lib.py # Testing model performance on CVRPLib

Further Improvement

We have verified the legality of the corresponding solutions for each problem. We will continue to strive to improve its clarity and welcome any minor errors in the code implementation.

🐛 If there are any issues in running or re-implementing the code, please contact the author Changliang Zhou via email (zhoucl2022@mail.sustech.edu.cn) in a timely manner.

Citation

🤩🤩🤩 If this repository is helpful for your research, please cite our paper:

@article{zhou2024icam,
title={Instance-Conditioned Adaptation for Large-Scale Generalization of Neural Routing Solver},
author={Zhou, Changliang and Lin, Xi and Wang, Zhenkun and Tong, Xialiang and Yuan, Mingxuan and Zhang, Qingfu},
journal={IEEE Transactions on Intelligent Transportation Systems},
volume={27},
number={7},
pages={8270--8284},
year={2026},
publisher={IEEE}
}

Acknowledgements

The code implementation of ICAM is based on the code of POMO and MatNet. Thank them for their implementations.

Copyright (c) 2026 CIAM Group

The code can only be used for non-commercial purposes. Please contact the authors if you want to use this code for business matters.

About

Official implementation of the paper: [IEEE TITS] Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

[IEEE TITS] ICAM (Instance-Conditioned Adaptation Model)

This repository contains the code implementation of the paper Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver. In this paper, we propose a powerful RL-based constructive method called ICAM. When facing diverse geometric structures and patterns of instances across different scales, ICAM can effectively capture the instance-specific features (i.e., distance and scale) via the proposed instance-conditioned adaptation function. To make the model better aware of instance-specific information, we incorporate these features into the whole solution construction process (i.e., embedding, attention, and compatibility) via a powerful yet low-complexity instance-conditioned adaptation attention mechanism. Therefore, ICAM can directly generate promising solutions for instances across quite different scales, which improves the large-scale generalization performance for RL-based NCOs.

ICAM

Dependencies

Python>=3.8
torch==2.0.1
numpy==1.24.4
tqdm

We don't use any hard-to-install packages. If any package is missing, just install it following the prompts.

We recommend using PyTorch 2.x for better GPU memory utilization and training (testing) acceleration. This code is trained and tested with PyTorch 2.0.1 (CUDA version 11.7). If you are using PyTorch 1.x, you may encounter OOM (i.e., Out of Memory) issues even with the same training configuration (unchanged batch size). For more characteristics of PyTorch 2.x, please refer to the PyTorch 2.x.

Please refer to the official instructions Previous PyTorch Versions to install the correct version of PyTorch, which is compatible with your CUDA version.

We provide the official instructions to install Torch 2.0.1 with CUDA 11.7:

# CUDA 11.7
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2

How to Run

Note: The project's structure is clear, with code based on .py files that should be easy to read, understand, and run.

The code for each CO problem defaults to retaining the parameters used for training the pre-trained model and those used for testing. Please refer to our paper for training and testing settings.

To run the code and further verify the efficiency of our method, please follow these steps:

1. Clone the Repository

git clone https://github.com/CIAM-Group/ICAM.git
cd ICAM

2. Install Dependencies

We recommend creating a virtual environment first (e.g., using conda).

# Example using conda
conda create -n icam python=3.8
conda activate icam
# Install PyTorch (example for CUDA 11.7)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
# Install other dependencies
pip install numpy==1.24.4
pip install tqdm

3. Train the Model

ICAM is trained using reinforcement learning, and the random data generation method is demonstrated in three files, such as ICAM_TSP/TSProblemDef.py and ICAM_CVRP/CVRProblemDef.py.

# Example: Train the TSP modelcd ICAM_TSP
python tsp_train_vst_n100_to_n500.py
# Example: Train the CVRP modelcd ICAM_CVRP
python cvrp_train_vst_n100_to_n500.py

4. Inference

You can use our provided pre-trained models or your own trained models to run the evaluation script and verify the method's performance.

Models: All pre-trained models are placed in ./pretrained.

Data: Please download test sets from Google Drive https://drive.google.com/drive/folders/1B2qBj8rD5apvxaWuBsjOeBStOa_bMQu9?usp=sharing, and place them in ./data.

# Example: Evaluate on TSPscd ICAM_TSP
python tsp_test_main.py # Testing model performance on synthetic data
python tsp_test_lib.py # Testing model performance on TSPLib# Example: Evaluate on CVRPscd ICAM_CVRP
python cvrp_test_main.py # Testing model performance on synthetic data
python cvrp_test_lib.py # Testing model performance on CVRPLib

Further Improvement

We have verified the legality of the corresponding solutions for each problem. We will continue to strive to improve its clarity and welcome any minor errors in the code implementation.

🐛 If there are any issues in running or re-implementing the code, please contact the author Changliang Zhou via email (zhoucl2022@mail.sustech.edu.cn) in a timely manner.

Citation

🤩🤩🤩 If this repository is helpful for your research, please cite our paper:

@article{zhou2024icam,
title={Instance-Conditioned Adaptation for Large-Scale Generalization of Neural Routing Solver},
author={Zhou, Changliang and Lin, Xi and Wang, Zhenkun and Tong, Xialiang and Yuan, Mingxuan and Zhang, Qingfu},
journal={IEEE Transactions on Intelligent Transportation Systems},
volume={27},
number={7},
pages={8270--8284},
year={2026},
publisher={IEEE}
}

Acknowledgements

The code implementation of ICAM is based on the code of POMO and MatNet. Thank them for their implementations.

Copyright (c) 2026 CIAM Group

The code can only be used for non-commercial purposes. Please contact the authors if you want to use this code for business matters.

About

Official implementation of the paper: [IEEE TITS] Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

[IEEE TITS] ICAM (Instance-Conditioned Adaptation Model)

This repository contains the code implementation of the paper Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver. In this paper, we propose a powerful RL-based constructive method called ICAM. When facing diverse geometric structures and patterns of instances across different scales, ICAM can effectively capture the instance-specific features (i.e., distance and scale) via the proposed instance-conditioned adaptation function. To make the model better aware of instance-specific information, we incorporate these features into the whole solution construction process (i.e., embedding, attention, and compatibility) via a powerful yet low-complexity instance-conditioned adaptation attention mechanism. Therefore, ICAM can directly generate promising solutions for instances across quite different scales, which improves the large-scale generalization performance for RL-based NCOs.

ICAM

Dependencies

Python>=3.8
torch==2.0.1
numpy==1.24.4
tqdm

We don't use any hard-to-install packages. If any package is missing, just install it following the prompts.

We recommend using PyTorch 2.x for better GPU memory utilization and training (testing) acceleration. This code is trained and tested with PyTorch 2.0.1 (CUDA version 11.7). If you are using PyTorch 1.x, you may encounter OOM (i.e., Out of Memory) issues even with the same training configuration (unchanged batch size). For more characteristics of PyTorch 2.x, please refer to the PyTorch 2.x.

Please refer to the official instructions Previous PyTorch Versions to install the correct version of PyTorch, which is compatible with your CUDA version.

We provide the official instructions to install Torch 2.0.1 with CUDA 11.7:

# CUDA 11.7
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2

How to Run

Note: The project's structure is clear, with code based on .py files that should be easy to read, understand, and run.

The code for each CO problem defaults to retaining the parameters used for training the pre-trained model and those used for testing. Please refer to our paper for training and testing settings.

To run the code and further verify the efficiency of our method, please follow these steps:

1. Clone the Repository

git clone https://github.com/CIAM-Group/ICAM.git
cd ICAM

2. Install Dependencies

We recommend creating a virtual environment first (e.g., using conda).

# Example using conda
conda create -n icam python=3.8
conda activate icam
# Install PyTorch (example for CUDA 11.7)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
# Install other dependencies
pip install numpy==1.24.4
pip install tqdm

3. Train the Model

ICAM is trained using reinforcement learning, and the random data generation method is demonstrated in three files, such as ICAM_TSP/TSProblemDef.py and ICAM_CVRP/CVRProblemDef.py.

# Example: Train the TSP modelcd ICAM_TSP
python tsp_train_vst_n100_to_n500.py
# Example: Train the CVRP modelcd ICAM_CVRP
python cvrp_train_vst_n100_to_n500.py

4. Inference

You can use our provided pre-trained models or your own trained models to run the evaluation script and verify the method's performance.

Models: All pre-trained models are placed in ./pretrained.

Data: Please download test sets from Google Drive https://drive.google.com/drive/folders/1B2qBj8rD5apvxaWuBsjOeBStOa_bMQu9?usp=sharing, and place them in ./data.

# Example: Evaluate on TSPscd ICAM_TSP
python tsp_test_main.py # Testing model performance on synthetic data
python tsp_test_lib.py # Testing model performance on TSPLib# Example: Evaluate on CVRPscd ICAM_CVRP
python cvrp_test_main.py # Testing model performance on synthetic data
python cvrp_test_lib.py # Testing model performance on CVRPLib

Further Improvement

We have verified the legality of the corresponding solutions for each problem. We will continue to strive to improve its clarity and welcome any minor errors in the code implementation.

🐛 If there are any issues in running or re-implementing the code, please contact the author Changliang Zhou via email (zhoucl2022@mail.sustech.edu.cn) in a timely manner.

Citation

🤩🤩🤩 If this repository is helpful for your research, please cite our paper:

@article{zhou2024icam,
title={Instance-Conditioned Adaptation for Large-Scale Generalization of Neural Routing Solver},
author={Zhou, Changliang and Lin, Xi and Wang, Zhenkun and Tong, Xialiang and Yuan, Mingxuan and Zhang, Qingfu},
journal={IEEE Transactions on Intelligent Transportation Systems},
volume={27},
number={7},
pages={8270--8284},
year={2026},
publisher={IEEE}
}

Acknowledgements

The code implementation of ICAM is based on the code of POMO and MatNet. Thank them for their implementations.

Copyright (c) 2026 CIAM Group

The code can only be used for non-commercial purposes. Please contact the authors if you want to use this code for business matters.

About

Official implementation of the paper: [IEEE TITS] Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

[IEEE TITS] ICAM (Instance-Conditioned Adaptation Model)

This repository contains the code implementation of the paper Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver. In this paper, we propose a powerful RL-based constructive method called ICAM. When facing diverse geometric structures and patterns of instances across different scales, ICAM can effectively capture the instance-specific features (i.e., distance and scale) via the proposed instance-conditioned adaptation function. To make the model better aware of instance-specific information, we incorporate these features into the whole solution construction process (i.e., embedding, attention, and compatibility) via a powerful yet low-complexity instance-conditioned adaptation attention mechanism. Therefore, ICAM can directly generate promising solutions for instances across quite different scales, which improves the large-scale generalization performance for RL-based NCOs.

ICAM

Dependencies

Python>=3.8
torch==2.0.1
numpy==1.24.4
tqdm

We don't use any hard-to-install packages. If any package is missing, just install it following the prompts.

We recommend using PyTorch 2.x for better GPU memory utilization and training (testing) acceleration. This code is trained and tested with PyTorch 2.0.1 (CUDA version 11.7). If you are using PyTorch 1.x, you may encounter OOM (i.e., Out of Memory) issues even with the same training configuration (unchanged batch size). For more characteristics of PyTorch 2.x, please refer to the PyTorch 2.x.

Please refer to the official instructions Previous PyTorch Versions to install the correct version of PyTorch, which is compatible with your CUDA version.

We provide the official instructions to install Torch 2.0.1 with CUDA 11.7:

# CUDA 11.7
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2

How to Run

Note: The project's structure is clear, with code based on .py files that should be easy to read, understand, and run.

The code for each CO problem defaults to retaining the parameters used for training the pre-trained model and those used for testing. Please refer to our paper for training and testing settings.

To run the code and further verify the efficiency of our method, please follow these steps:

1. Clone the Repository

git clone https://github.com/CIAM-Group/ICAM.git
cd ICAM

2. Install Dependencies

We recommend creating a virtual environment first (e.g., using conda).

# Example using conda
conda create -n icam python=3.8
conda activate icam
# Install PyTorch (example for CUDA 11.7)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
# Install other dependencies
pip install numpy==1.24.4
pip install tqdm

3. Train the Model

ICAM is trained using reinforcement learning, and the random data generation method is demonstrated in three files, such as ICAM_TSP/TSProblemDef.py and ICAM_CVRP/CVRProblemDef.py.

# Example: Train the TSP modelcd ICAM_TSP
python tsp_train_vst_n100_to_n500.py
# Example: Train the CVRP modelcd ICAM_CVRP
python cvrp_train_vst_n100_to_n500.py

4. Inference

You can use our provided pre-trained models or your own trained models to run the evaluation script and verify the method's performance.

Models: All pre-trained models are placed in ./pretrained.

Data: Please download test sets from Google Drive https://drive.google.com/drive/folders/1B2qBj8rD5apvxaWuBsjOeBStOa_bMQu9?usp=sharing, and place them in ./data.

# Example: Evaluate on TSPscd ICAM_TSP
python tsp_test_main.py # Testing model performance on synthetic data
python tsp_test_lib.py # Testing model performance on TSPLib# Example: Evaluate on CVRPscd ICAM_CVRP
python cvrp_test_main.py # Testing model performance on synthetic data
python cvrp_test_lib.py # Testing model performance on CVRPLib

Further Improvement

We have verified the legality of the corresponding solutions for each problem. We will continue to strive to improve its clarity and welcome any minor errors in the code implementation.

🐛 If there are any issues in running or re-implementing the code, please contact the author Changliang Zhou via email (zhoucl2022@mail.sustech.edu.cn) in a timely manner.

Citation

🤩🤩🤩 If this repository is helpful for your research, please cite our paper:

@article{zhou2024icam,
title={Instance-Conditioned Adaptation for Large-Scale Generalization of Neural Routing Solver},
author={Zhou, Changliang and Lin, Xi and Wang, Zhenkun and Tong, Xialiang and Yuan, Mingxuan and Zhang, Qingfu},
journal={IEEE Transactions on Intelligent Transportation Systems},
volume={27},
number={7},
pages={8270--8284},
year={2026},
publisher={IEEE}
}

Acknowledgements

The code implementation of ICAM is based on the code of POMO and MatNet. Thank them for their implementations.

Copyright (c) 2026 CIAM Group

The code can only be used for non-commercial purposes. Please contact the authors if you want to use this code for business matters.

About

Official implementation of the paper: [IEEE TITS] Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

[IEEE TITS] ICAM (Instance-Conditioned Adaptation Model)

This repository contains the code implementation of the paper Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver. In this paper, we propose a powerful RL-based constructive method called ICAM. When facing diverse geometric structures and patterns of instances across different scales, ICAM can effectively capture the instance-specific features (i.e., distance and scale) via the proposed instance-conditioned adaptation function. To make the model better aware of instance-specific information, we incorporate these features into the whole solution construction process (i.e., embedding, attention, and compatibility) via a powerful yet low-complexity instance-conditioned adaptation attention mechanism. Therefore, ICAM can directly generate promising solutions for instances across quite different scales, which improves the large-scale generalization performance for RL-based NCOs.

ICAM

Dependencies

Python>=3.8
torch==2.0.1
numpy==1.24.4
tqdm

We don't use any hard-to-install packages. If any package is missing, just install it following the prompts.

We recommend using PyTorch 2.x for better GPU memory utilization and training (testing) acceleration. This code is trained and tested with PyTorch 2.0.1 (CUDA version 11.7). If you are using PyTorch 1.x, you may encounter OOM (i.e., Out of Memory) issues even with the same training configuration (unchanged batch size). For more characteristics of PyTorch 2.x, please refer to the PyTorch 2.x.

Please refer to the official instructions Previous PyTorch Versions to install the correct version of PyTorch, which is compatible with your CUDA version.

We provide the official instructions to install Torch 2.0.1 with CUDA 11.7:

# CUDA 11.7
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2

How to Run

Note: The project's structure is clear, with code based on .py files that should be easy to read, understand, and run.

The code for each CO problem defaults to retaining the parameters used for training the pre-trained model and those used for testing. Please refer to our paper for training and testing settings.

To run the code and further verify the efficiency of our method, please follow these steps:

1. Clone the Repository

git clone https://github.com/CIAM-Group/ICAM.git
cd ICAM

2. Install Dependencies

We recommend creating a virtual environment first (e.g., using conda).

# Example using conda
conda create -n icam python=3.8
conda activate icam
# Install PyTorch (example for CUDA 11.7)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
# Install other dependencies
pip install numpy==1.24.4
pip install tqdm

3. Train the Model

ICAM is trained using reinforcement learning, and the random data generation method is demonstrated in three files, such as ICAM_TSP/TSProblemDef.py and ICAM_CVRP/CVRProblemDef.py.

# Example: Train the TSP modelcd ICAM_TSP
python tsp_train_vst_n100_to_n500.py
# Example: Train the CVRP modelcd ICAM_CVRP
python cvrp_train_vst_n100_to_n500.py

4. Inference

You can use our provided pre-trained models or your own trained models to run the evaluation script and verify the method's performance.

Models: All pre-trained models are placed in ./pretrained.

Data: Please download test sets from Google Drive https://drive.google.com/drive/folders/1B2qBj8rD5apvxaWuBsjOeBStOa_bMQu9?usp=sharing, and place them in ./data.

# Example: Evaluate on TSPscd ICAM_TSP
python tsp_test_main.py # Testing model performance on synthetic data
python tsp_test_lib.py # Testing model performance on TSPLib# Example: Evaluate on CVRPscd ICAM_CVRP
python cvrp_test_main.py # Testing model performance on synthetic data
python cvrp_test_lib.py # Testing model performance on CVRPLib

Further Improvement

We have verified the legality of the corresponding solutions for each problem. We will continue to strive to improve its clarity and welcome any minor errors in the code implementation.

🐛 If there are any issues in running or re-implementing the code, please contact the author Changliang Zhou via email (zhoucl2022@mail.sustech.edu.cn) in a timely manner.

Citation

🤩🤩🤩 If this repository is helpful for your research, please cite our paper:

@article{zhou2024icam,
title={Instance-Conditioned Adaptation for Large-Scale Generalization of Neural Routing Solver},
author={Zhou, Changliang and Lin, Xi and Wang, Zhenkun and Tong, Xialiang and Yuan, Mingxuan and Zhang, Qingfu},
journal={IEEE Transactions on Intelligent Transportation Systems},
volume={27},
number={7},
pages={8270--8284},
year={2026},
publisher={IEEE}
}

Acknowledgements

The code implementation of ICAM is based on the code of POMO and MatNet. Thank them for their implementations.

Copyright (c) 2026 CIAM Group

The code can only be used for non-commercial purposes. Please contact the authors if you want to use this code for business matters.

About

Official implementation of the paper: [IEEE TITS] Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

[IEEE TITS] ICAM (Instance-Conditioned Adaptation Model)

This repository contains the code implementation of the paper Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver. In this paper, we propose a powerful RL-based constructive method called ICAM. When facing diverse geometric structures and patterns of instances across different scales, ICAM can effectively capture the instance-specific features (i.e., distance and scale) via the proposed instance-conditioned adaptation function. To make the model better aware of instance-specific information, we incorporate these features into the whole solution construction process (i.e., embedding, attention, and compatibility) via a powerful yet low-complexity instance-conditioned adaptation attention mechanism. Therefore, ICAM can directly generate promising solutions for instances across quite different scales, which improves the large-scale generalization performance for RL-based NCOs.

ICAM

Dependencies

Python>=3.8
torch==2.0.1
numpy==1.24.4
tqdm

We don't use any hard-to-install packages. If any package is missing, just install it following the prompts.

We recommend using PyTorch 2.x for better GPU memory utilization and training (testing) acceleration. This code is trained and tested with PyTorch 2.0.1 (CUDA version 11.7). If you are using PyTorch 1.x, you may encounter OOM (i.e., Out of Memory) issues even with the same training configuration (unchanged batch size). For more characteristics of PyTorch 2.x, please refer to the PyTorch 2.x.

Please refer to the official instructions Previous PyTorch Versions to install the correct version of PyTorch, which is compatible with your CUDA version.

We provide the official instructions to install Torch 2.0.1 with CUDA 11.7:

# CUDA 11.7
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2

How to Run

Note: The project's structure is clear, with code based on .py files that should be easy to read, understand, and run.

The code for each CO problem defaults to retaining the parameters used for training the pre-trained model and those used for testing. Please refer to our paper for training and testing settings.

To run the code and further verify the efficiency of our method, please follow these steps:

1. Clone the Repository

git clone https://github.com/CIAM-Group/ICAM.git
cd ICAM

2. Install Dependencies

We recommend creating a virtual environment first (e.g., using conda).

# Example using conda
conda create -n icam python=3.8
conda activate icam
# Install PyTorch (example for CUDA 11.7)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
# Install other dependencies
pip install numpy==1.24.4
pip install tqdm

3. Train the Model

ICAM is trained using reinforcement learning, and the random data generation method is demonstrated in three files, such as ICAM_TSP/TSProblemDef.py and ICAM_CVRP/CVRProblemDef.py.

# Example: Train the TSP modelcd ICAM_TSP
python tsp_train_vst_n100_to_n500.py
# Example: Train the CVRP modelcd ICAM_CVRP
python cvrp_train_vst_n100_to_n500.py

4. Inference

You can use our provided pre-trained models or your own trained models to run the evaluation script and verify the method's performance.

Models: All pre-trained models are placed in ./pretrained.

Data: Please download test sets from Google Drive https://drive.google.com/drive/folders/1B2qBj8rD5apvxaWuBsjOeBStOa_bMQu9?usp=sharing, and place them in ./data.

# Example: Evaluate on TSPscd ICAM_TSP
python tsp_test_main.py # Testing model performance on synthetic data
python tsp_test_lib.py # Testing model performance on TSPLib# Example: Evaluate on CVRPscd ICAM_CVRP
python cvrp_test_main.py # Testing model performance on synthetic data
python cvrp_test_lib.py # Testing model performance on CVRPLib

Further Improvement

We have verified the legality of the corresponding solutions for each problem. We will continue to strive to improve its clarity and welcome any minor errors in the code implementation.

🐛 If there are any issues in running or re-implementing the code, please contact the author Changliang Zhou via email (zhoucl2022@mail.sustech.edu.cn) in a timely manner.

Citation

🤩🤩🤩 If this repository is helpful for your research, please cite our paper:

@article{zhou2024icam,
title={Instance-Conditioned Adaptation for Large-Scale Generalization of Neural Routing Solver},
author={Zhou, Changliang and Lin, Xi and Wang, Zhenkun and Tong, Xialiang and Yuan, Mingxuan and Zhang, Qingfu},
journal={IEEE Transactions on Intelligent Transportation Systems},
volume={27},
number={7},
pages={8270--8284},
year={2026},
publisher={IEEE}
}

Acknowledgements

The code implementation of ICAM is based on the code of POMO and MatNet. Thank them for their implementations.

Copyright (c) 2026 CIAM Group

The code can only be used for non-commercial purposes. Please contact the authors if you want to use this code for business matters.

About

Official implementation of the paper: [IEEE TITS] Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

[IEEE TITS] ICAM (Instance-Conditioned Adaptation Model)

This repository contains the code implementation of the paper Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver. In this paper, we propose a powerful RL-based constructive method called ICAM. When facing diverse geometric structures and patterns of instances across different scales, ICAM can effectively capture the instance-specific features (i.e., distance and scale) via the proposed instance-conditioned adaptation function. To make the model better aware of instance-specific information, we incorporate these features into the whole solution construction process (i.e., embedding, attention, and compatibility) via a powerful yet low-complexity instance-conditioned adaptation attention mechanism. Therefore, ICAM can directly generate promising solutions for instances across quite different scales, which improves the large-scale generalization performance for RL-based NCOs.

ICAM

Dependencies

Python>=3.8
torch==2.0.1
numpy==1.24.4
tqdm

We don't use any hard-to-install packages. If any package is missing, just install it following the prompts.

We recommend using PyTorch 2.x for better GPU memory utilization and training (testing) acceleration. This code is trained and tested with PyTorch 2.0.1 (CUDA version 11.7). If you are using PyTorch 1.x, you may encounter OOM (i.e., Out of Memory) issues even with the same training configuration (unchanged batch size). For more characteristics of PyTorch 2.x, please refer to the PyTorch 2.x.

Please refer to the official instructions Previous PyTorch Versions to install the correct version of PyTorch, which is compatible with your CUDA version.

We provide the official instructions to install Torch 2.0.1 with CUDA 11.7:

# CUDA 11.7
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2

How to Run

Note: The project's structure is clear, with code based on .py files that should be easy to read, understand, and run.

The code for each CO problem defaults to retaining the parameters used for training the pre-trained model and those used for testing. Please refer to our paper for training and testing settings.

To run the code and further verify the efficiency of our method, please follow these steps:

1. Clone the Repository

git clone https://github.com/CIAM-Group/ICAM.git
cd ICAM

2. Install Dependencies

We recommend creating a virtual environment first (e.g., using conda).

# Example using conda
conda create -n icam python=3.8
conda activate icam
# Install PyTorch (example for CUDA 11.7)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
# Install other dependencies
pip install numpy==1.24.4
pip install tqdm

3. Train the Model

ICAM is trained using reinforcement learning, and the random data generation method is demonstrated in three files, such as ICAM_TSP/TSProblemDef.py and ICAM_CVRP/CVRProblemDef.py.

# Example: Train the TSP modelcd ICAM_TSP
python tsp_train_vst_n100_to_n500.py
# Example: Train the CVRP modelcd ICAM_CVRP
python cvrp_train_vst_n100_to_n500.py

4. Inference

You can use our provided pre-trained models or your own trained models to run the evaluation script and verify the method's performance.

Models: All pre-trained models are placed in ./pretrained.

Data: Please download test sets from Google Drive https://drive.google.com/drive/folders/1B2qBj8rD5apvxaWuBsjOeBStOa_bMQu9?usp=sharing, and place them in ./data.

# Example: Evaluate on TSPscd ICAM_TSP
python tsp_test_main.py # Testing model performance on synthetic data
python tsp_test_lib.py # Testing model performance on TSPLib# Example: Evaluate on CVRPscd ICAM_CVRP
python cvrp_test_main.py # Testing model performance on synthetic data
python cvrp_test_lib.py # Testing model performance on CVRPLib

Further Improvement

We have verified the legality of the corresponding solutions for each problem. We will continue to strive to improve its clarity and welcome any minor errors in the code implementation.

🐛 If there are any issues in running or re-implementing the code, please contact the author Changliang Zhou via email (zhoucl2022@mail.sustech.edu.cn) in a timely manner.

Citation

🤩🤩🤩 If this repository is helpful for your research, please cite our paper:

@article{zhou2024icam,
title={Instance-Conditioned Adaptation for Large-Scale Generalization of Neural Routing Solver},
author={Zhou, Changliang and Lin, Xi and Wang, Zhenkun and Tong, Xialiang and Yuan, Mingxuan and Zhang, Qingfu},
journal={IEEE Transactions on Intelligent Transportation Systems},
volume={27},
number={7},
pages={8270--8284},
year={2026},
publisher={IEEE}
}

Acknowledgements

The code implementation of ICAM is based on the code of POMO and MatNet. Thank them for their implementations.

Copyright (c) 2026 CIAM Group

The code can only be used for non-commercial purposes. Please contact the authors if you want to use this code for business matters.

About

Official implementation of the paper: [IEEE TITS] Instance-Conditioned Adaptation for Large-scale Generalization of Neural Routing Solver

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages