## Diffusion Network-Profile

The Profile model assumes that the diffusion process is only apparent; each node decides to adopt or not a given behavior – once known its existence – only on the basis of its own interests.

Diffusion Network

true

#### Authorship

:
View
Is authorship not correct? Feed back

#### Classification(s)

Method-focused categoriesData-perspectiveGeoinformation analysis
Method-focused categoriesProcess-perspectivePhysical process calculation

#### Detailed Description

English {{currentDetailLanguage}} English

# Profile

The Profile model, introduced by Milli et al. in [1], assumes that the diffusion process is only apparent; each node decides to adopt or not a given behavior – once known its existence – only on the basis of its own interests.

In this scenario the peer pressure is completely ruled out from the overall model: it is not important how many of its neighbors have adopted a specific behaviour, if the node does not like it, it will not change its interests.

Each node has its own profile describing how many it is likely to accept a behaviour similar to the one that is currently spreading.

The diffusion process starts from a set of nodes that have already adopted a given behaviour S:

• for each of the susceptible nodes’ in the neighborhood of a node u in S an unbalanced coin is flipped, the unbalance given by the personal profile of the susceptible node;
• if a positive result is obtained the susceptible node will adopt the behaviour, thus becoming infected.
• if the blocked status is enabled, after having rejected the adoption with probability blocked a node becomes immune to the infection.
• every iteration adopter_rate percentage of nodes spontaneous became infected to endogenous effects.

## Statuses

During the simulation a node can experience the following statuses:

Name Code
Susceptible 0
Infected 1
Blocked -1

## Parameters

Name Type Value Type Default Mandatory Description
profile Node float in [0, 1] 0.1 False Node profile
blocked Model float in [0, 1] 0 False Blocked nodes

The initial infection status can be defined via:

• percentage_infected: Model Parameter, float in [0, 1]
• Infected: Status Parameter, set of nodes

The two options are mutually exclusive and the latter takes precedence over the former.

## Methods

The following class methods are made available to configure, describe and execute the simulation:

### Configure

classndlib.models.dynamic.DynProfileModel.DynProfileModel(graph)
Node Parameters to be specified via ModelConfig
Parameters: profile – The node profile. As default a value of 0.1 is assumed for all nodes.
DynProfileModel.__init__(graph)

Model Constructor

Parameters: graph – A networkx graph object
DynProfileModel.set_initial_status(selfconfiguration)

Set the initial model configuration

Parameters: configuration – a ndlib.models.ModelConfig.Configurationobject
DynProfileModel.reset(self)

Reset the simulation setting the actual status to the initial configuration.

### Describe

DynProfileModel.get_info(self)

Describes the current model parameters (nodes, edges, status)

Returns: a dictionary containing for each parameter class the values specified during model configuration
DynProfileModel.get_status_map(self)

Specify the statuses allowed by the model and their numeric code

Returns: a dictionary (status->code)

### Execute Simulation

DynProfileModel.iteration(self)

Execute a single model iteration

Returns: Iteration_id, Incremental node status (dictionary node->status)
DynProfileModel.execute_snapshots(bunch_sizenode_status)

NB: the execute_iterations() method is unavailable for this model (along with other thresholded models).

## Example

In the code below is shown an example of instantiation and execution of a Profile model simulation on a random graph: we set the initial infected node set to the 10% of the overall population and assign a profile of 0.25 to all the nodes.

import networkx as nx
import dynetx as dn
import ndlib.models.ModelConfig as mc
import ndlib.models.dynamic.DynProfileModel as pro
from past.builtins import xrange

# Dynamic Network topology
dg = dn.DynGraph()

for t in xrange(0, 3):
g = nx.erdos_renyi_graph(200, 0.05)

# Model selection
model = pro.DynProfileModel(dg)
config = mc.Configuration()

# Setting nodes parameters
profile = 0.15
for i in g.nodes():

model.set_initial_status(config)

# Simulate snapshot based execution
iterations = model.execute_snapshots()

 [1] Milli, L., Rossetti, G., Pedreschi, D., & Giannotti, F. (2018). Active and passive diffusion processes in complex networks. Applied network science, 3(1), 42.

#### {{htmlJSON.HowtoCite}}

Milli L (2019). Diffusion Network-Profile, Model Item, OpenGMS, https://geomodeling.njnu.edu.cn/modelItem/4b6b5451-b1c4-4c64-8b90-9c458bd58aa2

#### Authorship

:
View
Is authorship not correct? Feed back

#### QR Code

• {{curRelation.name}}
{{curRelation.name}}

{{curRelation.overview}}
{{curRelation.author.join('; ')}}
{{curRelation.journal}}

{{htmlJSON.RelatedItems}}
{{props.row.name}}

{{ props.row.overview }}
{{ props.row.overview }}
Drop the file here, orclick to upload.
File size should not exceed 10m.
Select From My Space

{{htmlJSON.authorshipSubmitted}}

Cancel Submit
{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
{{ item.label }} {{ item.value }}
{{props.row.localName}}
{{htmlJSON.ModelName}}:
{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
Name:
Version:
Model Type:
Model Domain:
Scale:
Purpose:
Principles:
Incorporated models:

Model part of

larger framework

Process:
Information:
Initialization:
Hardware Requirements:
Software Requirements:
Inputs:
Outputs:
{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
Title Author Date Journal Volume(Issue) Pages Links Doi Operation
{{htmlJSON.Cancel}} {{htmlJSON.Submit}}

Yes, this is it Cancel

OK
{{htmlJSON.Cancel}} {{htmlJSON.Confirm}}
Model Classifications 1
Model Classifications 2
Title Author Date Journal Volume(Issue) Pages Links Doi Operation

#### NEW

Name:
Affiliation:
Email:
Homepage:

Yes, this is it Cancel

Confirm
{{htmlJson.path}}
:
/{{path.name}}
search results of '{{searchContentShown}}'

#### No content to show

{{item.name}}

.

{{item.suffix}}

.{{item.suffix}}

{{htmlJson.Max}}: {{toDecimal1(capacity/1073741824)}} GB
Copy
Delete
Rename
/{{path.label}}
{{htmlJson.Change}}
/{{path.name}}
{{htmlJson.SelectFile}}
{{htmlJson.Cancel}} {{htmlJson.Confirm}}
{{htmlJson.path}}
:
/{{path.name}}
/..
{{htmlJson.Cancel}} {{htmlJson.Confirm}}
{{ data.name }}
##### You have select  {{multipleSelection.length+multipleSelectionMyData.length}} data .
• Output Data
• {{item.computableName}}@{{formatDate(item.runTime)}}
{{scope.row.type}}
{{ scope.row.tag }}
• Fork Data
{{it.category}}

#### NEW

Name:
Affiliation:
Email:
Homepage:
previous next conform
{{htmlJSON.ModelClassifications}}

{{htmlJson.RelatedItems}}
{{ props.row.overview }}
{{ props.row.overview }}
{{htmlJson.Cancel}} {{htmlJson.OK}}
{{ item.label }} {{ item.value }}
{{props.row.localName}}
Model Name :