Skip to content

verycareful/QKM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quantum K-Means Clustering

Python Qiskit License: Apache 2.0 Status: Archived DOI

A genuine quantum computing implementation of K-Means clustering using SWAP test and quantum fidelity-based distance metrics.

Paper

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

Overview

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.

Key Features

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

Quantum Algorithms Implemented

SWAP Test

The SWAP test computes the quantum inner product |⟨ψ₁|ψ₂⟩|² using quantum interference:

P(ancilla=0) = (1 + |⟨ψ₁|ψ₂⟩|²) / 2

Circuit Structure:

|0⟩ ──H──●──H──M
         │
|ψ₁⟩ ────×────
         │
|ψ₂⟩ ────×────

Quantum Fidelity

Direct computation of state fidelity F = |⟨ψ₁|ψ₂⟩|² with distance:

d = √(2(1-F))

Datasets

Dataset Samples Features Description
Original (ENB2012) 768 10 Energy efficiency benchmark (X1-X8 + Y1-Y2)
Quantum-Optimized 4,998 16 High-dimensional expanded dataset

Quick Start

Prerequisites

pip install numpy pandas scikit-learn matplotlib qiskit qiskit-aer

Run Analysis

cd code
python comprehensive_quantum_classical_analysis.py

Generate Quantum Dataset

python create_quantum_optimized_dataset.py

Project Structure

quantum-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

Sample Results

Classical vs Quantum Performance

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

Technical Details

Quantum Encoding

Classical data points are encoded into quantum states using amplitude encoding:

|ψ= Σᵢ αᵢ|iwhere αᵢ = normalized_feature_i

This allows encoding N features using only log₂(N) qubits.

Distance Computation

Quantum distance between encoded states:

quantum_distance = √(2(1 - |ψ|ψ₂⟩|))

K-Means++ Initialization

Uses intelligent centroid initialization for better convergence.

Limitations

  • 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

Future Work

  • Implementation on IBM Quantum hardware
  • Variational quantum eigensolver (VQE) integration
  • Quantum error correction
  • Hybrid classical-quantum optimization

License

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.

References

  1. Quantum K-means algorithm - Lloyd, S., Mohseni, M., & Rebentrost, P. (2013)
  2. SWAP test for quantum states - Buhrman, H., et al. (2001)
  3. Qiskit Documentation - IBM Quantum

Author

Sricharan


Exploring the intersection of quantum computing and machine learning

About

Quantum K-Means Clustering using genuine SWAP test and quantum fidelity algorithms with Qiskit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages