[发明专利]一种云资源动态定价方法在审

专利信息
申请号: 201810329219.4 申请日: 2018-04-13
公开(公告)号: CN108537594A 公开(公告)日: 2018-09-14
发明(设计)人: 曹斌;王凯;侯晨煜;范菁 申请(专利权)人: 浙江工业大学
主分类号: G06Q30/02 分类号: G06Q30/02
代理公司: 杭州天正专利事务所有限公司 33201 代理人: 王兵;黄美娟
地址: 310014 浙江省杭州*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要: 一种云资源动态定价方法,针对当下云资源定价存在的问题与不足,提出了动态定价的方案。包括下列步骤:步骤1.建立树型索引结构;步骤2、用户数据新增与删除等操作算法;步骤3.基于树型索引结构的动态定价查询。本发明根据“云资源动态定价”的问题,利用具有Segment‑tree和B‑tree特点的树型索引结构,有效地解决了当前云资源定价的粗放单一。本发明最终实现的功能是能够根据用户对云资源的使用时间和使用量,查询得到一个或多个云资源使用量最大时的时间区间,从而能够根据这个一个或者多个时间区间对云资源进行动态定价。
搜索关键词: 定价 索引结构 资源动态 树型 时间区间 资源使用量 查询 用户数据 有效地 算法 删除
【主权项】:
1.一种云资源动态定价方法,包括下列步骤:步骤1、建立索引结构;该步骤的目的是在线下为所有用户上网日志数据构建索引,以方便后续的线上实时定价查询;本发明设计了一种树型结构,结合了B‑Tree和Segment‑Tree的特点;该树型索引结构的每个结点能存储一定数量的时间区间,同时每个时间区间有其对应的用户对该云资源的使用数量;该树型索引结构包含两个参数:b和l;b为最大分支因子,表示内部结点最多能够存储b个时间区间,l为最大叶子容量,表示叶子结点最多能够存储l个时间区间,它们共同决定了决定了索引的结构;索引结构的详细介绍如下:1.1内部结点一个内部结点可以存储连续的b个时间区间,并且至少存个;若在某个结点N中我们要表示j个时间间隔N.I1,N.I2,N.I3,……,N.Ij;那么j‑1个不同的时刻以升序形式存储在N中;第i个时刻,表示为N.ti,表示第i个时间间隔N.Ii的结束时间,同时也表示第(i+1)个时间间隔N.Ii+1的开始时间;此外,N中的每个间隔(例如N.Ii)还与相应的使用量(表示为N.Vi)和指向子节点的指针(指示为N.ci)关联;1.2叶子结点叶子结点类似内部结点,除了叶子结点中的时间间隔不与指向子结点的指针相关联即没有N.ci;叶子结点最多能够存储l个时间区间,并且至少有个时间区间;1.3根结点根结点的结构与内部结点相同,除了根节点仅需要至少两个时间间隔,最多能够存储b个时间区间;1.4结点构建规则对于任何非叶子结点N,考虑第i个时刻N.ti,出现在N.ci指向的子结点中的所有时刻必须严格小于N.ti,出现在N.ci+1指向的子结点的所有时刻必须严格大于N.ti;步骤2、用户数据新增与删除等操作算法;2.1新增数据现有一条用户使用记录需要插入,I′表示用户使用的时间区间,V'表示用户的使用量;记插入操作为insert(,N),即在以N为根的树中插入,具体操作位为:从结点N开始,对于当前结点的时间区间N.Ii,若N.Ii与I'有交集,则再次对N.Ii的子结点调用insert(,N.ci);若无交集则不做任何操作;当结点N为叶子结点时,若区间N.Ii被I'所包含,则将N.Ii的使用量N.Vi加上V';若只仅仅有交集,则将要插入的记录插入到该结点,并加上相应I′的V'的值;2.2删除数据现有一条用户使用记录需要删除,I′表示用户使用的时间区间,V'表示用户的使用量;记删除操作为delete(,N),即在以N为根的树中删除,具体操作位为:从结点N开始,对于当前结点的时间区间N.Ii,若N.Ii与I'有交集,则再次对N.Ii的子结点调用delete(,N.ci);若无交集则不做任何操作;当结点N为叶子结点时,若区间N.Ii被I'所包含,则将N.Ii的使用量N.Vi减去V';若只仅仅有交集,则将要插入的记录插入到该结点,并减去相应I′的V'的值;2.3数据溢出时的操作当某个结点的数据增加到一定数量,即该结点存储的时间区间个数大于该结点的最大容量时,需要进行结点的分裂操作;由于数据的插入操作最终在叶子结点完成,所以叶子结点会首先发生溢出,这时对叶子结点进行分裂操作;当叶子结点分裂操作执行完后,可能会导致其父结点的数据溢出,同理对父结点进行分裂操作;假设某结点N发生了溢出,且当前存储了n个时间区间,若N为内部结点则n>b,若N为叶结点,则n>l,令split(N)为结点N的分裂操作,具体操作如下:S1)原结点N分裂为N1和N2;结点N1保留原结点N前一半的区间,即保留前个时刻和前个使用量,如果N是内部结点,N1还保留指针N.c1结点N2保留剩余的区间,即N2包含时刻从到N.tn‑1以及对应的使用量到N.vn;如果N是内部结点,N2还包含指针到N.cn;S2)如果结点N是根结点,那么创建一个新的根结点N'为N1和N2的父结点,令N'.c1=N1,N'.c2=N2,N'.v1=N'.v2=0;S3)如果结点N不是根结点,设N有父结点N',且N′.cj=N,令N'的前j‑1个区间不变,从第j+1个区间开始到最后,往右移一位;然后令N′.cj=N1,N′.cj+1=N2,N′.vj不变,若结点N'溢出,再次调用split(N′);步骤3、基于树型索引结构的动态定价查询;为了获得用户使用云资源的最优区间,需要进行以下操作:3.1获取所有时间区间;遍历该树型索引结构的叶结点,可以得到所有时间区间以及各区间的云资源使用量;遍历的方法为:从树的根结点出发,遍历当前结点的每一个子结点,如果是叶结点就把叶结点的每个区间信息存起来;这时候,得到的区间可能出现这种情况:相邻区间的使用量相同;这时可以在遍历叶结点时将当前区间与上一个相邻区间比较,若满足两区间使用量相同则合并为一个,这样只要遍历一遍叶结点就能获得所有区间,并且相邻区间不会出现使用量相同的情况;3.2获得最优区间;第一步已经得到了所有的时间区间;在所有的区间中快速查找出用户使用量最大的一个或多个区间,即查找top k个区间,这里用最小堆实现;最小堆的规则是(1)是完全二叉树(2)每个结点的关键字都小于他的两个子结点;具体步骤如下;T1)建立最小堆;首先确定k,k表示要查找使用量排名前k的区间;设步骤3.1获得的区间个数为n个,现从中取k个,构建最小堆;依次将这k个区间信息插入到最小堆中;插入方法为从根结点开始,依次到左子树和右子树;插入的同时要保证每个结点的关键字都要比字结点的关键字小;这里的关键字就是该区间的使用量;例如,当前结点为p,p的父结点为p’,将结点信息插入到p结点时,将p结点的关键字与它的父结点p’的关键字比较;若p结点的关键字大于父结点p’的关键字,则将两者的区间交换;再将p’的关键字和p’的父结点p”的关键字进行比较,若p’的关键字大于p”的关键字,则再次交换,以此类推,直到满足最小堆的条件;当k个区间插入完成后,最小堆建立完成,其中根结点为所有k个结点中关键字最小的结点;T2)更新最小堆;最小堆建立完成后,用剩余的n‑k个区间来更新最小堆;基本方法就是只要遍历一遍剩下的区间;当读取一个区间时,将该区间的使用量与根结点的使用量相比较,若是小于根结点的使用量,则抛弃该区间;若大于根结点的使用量,则将根结点的区间信息更新为新的区间信息;同时调整最小堆,使之满足每个结点的关键字都小于左右子结点的关键字;在实际情况中可能遇到多个区间的使用量一样,这时在更新最小堆时先检查最小堆中是否有相同使用量的结点,若有则将新的区间信息存到该结点中;若没有则再按照以上规则更新;遍历完所有区间后的最小堆内存放的区间就是top k区间,由于更新最小堆时比根结点小的区间都被抛弃了,所以免去了很大的数据量,这对于提升效率有很大帮助。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201810329219.4/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top