A genuine quantum computing implementation of K-Means clustering using SWAP test and quantum fidelity-based distance metrics.
The accompanying research paper is archived on Zenodo under the CC BY-NC 4.0 license:
Sricharan, "Comparative Analysis of Classical and Quantum K-Means Clustering: SWAP Test and Fidelity-Based Approaches on Benchmark Datasets," Feb 2026. DOI: 10.5281/zenodo.18802705
This project implements authentic quantum K-Means clustering algorithms that leverage fundamental quantum computing principles:
- SWAP Test - Uses quantum interference to compute inner products between quantum states
- Quantum Fidelity - Measures similarity in Hilbert space via statevector simulation
- Amplitude Encoding - Maps classical data to quantum state amplitudes
Unlike pseudo-quantum implementations, this project uses real quantum circuits executed on Qiskit's quantum simulators.
| Feature | Description |
|---|---|
| Genuine Quantum Circuits | Real SWAP test implementation with controlled-SWAP operations |
| Multiple Distance Metrics | Quantum fidelity and SWAP-based inner product estimation |
| Amplitude Encoding | Efficient classical-to-quantum data mapping |
| Comparative Analysis | Side-by-side classical vs quantum performance evaluation |
| Scalable Design | Works with datasets from hundreds to thousands of samples |
The SWAP test computes the quantum inner product |⟨ψ₁|ψ₂⟩|² using quantum interference:
P(ancilla=0) = (1 + |⟨ψ₁|ψ₂⟩|²) / 2
Circuit Structure:
|0⟩ ──H──●──H──M
│
|ψ₁⟩ ────×────
│
|ψ₂⟩ ────×────
Direct computation of state fidelity F = |⟨ψ₁|ψ₂⟩|² with distance:
d = √(2(1-F))
| Dataset | Samples | Features | Description |
|---|---|---|---|
| Original (ENB2012) | 768 | 10 | Energy efficiency benchmark (X1-X8 + Y1-Y2) |
| Quantum-Optimized | 4,998 | 16 | High-dimensional expanded dataset |
pip install numpy pandas scikit-learn matplotlib qiskit qiskit-aercd code
python comprehensive_quantum_classical_analysis.pypython create_quantum_optimized_dataset.pyquantum-kmeans/
├── code/
│ ├── comprehensive_quantum_classical_analysis.py # Main analysis script
│ └── create_quantum_optimized_dataset.py # Dataset generator
├── data/
│ ├── ENB2012_data.csv # Original dataset
│ └── quantum_optimized_ENB_data.csv # Expanded dataset
├── output/
│ ├── quantum_classical_analysis_report_*.txt # Analysis reports
│ └── quantum_classical_comparison_*.png # Visualization plots
├── README.md
├── LICENSE
└── Report.md # Detailed research report
| Dataset | Method | Best k | Silhouette Score |
|---|---|---|---|
| Original (768×8) | Classical K-Means | 2 | 0.391 |
| Original (768×8) | Quantum SWAP Test | 2 | varies |
| Original (768×8) | Quantum Fidelity | 2 | varies |
| Expanded (4998×16) | Classical K-Means | 2 | 0.149 |
| Expanded (4998×16) | Quantum SWAP Test | 2 | varies |
| Expanded (4998×16) | Quantum Fidelity | 4 | varies |
Classical data points are encoded into quantum states using amplitude encoding:
|ψ⟩ = Σᵢ αᵢ|i⟩ where αᵢ = normalized_feature_iThis allows encoding N features using only log₂(N) qubits.
Quantum distance between encoded states:
quantum_distance = √(2(1 - |⟨ψ₁|ψ₂⟩|))Uses intelligent centroid initialization for better convergence.
- Simulation Overhead: Quantum circuits run on simulators, not actual quantum hardware
- Scalability: SWAP test requires O(n×k) circuit executions per iteration
- Noise: Statistical estimation introduces measurement uncertainty
- Implementation on IBM Quantum hardware
- Variational quantum eigensolver (VQE) integration
- Quantum error correction
- Hybrid classical-quantum optimization
Copyright © 2026 Sricharan Suresh (github.com/verycareful)
This project is licensed under the Apache License 2.0. You may use, modify, and distribute this software in accordance with Apache 2.0 terms.
See the LICENSE file for full text and NOTICE for attribution information.
- Quantum K-means algorithm - Lloyd, S., Mohseni, M., & Rebentrost, P. (2013)
- SWAP test for quantum states - Buhrman, H., et al. (2001)
- Qiskit Documentation - IBM Quantum
Sricharan
Exploring the intersection of quantum computing and machine learning