运筹学作业——社会网络中的信息传播优化问题

本文探讨社会网络中信息传播的优化问题,基于独立级联模型,研究如何选择起始节点以最大化传播范围。文章涉及1377个节点和2279条边的有向网络,提出选择10个节点以覆盖最多用户的问题及至少需要多少节点以覆盖800个以上节点的策略。
摘要由CSDN通过智能技术生成

去年写的,今年发一下。

社会网络

社会网络是指社会个体成员之间因为互动而形成的相对稳定的关系体系。社会网络以个人为节点(node)构成社会结构,人与人之间通过相互依赖关系联结起来。相互依赖关系可能是朋友关系、同学关系、生意伙伴关系、种族信仰关系等。一个社会网络可以用一张网络图来表示,其中节点(node)代表人,边(edge)代表人与人之间的关系。如果两节点之间的关系是双方对等的(例如朋友关系、同学关系等),则边为无向边;如果两节点之间的关系是不对等的(例如微博的关注关系、论文的引用关系等),则边为有向边,从一个节点指向另一个节点。

社会网络中的信息传播

信息在社会网络中以个人节点为载体,沿着节点之间的边进行传播。信息传播的方向与边的指向一致。在网络中,从不同节点开始传播的信息,其传播效果可能大不相同。社会网络中的信息传播优化问题所要讨论的就是如何选择起始的传播节点,使得信息能获得最大范围的传播(或达到指定的范围)。

独立级联模型(IndependentCascade Model)

社会网络中的信息传播过程可以用独立级联模型来描述。该模型将整个社会网络看做一个有向图,其中是所有节点的集合,是所有边的集合。每条边有一个传播概率,即信息有概率可以沿着某条边从一个节点传播到另一个节点。在此假设所有边的传播概率都相同。

优化问题

给定一个弱连通的有向网络,包含1377个节点和2279条边。

此次的信息传播优化问题描述如下:

1. 如何选择10个初始节点,使得信息的传播范围最广?

2. 如果希望信息的传播能覆盖800个以上的节点,则最少应该选择哪些用户作为传播的起始节点?


问题一:

#include<iostream>
#include<vector>
#include<map>
#include<stdio.h>
#include<stdlib.h>
#include<queue>
#include<time.h>
#include<algorithm>
//Social Network Pro1
//Author:I-Hsin

using namespace std;
class node
{
public:
    vector<int>source;//这个点是由哪些源点扩展出来的,删去源点后则为-1.
    bool flgsource;//自身是否为源点
    int level;//BFS时处于第几层
    int area;//the area that the node cover as a source node
    int id;//index
    vector<int>spread;//the nodes that this one covers,which differs at other time
    int od;//when it has been expanded in a bfs
public:
    node(){}
    node(int i,int l,int o)
    {
        flgsource=false;
        level=l;
        area=0;
        id=i;
        od=o;
    }
};
vector<int>network[1380];//save the graph
node dot[1380];//save the node;
long long Map[1380];//map int to the index of type long long
map<long long,int>mp;//map index of type long long to int
int cnt[1380];//count the times that the node is chossen as the ten greatest source node
bool used[1380];//for dfs to find top nodes
const int N=10000;//times for simulation
const int Side=8;//the level that one node nee
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值