您现在的位置:首页 >> 通信 >> 内容

m基于VCG拍卖机制的认知无线电频谱竞拍共享算法matlab仿真

时间:2022/12/15 18:58:09 点击:

  核心提示:01-153m,包括程序操作录像+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y5qTm5Zy

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览




3.算法概述

        VCG拍卖是更一般的特定用途 VCG机制。当VCG拍卖尝试对商品进行社会最优分配时,VCG机制允许从一组可能的结果中选择社会最优的结果。如果竞标者之间可能发生勾结,则VCG的表现将优于 广义第二价拍卖 为卖方产生的收入和分配效率。VCG机制满足激励兼容和个体理性的条件,并且在所有分配单物品的有效,激励兼容且个体理性的机制中,VCG机制使得每个竞拍者的期望支付最大化.

        Vickrey–Clarke–Groves(VCG)拍卖 是多件物品的密封竞价拍卖的一种。投标人提交的投标书将报告其对这些物品的估价,而不知道其他投标人的投标书。拍卖系统将物品分配到 社会最优 方式:向每个人收取他们对其他投标人造成的伤害。它给竞标者 激励他们竞标其真实估值,通过确保每个投标人的最佳策略是对项目的真实估值进行投标;竞标者串通可能会破坏它,特别是在某些情况下,单个竞标者以不同的名称进行多次竞标会破坏这一点。它是一个 Vickrey拍卖会 用于多个项目。

4.部分源码

.........................................

for nn = 1:M

    nn

    TIME    = 10000;

    NUM     = 0;

    %信道lemda

    lemda2  =  1/1000 + (1/100-1/1000)*rand(N,1);%1/1000 ~ 1/100的均匀分布

    hi      = zeros(nn,1);

    for t = 1:TIME

        %Step 1,算法执行的开始,对参加竞价的次用户数等进行初始化。

        hi   = rand(nn,1);

        hicr = rand(nn,1);

        IIs = [];

        for i = 1:nn

            fail = 1;

            %授权用户出现的概率

            P   = rand;

            P2  = rand;

            while fail == 1

                if P2 < 0.01%有认知用户

                    %Step 2,计算出次用户 i 对频谱 j 的估价vi

                    for j =1:N

                        Vi1(j) = 1 - lemda(j)/(log2(1+hi(i)*p/No));

                        Vi2(j) = 1 - lemda2(j)/(log2(1+hicr(i)*p/No));

                    end

                    %Step 3,计算出每个次用户最终提交的竞标价格bi

                    for mm1 =1:N

                        bi1(j) = Vi1(j) - randn(1);

                        bi2(j) = Vi2(j) - randn(1);

                    end

                    %Step 4,比较每个次用户的估价价格和自己提交的竞价价格的大小,如果估价

                    %价格小于竞标价格,说明频谱 j 不适合次用户 i,返回到 Step 2,否则

                    %直接执行下一步。

                    for mm1 =1:N

                        Vi_bi1(j) = Vi1(j) - bi1(j);

                        Vi_bi2(j) = Vi2(j) - bi2(j);

                    end

                    Vi_bi = [Vi_bi1,Vi_bi2]; 

                else%无认知用户

                    %Step 2,计算出次用户 i 对频谱 j 的估价vi

                    for j =1:N

                        Vi(j) = 1 - lemda(j)/(log2(1+hi(i)*p/No));

                    end

                    %Step 3,计算出每个次用户最终提交的竞标价格bi

                    for mm1 =1:N

                        bi(j) = Vi(j) - randn(1);

                    end

                    %Step 4,支付机制Vi_bi

                    for mm1 =1:N

                        Vi_bi(j) = Vi(j) - bi(j);

                    end

                end

                %去掉小于0的

                Ind1 = find(Vi_bi>0);

                if isempty(Ind1)==1

                   fail = 1;

                else%没有中断,则选择%Step 5,找出最大的竞标价格及对应的次用户 i。

                   [VV,II] = max(Vi_bi);  

                   fail = 0;

                end 

            end

            IIs=[IIs,II];

        end

        %如果IIs前后不同,则说明成功,进行一次切换

        for iis = 1:length(IIs)-1

            if IIs(iis+1)~=IIs(iis)

               NUM = NUM+1;

            end

        end

    end

    PRO(nn) = NUM/TIME;

end

....................

01-153m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168