
基于bats码的数据传输方法、装置、设备及可读存储介质
技术领域
1.本发明涉及无线通信技术领域,具体而言,涉及基于bats码的数据传输方法、装置、设备及可读存储介质。
背景技术:2.在使用bats码进行数据传输之前,需要对传输的信道进行信道检测和估计,在完成了这一过程后,发送端才能够确定当前信道的信息,如传输网络的跳数,丢包率等。根据获得的信道条件,发送端才能够计算出当前传输场景下的最佳的度分布,进而实现高效的传输,这就会需要大量的测试数据。且当信道条件较差,丢包率较高并且传输网络的跳数较大时,会需要更多的数据对信道进行检测估计,并且浪费了传输的时间,消耗了传输的资源。但是现在尚未有针对于上述现象的bats码的传输解决方案。
技术实现要素:3.本发明的目的在于提供一种基于bats码的数据传输方法、装置、设备及可读存储介质,以改善上述问题。为了实现上述目的,本发明采取的技术方案如下:
4.第一方面,本技术提供了一种基于bats码的数据传输方法,包括:获取至少一个待传输文件;根据强化学习算法优化bats码的度值得到最优度值,所述最优度值为在当前时刻和当前环境状态下传输效率最高的度值;使用所述最优度值作为所述bats码的度值,并将所有所述待传输文件经过所述bats码编码生成批次后传输至接收端。
5.第二方面,本技术还提供了一种基于bats码的数据传输装置,包括:第一获取单元,用于获取至少一个待传输文件;优化单元,用于根据强化学习算法优化bats码的度值得到最优度值,所述最优度值为在当前时刻和当前环境状态下传输效率最高的度值;传输单元,用于使用所述最优度值作为所述bats码的度值,并将所有所述待传输文件经过所述bats码编码生成批次后传输至接收端。
6.第三方面,本技术还提供了一种基于bats码的数据传输设备,包括:
7.存储器,用于存储计算机程序;
8.处理器,用于执行所述计算机程序时实现所述基于bats码的数据传输方法的步骤。
9.第四方面,本技术还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于bats码的数据传输方法的步骤。
10.本发明的有益效果为:
11.本发明通过提供了一种代替信道检测估计的bats码传输方法,利用强化学习方式去探索在bats码传输过程中最优的度值,以传输的信道条件为环境,经过不断地传输、学习以及对度值的调整,使得传输的过程逐渐达到当前信道条件下对应的最佳度值。同时,本方法也可以快速应对信道条件发生变化的这种问题,当信道发生变化时,传输次数必将发生改变,此时根据反馈函数的计算,最佳的度值便会发生改变,当环境条件稳定时,改变后的
度值会适应当前环境条件的传输信道,相比现有技术也无需再次对信道进行再次的测试和评估。降低了传输的时间,消耗的传输资源。
12.本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
13.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
14.图1为本发明实施例中所述的基于bats码的数据传输方法流程示意图;
15.图2为本发明实施例中所述的基于bats码的数据传输装置结构示意图;
16.图3为本发明实施例中所述的第二逻辑单元的结构示意图;
17.图4为本发明实施例中所述的基于bats码的数据传输设备结构示意图。
18.图中标记:1、第一获取单元;2、优化单元;21、第二获取单元;22、第一初始化单元;23、第一计算单元;231、第一传输单元;232、第三获取单元;233、第一计算子单元;24、第一预判单元;25、第二计算单元;251、第二传输单元;252、第一更新单元;253、第四获取单元;254、第二计算子单元;26、第三计算单元;27、第一逻辑单元;271、第一逻辑子单元;272、第二逻辑子单元;273、第五获取单元;274、第三逻辑子单元;275、第三计算子单元;276、第四计算子单元;277、第二更新单元;278、第二逻辑单元;28、第一循环单元;291、获取及初始化单元;292、第四计算单元;293、第二预判单元;294、第三更新单元;295、第四更新单元;296、第五计算单元;297、第六计算单元;298、第七计算单元;299、第二循环单元;3、传输单元;801、处理器;802、存储器;803、多媒体组件;804、i/o接口;805、通信组件。
具体实施方式
19.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
21.为了在无线通信传输中更加有效的利用网络编码特性实现更优的数据传输性能,同时又降低整个系统的计算复杂度和延迟,shenghao yang等人于2011年提出了批量稀疏编码(batched sparse codes,bats codes)的概念。bats码是一种将喷泉码和网络编码相
结合的一种新型编译码方案,在发送端,bats码使用喷泉码的概念生成足够数量的批次信息进行数据包发送,在中继节点对接收到的同批次的数据包进行随机线性网络编码并传输给接收端,接收端无需考虑信道条件,只需要接收到足够数量的批次数据包,就可以完成所有数据包的译码。bats码可以很好的融合喷泉码和网络编码的优点,同时弥补网络编码计算复杂度高的缺点。相较于喷泉码,bats码具有更高的吞吐量,而相较于网络编码,bats码具有更低的编译码复杂度,其编译码复杂度与喷泉码相近,同时还具有良好的无速率特性。因此bats码将喷泉码与网络编码的优点结合,具有较高的吞吐量的同时具有较低的复杂度和具有无速率特性,最终达到了在保证传输系统高可靠性的情况下的低时延效果。
22.实施例1:
23.本实施例提供了一种基于bats码的数据传输方法。
24.参见图1,图中示出了本方法包括步骤s100、步骤s200和步骤s300。
25.s100、获取至少一个待传输文件。
26.s200、根据强化学习算法优化bats码的度值得到最优度值,最优度值为在当前时刻和当前环境状态下传输效率最高的度值。
27.需要说明的是,在本技术中不对bats码本身有改动,关于bats码的构建过程,本技术中不在赘述。并且本领域人员所能公知,强化学习算法输出为q表,即在本技术中选取q表中q值最大对应的度值为最优度值。具体而言,在本技术中间度值作为强学习中的状态。
28.s300、使用最优度值作为bats码的度值,并将所有待传输文件经过bats码编码生成批次后传输至接收端。
29.现有技术中,在bats码传输前,需要进行信道的检测与估计,而后才能根据信道条件设置最佳度值进行数据的传输。然而这个过程需要传输大量的测试数据,且当信道条件发生变化时,基于之前的信道检测与估计所获得的最佳传输参数将不再适用,需要重新发送测试数据以获得新的信道参数,针对这种情况,本技术中提供了一种代替信道检测估计的bats码传输方法。
30.在本技术中,利用强化学习方式去探索在bats码传输过程中最优的度值。本技术中在bats码传输的过程中,会以传输的信道条件为环境,经过不断地传输,学习和对度值的调整,使得传输的过程逐渐达到当前信道条件下对应的最佳度值。同时,该方法也可以快速应对信道条件发生变化的这种问题,当信道发生变化时,传输次数必将发生改变,此时根据反馈函数的计算,最佳的度值便会发生改变,当环境条件稳定时,改变后的度值会适应当前环境条件的传输信道。相比现有技术也无需再次对信道进行再次的测试和评估。降低了传输的时间,消耗的传输资源。
31.同时,在本技术中,对于强学习算法中可以直接使用现有的q学习算法和sarsa算法等。并且,可以理解的是,所用强化学习算法均会以收敛的q表的形式输出,在本技术中设置强化学习算法的状态空间为可能的所有度值,即在最后输出的q表中列为状态,状态对应的数值也为度值的数值。而收敛输出的q表中选择q值最大的对应的状态为最优度值。
32.具体而言,本技术以q学习算法为例子说明。
33.步骤s200中包括步骤s210、s220、s230、s240、s250、s260、s270和s280。
34.s210、获取bats码的批次数。
35.需要说明的是,bats码的批次数为人为规定,在不同的使用环境中可能不相同,为
了便于理解,在本技术中称m为批次数。
36.s220、初始化生成q表和随机生成初始状态,q表为3*批次数的表格,初始状态的数值为接收端可解的度值。
37.需要说明的是,本步骤将状态数设置为传输时可选择的度的个数,即所使用的q学习算法的状态空间包括的状态由1到m依次增加并共计m个。即s=s,(s=1,2,...,m),其中s为状态空间,s代表这状态,并表示发送端将以s为度值进行数据传输。同时q学习算法的动作空间中共计包含三个动作,具体包括:在当前状态的bats码的度值基础上减一进行数据传输、保持当前状态的bats码的度值进行数据传输和在当前状态的bats码的度值基础上加一进行数据传输,同时,在实际随机生成初始状态时,判断随机生成的初始状态是否符合标准,可直接使用初始状态对应的度值进行传输即可,本技术中不在赘述其过程。
38.s230、以初始状态为依据计算得到初始平均批次数和传输次数,初始平均批次数为在初始状态下完成单位数据传输所需批次数量,传输次数为bats码传输数据的次数。
39.具体而言,本步骤中对于初始平均批次数的计算方式如下:
40.s231、以初始状态对应的值作为bats码的度值,并将第一信息经bats码编码后传输预设次数到接收端,第一信息为预设数量的数据包。
41.需要说明的是,在本技术中预设数量的数据包可以随实际情况进行选择,比如在探索最佳度值的过程中使用一个待传输文件编码的得到的所有数据包,或者是在一个待传输文件编码的所有数据包中取k个进行传输。还需要说明的是,在本步骤中预设次数优选为5次,也可以是6次等其他数值,本技术中不做出具体的限制。其目的在于多次相同的传输在s233中做计算即可以降低环境因数对于接受批次数量的影响,可消除环境突然变化给度值探索带来的影响。
42.s232、获取初始总批次数,初始总批次数为由接收端反馈的预设次数传输下接受的批次数量。
43.需要说明的是,在本技术中对于批次数量均使用count进行计数储存。
44.s233、根据初始总批次数和预设的传输次数计算得到初始平均批次数。
45.可以理解的是,在本技术中传递次数使用times进行存储,并设置为times=1。
46.本步骤的计算公式为:
47.num=count(s)/times(s)
48.其中,num即为初始时刻下的平均批次数,即初始平均批次数,count(s)表示当前状态下的批次数量,times(s)表示当前状态下的传输次数。
49.s240、根据q表计算当前状态下的下一动作并执行下一动作。
50.需要说明的是,在本技术中使用贪心策略确定下一动作。具体流程如下:建立贪心算法并通过贪心算法在动作空间中确定下一动作a,然后执行贪心算法确定的动作即可。由于贪心策略如何具体实现确定下一个动作为现有技术,本技术中不在赘述。
51.s250、以传输次数和下一动作中的执行结果为依据计算得到状态平均批次数和更新后的传输次数,状态平均批次数为在下一动作下完成单位数据传输所需批次数量。
52.需要说明的是,本技术以实际传输来确定状态平均批次数。具体而言,在本技术中,步骤s250中包括步骤s251、步骤s252、步骤s253和步骤s254。
53.s251、以下一动作中的度值作为bats码的度值,并将第一信息经bats码编码后传
输预设次数到接收端,第一信息为预设数量的数据包。
54.需要本步骤与s231相同,其区别在于使用的度值不相同。
55.s252、将传输次数更新为加一后的数值。
56.即本步骤更新公式为:
57.times(s_)=times(s_)+1
58.其中,times(s_)为下一动作中的传递次数。
59.s253、获取状态总批次数,状态总批次数为由接收端反馈的预设次数传输下接受的批次数量。
60.本步骤中的状态总批次数使用e(s_)标示。
61.s254、根据状态总批次数、传输次数和预设的第一公式组计算得到状态平均批次数。
62.本步骤中第一公式组如下:
63.lastnum=num
64.num=(count(s_)+e(s_))/times(s_)
65.其中,count(s_)在本步骤中为初始动作中的批次数量,e(s_)为状态总批次数,num为当前时刻的下一动作对应的平均批次数,即状态平均批次数。lastnum为存储器作用,存储之前的num数值在此处代表初始时刻下的平均批次数。
66.还需要说明的是,由于在q学习算法中是不断进行迭代计算的方式,所以本领域技术可以理解到的是,在本步骤中,count(s_)内累计存储的批次数量为接受端在执行下一动作之前接受的批次总数。
67.s260、根据状态平均批次和预设的条件判断公式计算得到传输状态,传输状态包括成功和失败。
68.具体而言,对于传输状态的计算,在本技术中包括步骤s261、步骤s262和步骤s263。
69.s261、若条件判断公式成立,则更新接收端的传输状态为失败,否则更新接收端的传输状态为成功。
70.同时需要说明的是,本步骤的条件判断公式为:
71.num》k
×
lastnum
72.其中,num和lastnum的定义参见步骤s254,k为在一次传输中数据包的个数,可参见步骤s231中的阐述。并且还需要说明的是,本步骤中条件判断公式的实际含义为:将当前状态对应的平均批次数和当前时刻的下一动作对应的平均批次数与传输数据包的积做比较,若当前状态对应的平均批次数较大则认为会出现批次不可解的情况。
73.同时需要说明的是,本步骤与步骤s254相似均是处于循环中的内容,在后面的判断过程中,num以及lastnum均需要更新其数值后判断。
74.s262、获取当前时间和执行下一动作的起始时间。
75.s263、若当前时间和起始时间之差的绝对值大于预设的阈值,则更新接收端的传输状态为失败。
76.即在本步骤中有两种判断传输状态,第一种为s261中所提及的通过比值计算得到,另一种为以时间作为判断依据。并且还需要说明的是,在时间判断中,对于预设的阈值
本领域技术人员可以根据实际情况进行选择,本技术中不作出具体的限制。
77.s270、判断传输状态,若接收端的传输状态为成功,则更新q表、当前动作和当前状态。
78.需要说明的是,在本步骤中的更新当前动作和当前状态为现有技术中,本技术中不再赘述。
79.其中,在判断传输状态,步骤s270包括步骤s271、步骤s272、步骤s273和步骤s274。
80.s271、若接收端的传输状态为失败,则在q表中将当前状态对应的下一动作和状态动作对应的奖励期望均设置为负无穷,状态动作为当前状态以后的所有状态对应的下一动作。
81.需要说明的是,在本步骤中即为以当前状态对应的度值去传输度值,会出现批次不可解的情况,这种情况要将q表中的相应位置设置为负无穷,代表该状态该动作禁止使用并且将及其之后状态的所有动作在q表上对应的值均设置为禁止使用。
82.s272、预设的第三公式和状态平均批次数计算得到反馈值。
83.本步骤中的预设的第三公式如下:
84.r=lastnum-num
85.其中,r为反馈值,num和lastnum的定义参见步骤s254。
86.s273、根据预设的第二公式、反馈值和q表计算得到更新值,并更新当前状态对应的下一动作的q值为更新值。
87.在步骤中的第二公式为:
88.q(s,a)=q(s,a)+α(r+q(s_,a’)-q(s,a))
89.q(s,a)为当前状态的a动作对应的q值,α为更新步长预设为0.1,r为反馈值,q(s_,a’)为在下一动作对应的q值。
90.s274、更新当前动作为下一动作,更新当前状态为下一动作对应的度值。
91.s280、重新开始根据q表计算当前状态下的下一动作并执行下一动作,直到预设的最大学习次数或q表收敛。
92.在上述步骤s210-s280中即通过q学习算法在将反馈函数的设计与每次完成传输消耗的批次数相结合,将状态数设置为传输时可选择的度的个数,经过不断地传输,学习和对度值的调整,使得传输的过程逐渐达到当前信道条件下对应的最佳度值。同时,该方法也可以快速应对信道条件反生变化的这种问题,当信道发生变化时,传输次数必将发生改变,此时根据反馈函数的计算,最佳的度值便会发生改变,改变后的度值会适应当前的传输信道。
93.但是,由于随着传输的进行,最理想的情况是q表收敛到某一个状态,该状态对应的度值即为当前传输环境下最佳的度值。然而,当状态数较多且如果传输次数随着度值的增加而出现先增后减的这一情况时,第一个强化学习算法(上文中q学习算法)可能不会收敛到某一个状态,而是收敛到两个甚至更多状态,这些状态总数要明显小于第一次强化学习算法中的状态数。此时需要进行第二次强化学习,且这一强化学习算法需要对状态数和动作空间需要进行一定的修改,达到收敛到一个度值目的。
94.即在本方法中还包括步骤s200中还包括s290。
95.s290、判断q表是否收敛到一个状态,若q表未收敛到一个状态,则基于第二强化学
习算法对q表进行学习优化,并更新q表为学习优化后的q表。
96.具体而言,在本技术中包括步骤s291、步骤s292、步骤s293、步骤s294、步骤s295、步骤s296、步骤s297、步骤s298和步骤s299。
97.s291、获取q表中至少两个收敛度值和收敛度值的个数,收敛度值为达到收敛状态的度值,并初始化生成第二q表和随机生成第二初始状态,q表为收敛度值的个数*收敛度值的个数的表格,初始状态的数值为接收端可解的度值。
98.需要说明的是,为了便于说明下文中称收敛度值的个数为m。在本步骤中的强学习算法中状态空间有m个,其中状态空间中每个状态均是以一个达到收敛状态的度值进行传输;动作空间有m个动作,其中动作空间内的每个动作均为在当前度值的基础上跳变到达到收敛状态的度值进行传输,共计有m个动作。
99.s292、以第二初始状态为依据计算得到第二初始平均批次数,第二初始平均批次数为在初始状态下完成单位数据传输所需批次数量。
100.需要说明的是,本步骤的计算过程与步骤s230相似,本步骤中不在赘述。
101.s293、根据第二q表计算当前状态下的下一动作。
102.需要说明的是,在本步骤也是使用贪心算法获取下一动作,本步骤的计算过程与步骤s240相似,本步骤中不在赘述。
103.s294、更新下一状态为下一动作对应的度值。
104.s295、在q表中查找下一状态对应预期动作,并更新下一动作为预期动作,预期动作为下一状态在q表中q值最大对应的动作。
105.s296、以下一动作中的执行结果为依据计算得到状态平均批次数。
106.需要说明的是,本步骤的计算过程与步骤s250相似,本步骤中不在赘述。
107.s297、将初始平均批次数减状态平均批次数的值作为反馈值。
108.需要说明的是,本步骤的计算过程与步骤s272相似,本步骤中不在赘述。
109.s298、根据预设的第二公式、反馈值和第二q表计算得到更新值,并更新当前状态对应的下一动作的奖励期望为更新值、更新当前状态为下一状态,更新当前动作为下一动作。
110.需要说明的是,本步骤的计算过程与步骤s273相似,本步骤中不在赘述。
111.s299、重新开始根据第二q表计算当前状态下的下一动作,直到预设的最大学习次数或第二q表收敛,并更新q表为第二q表。
112.在本技术中首先就是在bats码传输的过程中,引入强化学习代替了信道检测和估计,从而在传输过程中,对度值进行不断地优化,从而获得最佳的度值。并且在本技术中,在两次的强化学习算法,本发明对其状态空间定义和动作的选择进行了分别的设计,同时本发明的反馈函数可以根据传输消耗的批次获得较好的学习效果。对于度值较大导致传输不成功的这类情况,第一个强化学习的算法做了额外的处理方法。最后就是面对第一次学习可能导致的不收敛的情况,本发明提出了采用新的强化学习算法进行二次学习的方案,该方案对状态空间和动作进行了重新的设计,并且相对于第一次强化学习的算法可以更直接地获得最佳的度值,确保了学习过程中,度值可以收敛到某一固定值。
113.并且与传统bats码在数据传输相比,现有技术需要进行信道检测和估计,在确定丢包率等信息后,发送端才能够计算出当前传输场景下的最佳的度分布,进而实现高效传
输。因此在传输前会消耗大量的测试数据,浪费了传输的时间,消耗了传输的资源。
114.而本发明提出的传输方案不需要进行信道的检测估计,而是先指定一个度值进行传输,随着传输的不断进行,采用本发明设计的强化学习算法对度值进行不断的优化,最后获得一个最佳的传输度值,因此并不需要使用大量的测试数据,也无需额外的测试时间,即刻便可对数据进行传输。并且可以随着环境的变化,信道条件可能会发生改变,而现有技术中之前通过检测信道获得的信道条件便不再适用,需要重新进行信道的检测估计,确定一个新的最佳度分布。这样便会消耗更多的传输数据和更多的时间。本发明所提出的强化学习方法即可解决该问题,信道条件的变化后,必然导致消耗的批次数发生改变,经过反馈函数计算后,q表便会发生变化,从而在不断的传输过程中,得到新的传输度值,适应新的传输环境,更加灵活,且不需要大量的测试数据,也并不会浪费时间。在信道条件变化及其剧烈时,传统方案得到的度分布性能可能会急剧下滑,甚至中断传输,而本发明的方案可以快速适应信道变化,维持传输的正常进行。
115.实施例2:
116.如图2-图3所示,本实施例提供了一种基于bats码的数据传输装置,装置包括:
117.第一获取单元1,用于获取至少一个待传输文件。
118.优化单元2,用于根据强化学习算法优化bats码的度值得到最优度值,最优度值为在当前时刻和当前环境状态下传输效率最高的度值。
119.传输单元3,用于使用最优度值作为bats码的度值,并将所有待传输文件经过bats码编码生成批次后传输至接收端。
120.在一些具体的实施例中,优化单元2包括:
121.第二获取单元21,用于获取bats码的批次数。
122.第一初始化单元22,用于初始化生成q表和随机生成初始状态,q表为3*批次数的表格,初始状态的数值为接收端可解的度值。
123.第一计算单元23,用于以初始状态为依据计算得到初始平均批次数和传输次数,初始平均批次数为在初始状态下完成单位数据传输所需批次数量,传输次数为bats码传输数据的次数。
124.第一预判单元24,用于根据q表计算当前状态下的下一动作并执行下一动作。
125.第二计算单元25,用于以传输次数和下一动作中的执行结果为依据计算得到状态平均批次数和更新后的传输次数,状态平均批次数为在下一动作下完成单位数据传输所需批次数量。
126.第三计算单元26,根据状态平均批次和预设的条件判断公式计算得到传输状态,传输状态包括成功和失败。
127.第一逻辑单元27,用于判断传输状态,若接收端的传输状态为成功,则更新q表、当前动作和当前状态。
128.第一循环单元28,用于重新开始根据q表计算当前状态下的预测动作并执行预测动作,直到预设的最大学习次数或q表收敛。
129.在一些具体的实施例中,第一计算单元23包括:
130.第一传输单元231,用于以初始状态对应的值作为bats码的度值,并将第一信息经bats码编码后传输预设次数到接收端,第一信息为预设数量的数据包。
131.第三获取单元232,用于获取初始总批次数,初始总批次数为由接收端反馈的预设次数传输下接受的批次数量。
132.第一计算子单元233,用于根据初始总批次数和预设的传输次数计算得到初始平均批次数。
133.在一些具体的实施例中,第二计算单元25包括:
134.第二传输单元251,用于以下一动作中的度值作为bats码的度值,并将第一信息经bats码编码后传输预设次数到接收端,第一信息为预设数量的数据包。
135.第一更新单元252,用于将传输次数更新为加一后的数值。
136.第四获取单元253,用于获取状态总批次数,状态总批次数为由接收端反馈的预设次数传输下接受的批次数量。
137.第二计算子单元254,用于根据状态总批次数、传输次数和预设的第一公式组计算得到状态平均批次数。
138.在一些具体的实施例中,第一逻辑单元27包括:
139.第一逻辑子单元271,用于若接收端的传输状态为失败,则在q表中将当前状态对应的下一动作和状态动作对应的奖励期望均设置为负无穷,状态动作为当前状态以后的所有状态对应的下一动作。
140.在一些具体的实施例中,第一逻辑单元27还包括:
141.第二逻辑子单元272,用于若状态平均批次数大于初始平均批次数与传输次数之积,则更新接收端的传输状态为失败,否则更新接收端的传输状态为成功。
142.第五获取单元273,用于获取当前时间和执行下一动作的起始时间。
143.第三逻辑子单元274,用于若当前时间和起始时间之差的绝对值大于预设的阈值,则更新接收端的传输状态为失败。
144.在一些具体的实施例中,第一逻辑单元27还包括:
145.第三计算子单元275,用于预设的第三公式和状态平均批次数计算得到反馈值。
146.第四计算子单元276,用于根据预设的第二公式、反馈值和q表计算得到更新值,并更新当前状态对应的下一动作的q值为更新值。
147.第二更新单元277,用于更新当前动作为下一动作,更新当前状态为下一动作对应的度值。
148.在一些具体的实施例中,优化单元2还包括:
149.第二逻辑单元278,用于判断q表是否收敛到一个状态,若q表未收敛到一个状态,则基于第二强化学习算法对q表进行学习优化,并更新q表为学习优化后的q表。
150.在一些具体的实施例中,第二逻辑单元278还包括:
151.获取及初始化单元291,用于获取q表中至少两个收敛度值和收敛度值的个数,收敛度值为达到收敛状态的度值,并初始化生成第二q表和随机生成第二初始状态,q表为收敛度值的个数*收敛度值的个数的表格,初始状态的数值为接收端可解的度值。
152.第四计算单元292,用于以第二初始状态为依据计算得到第二初始平均批次数,第二初始平均批次数为在初始状态下完成单位数据传输所需批次数量。
153.第二预判单元293,用于根据第二q表计算当前状态下的下一动作。
154.第三更新单元294,用于更新下一状态为下一动作对应的度值。
155.第四更新单元295,用于在q表中查找下一状态对应预期动作,并更新下一动作为预期动作,预期动作为下一状态在q表中q值最大对应的动作。
156.第五计算单元296,用于以下一动作中的执行结果为依据计算得到状态平均批次数。
157.第六计算单元297,用于将初始平均批次数减状态平均批次数的值作为反馈值。
158.第七计算单元298,用于根据预设的第二公式、反馈值和第二q表计算得到更新值,并更新当前状态对应的下一动作的q值为更新值、更新当前状态为下一状态,更新当前动作为下一动作。
159.第二循环单元299,用于重新开始根据第二q表计算当前状态下的下一动作,直到预设的最大学习次数或第二q表收敛,并更新q表为第二q表。
160.需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
161.实施例3:
162.相应于上面的方法实施例,本实施例中还提供了一种基于bats码的数据传输设备,下文描述的一种基于bats码的数据传输设备与上文描述的一种基于bats码的数据传输方法可相互对应参照。
163.图4是根据示例性实施例示出的一种基于bats码的数据传输设备800的框图。如图4所示,该基于bats码的数据传输设备800可以包括:处理器801,存储器802。该基于bats码的数据传输设备800还可以包括多媒体组件803,i/o接口804,以及通信组件805中的一者或多者。
164.其中,处理器801用于控制该基于bats码的数据传输设备800的整体操作,以完成上述的基于bats码的数据传输方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该基于bats码的数据传输设备800的操作,这些数据例如可以包括用于在该基于bats码的数据传输设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandom access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该基于bats码的数据传输设备800与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near fieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:wi-fi模块,蓝牙模块,nfc模块。
165.在一示例性实施例中,基于bats码的数据传输设备800可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digitalsignal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的基于bats码的数据传输方法。
166.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的基于bats码的数据传输方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由基于bats码的数据传输设备800的处理器801执行以完成上述的基于bats码的数据传输方法。
167.实施例4:
168.相应于上面的方法实施例,本实施例中还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种基于bats码的数据传输方法可相互对应参照。
169.一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的基于bats码的数据传输方法的步骤。
170.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
171.以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
172.以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。