2023年MathorCup 高校数学建模挑战赛-A 题 量子计算机在信用评分卡组合优化中的应用-思路详解(模型代码答案)

一、题目简析

运筹优化类题目,不同于目标规划,该题限制了必须使用量子退火算法QUBO来进行建模与求解。本身题目并不难,但是该模型较生僻,给出的参考文献需要耗费大量时间去钻研。建议擅长运筹类题目且建模能力强的队伍选择。

二、逐问思路分享

问题 1:在 100 个信用评分卡中找出 1 张及其对应阈值,使最终收入最多,请针对该问题进行建模,将该模型转为 QUBO 形式并求解。

根据题意,我们在该问中不需要考虑组合,单选一个评分卡及一个对应的最优阈值即可。

不妨设该张评分卡的编号(index)为i(1~100),阈值为x(1~10),那么通过率为横坐标【t_i】纵坐标【x】对应的值(设为t),总坏账率就是横坐标【h_i】纵坐标【x】对应的值(设为h)。

那么贷款利息收入:1,000,000×0.08×t×(1-h)=80,000t(1-h)

坏账损失:1,000,000×t×h=1,000,000th

最终收入:80,000t(1-h)-1,000,000th=80,000t-1,080,000th

我们的目标函数就是max Z=80,000t-1,080,000th

由于QUBO模型默认是最小值,所以我们对Z取负号,即min (-80,000t+1,080,000th)

且需要将问题转化为一个决策变量为二值变量,我们对于1~100张评分卡,1~10阈值,定义:

i∈[1,100]

j∈[1,10]

于是,目标函数变成:

目标函数

模型建立好后,利用python的包即可求解

import pyqubo

问题 2:假设赛题说明 3 目前已经选定了数据集中给出的信用评分卡 1、 信用评分卡 2、信用评分卡 3 这三种规则,如何设置其对应的阈值,使最终收入最多,请针对该问题进行建模,将模型转为 QUBO 形式并求解。

评分卡已经选定,为1,2,3。根据给出的例子和上一问的分析,我们把对应的阈值设为x1,x2,x3,那么通过率:t1,t2,t3;坏账率:h1,h2,h3.

总通过率:t1×t2×t3=t’

总坏账率:(h1+h2+h3)/3=h'

最终收入:80,000t’-1,080,000t’h’

上一问中的xi不再需要设置(因为评分卡选择已知)

三个评分卡的阈值变量

目标函数中变化如下:

问题 3:从所给附录中 100 个信用评分卡中任选取 3 种信用评分卡,并设置合理的阈值,使得最终收入最多,请针对该问题进行建模,并将模型转为 QUBO 形式并求解。

该问不再限制评分卡,相当于变量空间扩到最大。

模型在问题2的基础上做如下改变:

加入选择的三张评分卡的二值映射

h/t的对应公式

三、代码及求解结果

放在评论区

代码和求解得到的答案放在评论区,如失效请私信~

物联沃分享整理
物联沃-IOTWORD物联网 » 2023年MathorCup 高校数学建模挑战赛-A 题 量子计算机在信用评分卡组合优化中的应用-思路详解(模型代码答案)

发表评论