# HIC **Repository Path**: mangrovecoder/hic ## Basic Information - **Project Name**: HIC - **Description**: HIQ Ising Challenge - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-09 - **Last Updated**: 2025-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HIQ Ising Challenge ## 背景/价值 纵览业界各个量子平台 它山之石,可以攻玉 **痛点** 数据集介绍不多,使用不够友好 没有最优解 算法、求解器与数据的联系不够 **价值** 现在类似的graph/ising/QUCO数据库全部是海外的, 国内本源、玻色、图灵等友商,还没有做类似的模块 吸引更多的人使用MinQuantum,推动启发式算法的落地应用 ## 数据集 **可参考的友商** Gset 业界比较认可的数据集,2003年就提出;提供了71种Gset图,缺少最优解,基本没有维护更新 MQLib 提供3296个案例,开源了37种启发式算法的C++实现求解器代码,评估启发式算法对不同问题的适应性 QPLIB 提供8164个案例,比较崭新,案例种类全面,介绍详尽,有最优解 Pennylane 设计漂亮,提供化学分子、自旋模型等数据,引导用户使用pennylane调用数据 data | problem | dataset | count | nodes | reference | | ------- | -------------------- | ----- | ------- | ------------------------------------------------------------ | | maxcut | Random graph | | 10~1w | networkx | | | Full-connected graph | | 10~1100 | | | | Bitpartite graph | | | | | | GSet | | | | | | QPlib | | | [url](https://qplib.zib.de/qplib/QPLIB_0032.qplib) | | | | | | | | QUBO | GridDiscreteS28 | | | | | | 黑客松-QAOA | | | [黑客松](https://competition.huaweicloud.com/information/1000042022/html10) | | | 黑客松-QAIA | | | | | | bqp | | | [url](https://people.brunel.ac.uk/~mastjjb/jeb/orlib/files/?C=S;O=D) | 格式 数据格式提供两种 一种是hiq自己的格式,无格式/txt 黑客松提供的是ising模型的数据格式 $$H(\sigma)=-\sum \limits_{i j} J_{ij}\sigma_{i}\sigma_{j}-\mu\sum\limits_j h_j\sigma_j$$ 一种是业界比较通用的格式 ## 结构目录 - data 数据模块,存储包括graph和ising格式的数据集 - src 计算模块,量子启发式算法求解器 - utils 工具模块,包括生成数据,使用数据的代码 ## 如何使用 生成数据 ```python # 生成随机图、全连接图 # 可参考 utils/test_generate_data.py 中的样例,设置图的节点、边稀疏或密集,权值,是否保存 from generate_data import Generate gen = Generate(node=i) gen.generate_rgraph(type="sparse",weight= 1,save=True) # 将quco中的mimoset数据集转换成ising格式 # 可参考 data/quco/mimoset/read_mimo.py 中的样例 dataset = [] filelist = ["MLD_data\\0.pickle"] data = pickle.load(open(filename, "rb")) dataset.append( [ data["H"], data["y"], data["bits"], data["num_bits_per_symbol"], data["SNR"], ] ) mimo = Mimo(dataset) mimo.save_ising(ising_generator, name=0) ``` 使用数据 ```python # 可参考 utils/test_solver.py 的样例,读取数据集 G = read_maxcut("../data/maxcut/gset/G1") # G = read_maxcut("../data/maxcut/fgraph/fgraph_200") # G = read_maxcut("../data/maxcut/rgraph/rgraph_dense_100") J, H = read_quco("../data/quco/mimoset/mimo_ising_0.json") ``` ## 页面 搭建简易的页面 做演示 ## 日志 20241008 SB等算法跑通数据 20240930 整理qubo数据 读写数据的模块 20240927 mqlib的数据难以处理,借鉴QPLIB的数据 换数据集,原来的spinclass等是02年的,比较旧 [1](https://github.com/MQLib/MQLib/blob/master/hhdata/BURER2002.rf), [2](https://github.com/MQLib/MQLib/blob/master/hhdata/PALUBECKIS2004bMST1.rf) 20240926 快速出demo 可以放在gitee上 先生成一版的数据 自己生成的数据好弄,比较麻烦的就是提取其他的数据