import pandas as pd
import numpy as np
from scipy.optimize import curve_fit

# 读取文件数据
data = pd.read_excel(r'D:\pythonProject3\会员信息\附件二:会员信息数据.xlsx')

# 提取所需的列数据
product_price = data['任务标价']
member_quota = data['预订任务限额']
distance = np.sqrt((data['商品GPS纬度'] - data['会员GPS纬度'])**2 + (data['商品GPS经度'] - data['会员GPS经度'])**2)

# 定义引力子函数
def gravity_function(product_price, member_quota, distance, k, n, m):
    return (k * product_price * (member_quota**m)) / (distance**n)

# 使用curve_fit拟合数据,求出最小引力子'y'和常量'k'、'n'、'm'
params, _ = curve_fit(gravity_function, (product_price, member_quota, distance), data['引力子'])

# 提取最小引力子'y'和常量'k'、'n'、'm'
y_min = params[0]
k = params[1]
n = params[2]
m = params[3]

# 输出带常量的公式
print(f'y = ({k}*product_price*({member_quota}^{m})) / (distance^{n})')
print(f'最小引力子y的值为: {y_min}')
基于引力模型的会员任务分配优化算法 - Python实现与分析

原文地址: https://www.cveoy.top/t/topic/fAaQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录