skip to main content
technical-note
Open access

Politika: Implementing a Novel Meta-simulation Methodology for Public Policy Design on the Web

Published: 05 December 2022 Publication History

Abstract

Public policy design proceeds by first defining a policy problem and then proposing and evaluating a set of policy alternatives for it. It is a deeply political process with no clear answers and with an outcome that often reflects the opinion of the majority in framing and solving problems. Consequently, it may lead to sub-optimal policies that are not inclusive. We seek to address such problems by developing a novel computational methodology based on the creation and execution of simulation models for each alternative. Our methodology enriches these models with meta-simulation structures and processes that operationalize the assumptions behind each alternative. This is achieved by embedding such assumptions as simulation constraints at various levels throughout the design. Furthermore, our methodology evaluates alternatives in terms of explicit criteria supplied by the policy makers. Overall, this process provides insight and transparency to policy design as modeling assumptions, policy mechanics, evaluation criteria and their consequences become explicit and can be examined for every alternative. We describe Politika, a prototype of such a methodology on the web and provide appropriate examples that explain how the quality of scrutiny, debate, and critique over policy can be enhanced.

1 Introduction

Public policy design is a complex task involving multiple policy makers with different degrees of influence in the decision-making process and with opposing political priorities. In this context, policy designers need to come up with solutions that are technically and politically feasible, i.e., they should fulfill their intended function and be useful and acceptable to enough powerful actors in a policymaking system [31]. Unfortunately, such design strategies frequently lead to the formulation of incompatible policy alternatives based on conflicting assumptions and questionable predictions for their outcomes [25]. Often the alternatives that are chosen for implementation reflect the beliefs and interests of the political majority and lack consensual characteristics. Consequently, they can create social divisions and undermine trust and participation in policy creation. Therefore, it is important to develop design tools that can address these problems by enhancing transparency, insight and inclusiveness to policy formulation.
Our goal is to develop design environments that exploit the power of simulations as analytical tools to reason about the outcomes of different policy alternatives. The need for using simulation in policy design arises from the frequent lack of data to guide the analysis of policy alternatives [18]. For example, our knowledge of the effects of alternative tax policies on unemployment rate comes from data only for the policies that have been applied to the target population in the past. This may not be true for other policy alternatives that were never actually applied to this population. In this case, simulation offers a promising solution to the analysis of such unobserved alternatives. In our approach, we base the simulations of all alternatives on a common modelling and execution environment. This facilitates side-by-side examination of policy models and comparative analysis of their assumptions, mechanics and outcomes. Furthermore, we develop meta-simulation structures and processes that seek to: !
apply constraints throughout the design process that operationalize modeling assumptions for each alternative,
reason about the feasibility of alternatives through the analysis and comparison of their simulation outcomes.
The first task is achieved with the specification and application of a hierarchy of constraints embedded in a tree structure throughout the design process. The second task is achieved with the creation of automatic methods for the analysis and comparison of the simulation results for policy alternatives based on global and alternative-specific criteria supplied by the policy makers.
We implement our methodology in Politika, a simulation-based environment for policy analysis and design on the web. Politika uses agent-based, social simulation as the primary analysis tool for evaluating policy alternatives. Agent-based models and simulations have become quite valuable in the analysis of the interactions between individuals or groups in social dynamics as they can capture feedback between the behaviour of heterogeneous agents and their surroundings [21]. In this paradigm, agents act independently according to prescribed rules and adjust their behavior based on their current state, on that of other agents, and on the environment. Consequently, emergent patterns and dynamics can be observed arising from local interactions between the agents.
Politika decomposes each policy in a tree structure of goals, alternatives, and simulation models in line with the methodology used in policy analysis [5, 9, 22]. It then allows the designer to attach constraints and selection criteria at each level in the tree. The environment uses the resulting structure to automatically compose top-down and bottom-up processing pipelines that simulate and evaluate each alternative based on the criteria and the constraints that are available. Politika forms the social dynamics component of the PolicyCLOUD architecture [8] that aims to provide analytic tools for supporting public policy modeling and design.
The rest of this article is structured as follows. Section 2 describes the architecture of Politika. Section 3 describes the model for a policy example that we use throughout the article to highlight the importance of political and social context in policy modeling and to explain our design methodology. Sections 4 and 5 describe the modeling and simulation capabilities of Politika, respectively. Section 6 analyzes our novel meta-simulation framework for policy design. Section 7 discusses the role of Politika in policy design and describes related work. Finally, Section 8 is a conclusions and future work section.

2 Architecture

Politika provides an online meta-simulation environment for Agent-based Modeling and Simulation (ABMS) [20]. Figure 1 depicts its overall architecture. As this figure indicates, Politika includes a user- and server-side system. The user-side system allows multiple users to concurrently interact with the system through a Javascript web client interface. Using this interface they can: specify/edit/delete/browse/execute a policy model, upload/download data to a simulation, examine raw policy results, and compute and visualize policy analytics. All these operations serve multiple users concurrently except from simulation execution, which, due to possibly high computational load and potentially limited server resources, runs one simulation at a time by default. In this case, all pending user requests for simulation execution are placed in wait mode during which they poll the simulator for availability with a fixed frequency. A user request in wait mode starts executing automatically when polling succeeds in finding an available slot.
Fig. 1.
Fig. 1. Overall architecture of the Politika environment.
On the server side all user requests are processed by a web server based on the Phoenix web framework.1 The Phoenix system interacts with three independent components consisting of the policy simulator built in Elixir,2 which in turn is built on top of Erlang,3 the analytics component that includes the meta-simulator environment also built in Elixir and the database system that uses the Ecto/Postgres4 environment.

3 Policy Example

As an example throughout the article, we examine the design of a hypothetical policy for controlling radicalization in a social group. The example assumes that the radicalization process features the progressive adoption of extreme political, social or religious ideals in the population through social influence. Social influence is defined as change in an individual’s thoughts, feelings, attitudes, or behaviors that results from interaction with another individual or a group [29]. Its importance in fostering membership in a radicalized group has been acknowledged [4]. In general, Politika models a policy’s target group as a graph representing a population of autonomous and interconnected agents. We refer to graph nodes as individuals and graph edges as their connections. Each connection is directed from a source to a target node.
In our example model each individual has an initial radicalization\(\_\)status represented as a real number between \(-1\) (conformist) and +1 (radicalized fanatic). Each individual can influence other individuals through a number of outgoing, directed connections. Every connection has a contact\(\_\)strength that indicates its strength. Contact strength is modeled as a real number between 0 (idle) and +1 (strong). Furthermore, each connection has an influence representing the level of social influence that a person exerts on the individuals it connects with in terms of radicalization. At each simulation cycle, the influence is computed as the product of the radicalization status of the individual and the contact strength of the connection. Furthermore, at each cycle every individual updates its radicalization\(\_\)status by adding to its current radicalization\(\_\)status the sum of the influences it receives through all its incoming edges.
The example model is used to compare the social outcomes of applying various policy alternatives that restrict the interactions of various categories of radicals with the rest of the population including a base case of applying no such policy. In particular, at the policy level, we define values for a:
(1)
radicalization_threshold, a real number between \(-1\) and +1,
(2)
restriction_threshold, a real number between radicalization\(\_\)threshold and +1,
(3)
restriction_duration, a positive integer,
(4)
restriction_cost_per_head, a positive real number.
Individuals with a radicalization_status higher than radicalization_threshold are considered to be radicals. The rest are considered non-radicals. Radicals with a radicalization_status higher than restriction_threshold are deemed to be dangerous and become the targets of a restriction policy, while those with a radicalization_status between radicalization_threshold and restriction_threshold are considered to be moderately radicalized. The targets of a restriction policy have all their incoming and outgoing connections idled (their contact_strength becomes zero) for restriction_duration number of simulation cycles during which they are characterized as isolated.5 After their restriction period is over, the contact_strength of each of their connections is reset to a new random contact_strength that on average is lower than the one before their latest restriction. This reset reflects the difficulties reuniting with pre-restriction contacts that is frequently observed in cases of radicals re-entry into the community [3].
At the end of each simulation cycle the model computes a set of policy-related attributes for the population. In particular, the radicals attribute measures the current percentage of individuals with a radicalization\(\_\)status greater than radicalization\(\_\)threshold. The restricted attribute measures the current percentage of isolated individuals in the population. Furthermore, we assume that there is a cost for restricting a dangerous radical for each unit of restriction_period. This is captured by the restriction_cost_per_head attribute. Based on it, we use the policy_cost attribute to compute a total cost for applying a particular restriction policy on a population. For this, we add to its current value the product of isolated individuals in this cycle times the restriction_cost_per_head.

3.1 Critical Factors

Although simple, as it does not deal with several socioeconomic factors correlated with radicalism, this example allows us to explain how the dual task of providing technical and political feasibility influences policy design and shapes the debate and criticism over policy formation. Because there is no dominant and unified definition on what constitutes radicalization, deciding on a value for radicalization_threshold reflects a policy maker’s belief of who should be classified as a radical. On a range of [\(-1\), 1], if we set this value close to/far from 1, then less/more individuals are expected to fall into this category. Such a decision also influences the perceived magnitude of the radicalization problem in a particular social group. Determining the target group of a policy is often a political decision [24]. In our case, accepting a low value for radicalization\(\_\)threshold increases the initial number of individuals that are classified as radicals in this population, thereby supporting the position that a radicalization problem exists and it needs to be fixed. Furthermore, the proportion of restricted individuals depends on the values for restriction_threshold and restriction_duration and reflects the strictness of the policy, which, in turn, is often influenced from political beliefs on the efficacy of various methods for dealing with radicalization [16]. Finally, different and often conflicting criteria may be used for evaluating a policy. For example, a very strict policy that reduces the proportion of radicals through incarceration may be considered to be effective but socially divisive or economically challenging. For all these reasons policy alternatives should make explicit their assumptions, mechanics and outcomes to facilitate side-by-side scrutiny, dialogue, and criticism in policy formulation.

4 Model Structure for Policy Simulation

Figure 2 describes the structure of the policy models fed to the Politika simulator. Each such model consists of the following components.
Fig. 2.
Fig. 2. Modelling environment for the Politika simulator. Bidirectional red arrows indicate data sources that the simulator can read and/or update. Unidirectional black arrows indicate user-defined data sources that the simulator can only read.

4.0.1 A List of Policy Attributes and Their Initial Values.

For example, in our radicalization model these can include the percentage of radicals in the population and the current policy cost as in:
radicals: 15, policy\(\_\)cost: 85
In general, the modeling language used by the system represents individual, connection or policy attributes as keyword/value strings. As the example indicates strings ending in “:” are keyword names for attributes, while the rest are the parameter values.

4.0.2 A Set of Rules for Policy Dynamics.

These rules specify how the policy attributes change during the simulation. Furthermore, policy dynamics rules can be used to model exogenous influences on the population such as the addition of individuals through migration or the imposition of quotas and other policy measures. The current Politika prototype assumes that the values of policy attributes are computed based on aggregation of individual attributes via built-in system functions. Although popular in policy design and analysis, the use of aggregated data is a subject of debate [13]. Responding to such criticisms, built-in functions for policy dynamics can be extended in future Politika versions to provide additional support for the use of individual-level data at the policy level.

4.0.3 A List of Individual Attributes and Their Initial Values.

These describe the characteristics of each individual agent in the population. For example, in our radicalization-related policy scenario, these can include the individual’s current radicalization status, education and income level.

4.0.4 A List of Connection Attributes and Their Initial Values.

These describe the attributes of the connections between individuals in the population. Each such connection is represented as an edge with attributes between two individuals in a graph. Each edge contains a set of attributes that characterize such a connection and may change during simulation. For example, in our radicalization example, these attributes include the strength of each connection and its influence over the radicalization status of the individual at the receiving end of the edge. In general, each individual can be connected to multiple other individuals. Each connection is unidirectional. Therefore, bi-directional links are modelled as a pair of unidirectional links with the same attributes but opposite directions between two nodes. During each simulation cycle the simulator updates the attributes of all the connections for each individual in the population.

4.0.5 A Set of Rules for Individual Dynamics.

These describe how attributes for each individual are updated during the simulation. Some of the attributes of each individual can be influenced by an aggregated function of the attributes of its incoming edges. For example, the radicalization status of an individual is influenced by the sum of the products of the strength times the influence of all its incoming edges. Furthermore, these rules describe how the connectivity for each individual changes during the simulation (e.g., creation/deletion of individual connections). Changing network structure and connectivity with individual dynamics rules allows the user to model how graph topology evolves based on individual decisions at a local level. Finally, the execution of individual dynamics rules can result in the addition of new individuals in the population thus allowing the modelling of local reproduction phenomena.

4.0.6 A Set of Rules for Connection Dynamics.

These describe how both connections and their attributes change during the simulation. Such dynamics depend on the attributes of the nodes at both ends of the connections and on the policy-relevant attributes.

4.0.7 A List of Measurement Units for Each Policy, Individual, and Connection Attribute.

Measurement units for parameters in public policy analysis and design can play significant roles in how a problem is conceptualized and addressed [14]. In Politika, the modeler needs to explicitly describe the measurement units of each attribute to facilitate comparisons and clarify their meaning. For example, in our radicalization model the units for the policy in the simulation model are specified as the following list:
where % refers to a percentage, “1” refers to a unitless attribute, while the rest of the units are clear.
4.0.8 The Size of the Population on Which the Policy Will Be Simulated.
4.0.9 The Number of Cycles for Which the Simulator Will Run.

4.0.10 The Sampling Period.

This defines the period in simulation cycles with which the attributes for each individual, connection and policy are sampled. Sampled values for each attribute form a history for changes in the attribute values at various cycle intervals. Such a history can be later processed by various analytics or visualization methods.

4.0.11 The Specifications of a Network Generator Component.

This is used whenever the user wants to simulate policy effects on a population generated from a known network model such as a random graph or various power-law networks. The features of such a model are provided as a set of key-value pairs. For example,
are instructions to the network generator to create a population where each individual has at least one and at most five outgoing unidirectional edges and where the specific number of edges is randomly selected from a uniform distribution between these extreme values.

4.0.12 Network Data in JSON Format.

These can describe the individual and connection attributes of the members of an actual population dataset that can be uploaded/downloaded to/from the simulator.

4.1 Example of an Actual Model

Figure 3 provides a screenshot of one of the simulation models in Politika related to our radicalization example. As the figure shows on the top menu, the user is able to examine all parts of the simulation model, execute it, view its results or clone it if she wants to create a new simulation model based on it. She can also adapt the population to her needs interactively through the Manage option. Some of the individual and connection attributes in the model (x, y, z, red, green, blue, alpha and radius) are used for visualizing the current state of the social network during simulation. In the dynamics rules this refers to the state of the individual running a rule, global refers to the state of the policy node and edge refers to the state of a connection between individuals.
Fig. 3.
Fig. 3. Screenshot of a simulation model in Politika dealing with radicalization.

5 Policy Simulator

5.1 Model Compilation

During each simulation cycle, the simulator spawns a set of concurrent processes, one for each individual, that run the individual and connection dynamics rules for it and update its state. All types of dynamics (policy, individual, or connection) are specified as lists of IF.DO rules of the form
which the simulator compiles into Elixir functions. In the case of individual dynamics rules, these functions have, in pseudocode, the general form
where this and updated\(\_\)this refer to the current state of the individual executing this rule and the one resulting from executing the do-part of the rule, respectively. In addition, global refers to the current state of the policy and cycle is the current simulation cycle number. To avoid indeterminate updating of agent states in a concurrent rule execution environment each individual dynamics rule can only update the state of the individual executing the rule.
Conceptually, individual dynamics rules utilize:
attribute values for the individual involved,
macroscopic connection data (e.g., number of incoming/outgoing connections for the individual),
existence, filtering and/or comparison of certain connection attribute values in incoming connections,
results of aggregated function evaluations on attributes of incoming connections (e.g., sum, threshold, mean, min/max),
current values of policy attributes.
As a result, these rules update the attributes of the individual involved and/or manage outgoing connections (e.g., remove/create/update outgoing connections). To model reproduction phenomena in the population the execution of an individual dynamics rule can add new nodes in the population as a side effect. We achieve management of these side effects in a consistent way in a concurrent environment by modelling the population as a separate concurrent process in the simulator. Such a process has its own state and receives messages from individuals to update its state. The population state includes a list of the concurrent processes corresponding to the list of individuals in the population. This list is updated every time an individual is added/removed from the population.
Connection dynamics rules, are compiled into functions that have the following form:
Compared to the previous case, such functions have two additional arguments/variables: edge and updated\(\_\)edge that refer to the state of the specific connection that runs the rule and the one resulting from executing the do-part of the rule, respectively. In addition, distal refers to the state of the individual at the receiving end of the connection. To avoid indeterminate updating of agent states in a concurrent rule execution environment each connection dynamics rule can only update the state of the connection executing the rule and not the state of the node at the receiving end of the edge. Conceptually, connection dynamics rules access attributes of individuals at both ends of the connection along with attributes of the specific connection to update the attributes of that connection.
Finally, policy dynamics rules are compiled similar to the individual dynamics rules as
This is the case, because policy state is implemented as a unique, special individual with its own attributes that correspond to the policy attributes and with no connections to the rest of the population. Conceptually, policy dynamics rules utilize current values of policy attributes while also computing aggregated population attributes based on attributes of individuals to update policy parameters at the end of each simulation cycle. This is why the function takes a third argument referred to as size with a value equal to the size of the current population. In addition, policy dynamics rules can add/remove individuals from the population to model either policy interventions (e.g., changes in the workforce) or exogenous influences on the population (e.g., migration). In this case, each new individual is responsible for forming connections with the rest of the population through its individual dynamics rules.
For example,
represents a connection dynamics rule that computes the influence of a connection as the product of the source node’s radicalization status times the contact strength of the connection, assuming that the source is not in isolation. Politika represents the state of the connection running the rule with the edge variable. It represents the state of the individual from which the edge originates (the source) with the this variable.

5.2 Concurrent Execution

The simulator permits the concurrent simulation of the behavior for all individuals based on BEAM, the Erlang runtime system with built-in support for concurrency and distribution of processing tasks in different nodes of a server cluster. The need to create computationally efficient simulations through concurrency requires the design of a global execution scheme at the population level that guarantees proper updating of attributes in all individuals and their connections. In particular, this scheme needs to:
provide immutable state for each attribute that avoids situations in which attributes accidentally change as a result of various side effects during computation,
ensure that at each point in time only one process updates an attribute, otherwise the outcome of the updating process can be undetermined.
The first requirement is satisfied through the use of a functional programming language such as Elixir where all variables have immutable state as each variable update results in a new copy of the variable. Therefore, data objects generated at different times remain distinct and in-place updating of data structures is avoided.
The second requirement necessitates a careful structuring of all computations involved that can provide correct updating of all attributes but also ensure the autonomous behavior of each individual in the simulation. To this end, each connection dynamics rule updates only the attributes for the connection it is applied on, while attributes for individuals are updated only through the application of individual dynamics rules for each individual. Therefore, in its outgoing connections each individual has read/generate/remove permissions via its individual dynamics rules and read/write permissions via its connection dynamics rules. Each individual has only read permissions on its incoming connections. This scheme allows the simulator to run the individual and connection dynamics rules for each individual concurrently as depicted in Figure 4. As this figure shows during such execution each individual runs first its connection and then its individual dynamics rules sequentially in the order specified by the simulation designer for each rule type. This ensures that connection dynamics rules always use the values of the individual attributes set at the end of the previous simulation cycle thus facilitating monitoring of their dynamics and providing consistency in their behavior. In addition, it ensures that only one rule can update an individual/connection attribute at each time, while also allowing the designer to code for scripted behaviors in individuals that assume a specific execution order of their relevant rules (e.g., when coding the steps in a financial transaction). Finally, policy dynamics rules are executed sequentially in the order specified by the designer at the end of each simulation cycle, since they utilize aggregated individual attributes. Such rules can only read attributes of individuals while they can read and update policy attributes. Overall, this scheme ensures the proper updating of individual, connection and policy attributes in a concurrent execution environment, because for each one of them there is a unique way of modifying it at each point in time.
Fig. 4.
Fig. 4. Concurrent execution scheme of the Social Dynamics Simulator for a number of individuals 1...N. Red arrows indicate execution order in the sequential execution case. Unidirectional arrows indicate data sources that can only be read by a dynamics subsystem. Bidirectional arrows indicate data sources that can be read and/or updated by such a subsystem.
The simulator takes into consideration the fact that a computing system has a finite set of schedulers that can execute concurrent tasks, as this is related to the number of processor cores available. Therefore, at the start of each cycle the simulator divides the population into chunks based on the list of concurrent processes corresponding to individuals in the population state. Chunks are executed sequentially, while the dynamics for the individuals at each such chunk are executed concurrently. For example, if chunks A and B consist of 100 individuals each, then the simulator will execute concurrently all the individuals in chunk A followed by the concurrent execution of all the individuals in chunk B. Chunk size is chosen to optimize the size of the execution queue for each scheduler. Furthermore, to avoid artifacts resulting from the use of fixed chunks during the simulation that result in a fixed execution order among the individuals in the population (e.g., the dynamics of Individual 1 are computed always before that of Individual 2), the simulator generates randomly a new set of chunks at the start of each simulation cycle.
Compilation of rules into Elixir functions presents a security threat for a web-based simulator, since it could allow the execution of malicious code at the server hidden in one of the dynamics rules. To increase the possibility of detecting such threats, the simulator performs a static security analysis of the code of the rule that is turned into a function. In particular, the simulator maintains a list of Elixir and Erlang built-in functions that are considered to be safe. These include arithmetic (e.g., +, *) and comparison (e.g., max, min, ==) build-in Elixir functions that are further enriched with many simulator-specific functions we have implemented mainly for:
(1)
computing aggregated functions over individuals and over their incoming edges,
(2)
allowing the generation or deletion of edges from an individual that satisfy relevant criteria,
(3)
adding/removing individuals in the population that satisfy relevant criteria.
If an unsafe function is detected in the model, then compilation stops and the particular simulation task is aborted.
Furthermore, we seek to increase the reliability of our web-based simulator by monitoring the use of server resources during simulation. More specifically, the simulator examines the available memory for operations at the end of each cycle. If this is below a critical threshold that is specific to the server running the simulation, then no new cycle of the simulation runs, the results of the current execution cycle are stored in the database, and the user is informed about the number of cycles that the system was able to execute and the breach of the memory threshold. This allows the system to abort simulations that utilize population and connection magnitudes beyond the capabilities of the servers running the system. At its current state, Politika runs on a minimal server with two cores and 6 MB RAM. It is able to reliably execute the simulation model of Figure 3 for a population of up to 30K individuals.

6 Meta-simulation Analysis for Policy Design

6.1 Policy Design Process and Its Decomposition

We base our model of the policy design process on a tree structure. At its root sits a Policy node having a set of alternative Goals as its children. Each Goal contains an abstract description of the desired outcomes of a policy. Under each Goal hangs a set of alternative Objectives for achieving this Goal. An Objective corresponds to a specific methodology for achieving a goal. It represents a policy alternative for a specific Goal. Each Objective, in turn, is decomposed into a sequence of Steps. Each Step represents a policy execution step in the methodology of the parent Objective. We assume that the execution of each step can be simulated, thus providing a value range for its possible outcomes.
For example, Figure 5 describes the design of a hypothetical policy for controlling radicalization in a population. This specific Policy consists of one Goal (0) for reducing the social influence of radicals over the population. Two Objectives are analyzed with regards to this goal. The first one (0\(\_\)0) is the base case of maintaining the status quo. Essentially it models the problem that the policy is seeking to address and provides a base of comparison for the rest of the analysis. The other one (0\(\_\)1) seeks to restrict the influence of radicals to the public. Each one of these objectives has a Simulation Step below it. The 0\(\_0\_\)0 Step provides a simulation model of the evolution of the radicalization in the population of interest with no policy applied. The second one (0\(\_1\_\)0) provides a simulation model of the social dynamics that ensue when a policy seeks to restrict the interaction of radicals with the rest of the population.
Fig. 5.
Fig. 5. Example policy structure used by meta-simulation analysis.

6.2 Top-down Design Constraints

Associated with a policy is a set of design constraints that can be defined at various levels in the tree hierarchy and follow a top-down propagation in it. These include (see Figure 6):
Fig. 6.
Fig. 6. Example of constraint propagation and processing pipeline during policy design. Blue text indicates design constraints propagated top-down in the tree to create consensus in the modeling of alternatives. Red text indicates processing results propagated bottom-up to be used in higher-level processing.
(1)
The population model relevant to the policy. We assume that the population can be described as a graph in which individuals correspond to nodes and their relations as edges. To facilitate comparisons and reason about policy alternatives, it is often the case that their analysis should be based on the same population model. Furthermore, as explained in Section 3, different population models for each alternative may reflect varying political beliefs about the magnitude of the problem the policy tries to solve and about the network structure of the target social group. In this context, the definition of a common population model can be a step toward consensual policy design. Consequently, we assume that the population model should be defined at the Policy level and its definition will be adopted by all the nodes below it. As a result, all the simulation Steps will be constrained to use the same model in their network generator component when creating their population of individuals.
(2)
The set of policy-relevant attributes. We assume that policy-relevant attributes should be defined at the Policy level to determine a common set of features for all the alternatives that will be simulated and compared at all levels below. This forces every simulation model at the Steps level to use the same policy attributes in order for the simulation outcomes to be comparable. In our radicalization case this assumes that there should be a consensus over the values of attributes such as radicalization\(\_\)threshold or restriction\(\_\)cost\(\_\)per\(\_\)head that were explained in Section 3.
(3)
The number of rounds and sizes of populations on which each alternative will be simulated. We assume that both parameters should be defined at the Goal level. For example, specifying the number of rounds at 10 will force each Objective below the particular Goal to schedule the simulations of the dynamics of 10 different populations generated using the population model defined at the Policy level. In this case, a number of 100 for population size will force each Step below the current Goal to generate a population of 100 individuals for each of the 10 different simulation rounds. Both numbers can be set randomly from a range of values supplied by the designer. For example, the designer may want to investigate whether population size affects the simulated policy outcomes for a particular goal and for this s/he may select a different population size chosen uniformly from a range between 500 to 1,000 for each of the 10 rounds of simulations in each simulation step.

6.2.1 Reflecting Lack of Consensus.

We should note that the designer has the flexibility to override our recommendations and provide values for all the design parameters of an alternative at any level in the tree hierarchy. For example, s/he can specify population size at a Step if s/he wishes. In case of conflict, the node at the current level will use the parameter value closest to it in the path connecting it to the root of the tree. In Figure 5, for example, if the population size is defined in Goal 0 and redefined in Objective 0\(\_\)1 then Step 0\(\_1\_\)0 will use the size defined in Objective 0\(\_\)1 as this is closer to it. In general, decisions to override design constraints often indicate lack of consensus over key policy assumptions. These disagreements can be easily spotted in Politika as they are reflected in the structure of each alternative. Therefore, Politika can facilitate scrutiny and criticism over the consensus achieved during design.

6.3 Bottom-up Processing Pipeline

Given a decomposition of the policy design process as a decorated tree hierarchy, the meta-simulation environment automatically generates a bottom-up processing pipeline for transforming simulation outcomes of the various alternatives into policy recommendations. Figure 6 provides an example of this pipeline for the tree hierarchy in Figure 5.

6.3.1 Analytics Maps.

When the user chooses to execute the policy design process tree then every Step in its leaves runs the simulation model it has been associated with using the top-down design parameters defined for it. Each Step maintains the results of all the rounds of simulations it has executed along with the population size in each one, both indexed under the round number for each. The results of each Step are then fed to the Objective above it to compute at this higher level a set of analytics for each of the policy-relevant attributes defined in the design. Currently, this set includes the average value of each attribute along with its minimum and maximum value after all the simulation rounds.
For example (see Figure 6), executing Step 0\(\_1\_\)0 in the radicalization control policy with:
policy-related parameters defined at the Policy node
population model defined at the Policy node
population size of 100 and 10 rounds of simulation defined at Goal 0 node
produces a map of results for the policy parameters with keys indicating the specific round on which these results were computed as in
This map is fed to Objective 0_1, which now computes an analytics map with keys equal to the list of policy attributes and values equal to their statistics for the 10 rounds of simulations that were executed as in

6.3.2 Evaluation Criteria.

Analytics maps from each objective are fed to a set of criteria defined by the policy designer at the Goal above them. These can examine the feasibility of the objective and its political character. In general, different criteria can be used for deciding on whether an alternative can be promising or not based on various Key Performance Indicators (KPIs) and/or political considerations. For example, in our radicalization containment policy one may evaluate success by estimating the reduction on the proportion of radicals when implementing the policy compared to the base case while another one may focus on the cost or the duration of the proposed policy. Given that in actual political communication policy proposals are often described using vague, attention-grabbing terms such as “groundbreaking,” “smart,” and so on, the use of explicit criteria in our methodology provides a clear way to ground these terms in the context of a proposed policy alternative and allow intra-policy comparisons and critique of alternatives.
In Politika each criterion is defined as a key/value map, where key is the name of the criterion and value contains a logical expression involving the policy-related parameters defined for the policy. For example, in Figure 6, we define three criteria in Goal 0. The first criterion named adequacy has the form
It provides a logical expression that is evaluated at run time and checks whether the average value for the radicals computed in the objectives below it is less than 30% of the population. The second criterion named effectiveness provides a logical expression that checks whether the average value for the radicals computed in the objectives below it is below 5% of the population. Finally, the third criterion named viability estimates whether the policy cost is below a given threshold assuming that we do not refer to the base case where the policy cost is zero, because no policy is applied. The meta-simulator automatically evaluates each criterion on the analytics maps provided by its objectives. It then generates a criteria results map that for each objective describes whether it has passed this criterion or not. For example, in Figure 6 both Objectives 0\(\_\)0 and 0\(\_\)1 have failed the effectiveness and viability criteria and only one (0\(\_\)1) has passed the adequacy criterion.
After evaluating each objective on the set of criteria defined for the specific Goal, Politika generates a criteria-ranking map for the objectives based on the proportion of criteria that each one has satisfied. In our example, this ranking map has the form
for the two objectives of the specific Goal, since Objective 0\(\_\)0 satisfies no criterion and Objective 0\(\_\)1 satisfies one out of three criteria. The designer can now consult this map to find out which of the two objectives is better for implementing Goal 0.

6.4 Interactivity

Politika provides a graphical user interface (GUI) on the web that allows the designer to create/edit a tree representation of a policy as described in the previous sections. Such a GUI gives an overview of the design process and facilitates side-by-side examination of the various alternatives. Figure 7 provides a screenshot of this GUI corresponding to the radicalization policy example. The user can click on the tree nodes depicted and examine, edit, delete or execute the clicked node. Executing a node means that the system propagates all design parameters defined on the path from the clicked node to the root to all the nodes belonging to the subtree with the clicked node as root. The system then automatically creates a bottom-up processing pipeline from all the nodes in this subtree to the clicked node.
Fig. 7.
Fig. 7. Screenshot of the Politika GUI for scrutinizing and managing policy hierarchies. Green, orange, blue, and yellow nodes depict Policy, Goal, Objective, and Step nodes.
Furthermore, Figure 8 provides a snapshot of a web-based GUI for visualizing and editing the population network used in policy design either in 2D or 3D. The visualizer uses a number of attributes for each node related to visualization (x, y, z, red, green, blue, alpha, radius, scale). As the figure indicates, the user can click on a node in the graph and examine/edit the attributes of the individual corresponding to this node. Furthermore, s/he can insert/delete nodes/edges in the graph, mainly to fine-tune the population that was generated by the network generation component. Finally, the GUI allows the user to visualize the execution of a policy simulation on the network.
Fig. 8.
Fig. 8. Screenshot of the Politika GUI for managing network data and visualizing the execution of simulations on the population network.
A demo video of Politika is available,6 while an experimental prototype of the system is online.7

6.5 Indicative Results and Insights from Politika for the Design of a Radicalization Containment Policy

We use Table 1 to indicate the kinds of results and insights that can be reached with Politika using as an example the design of a radicalization containment policy based on the simple model described in Section 3. We define our policy goals as a maximum reduction in the percentage of radicals in the population at a minimal cost as captured by the effectiveness and viability criteria described in Section 6.3.2. As described in Section 3.1, the user can create policy alternatives by selecting values for policy parameters such as the restriction_threshold above which radicals are considered to be dangerous and their restriction_period or for population model parameters such as max_edges that influence the average number of connections per head in the population. Simulating and evaluating a series of policy alternatives based on combinations of possible values for these parameters reveals various trade-offs and limitations among the policy goals and produces the following insights:
Table 1.
#restriction_thresholdrestriction_durationmax_edgespolicy_costradicals
1103049.6%
20.24392036%
30.2631,01440%
40.54365837%
50.74533630%
Table 1. Indicative Results for the Design of a Radicalization Containment Policy with a radicalization_threshold Equal to 0 and an Initial Average Percentage of radicals Equal to 50%
Each alternative is simulated five times for 30 cycles. The population size is set to 100 individuals for all alternatives. The first three columns describe the values set by the user for the policy parameters restriction_threshold, restriction_duration and the population model parameter max_edges for each of the five alternatives shown in each row. Apart from the max_edges parameter, all alternatives use the population model described in the example of Section 4.0.11 (note that such a model may be irrelevant, for example, for social media radicalism where we have power-law distributions for node degrees in play). The final two columns describe the average values for the policy_cost and radicals policy parameters computed by Politika at the end of the simulations for each alternative. The first row (in bold) is the base case where no policy is applied.
In general, a restriction policy appears to decrease the average percentage of radicals in the population. This is indicated in Table 1 by noticing that the first row, which corresponds to the base case of applying no policy in the population, results in the greatest final percentage of radicals (49.6%) among all the other rows. Further experiments with larger population sizes than the one (100) in the Table indicate that the final average percentage of radicals for each of the alternatives in Table 1 is independent of population size. Finally, in the base case the initial and final average percentage of radicals, 50% and 49.6%, respectively, are almost the same, therefore there is a strong reason to expect any effects observed in the population when enforcing a restriction policy to be correlated with this policy and not with any other influence.
Decreasing the restriction_threshold increases the average number of radicals in restriction and, therefore, the cost of the policy with diminishing returns on the final percentage of radicals in the population. This is evident in Table 1 by noticing the small decrease in the final percentage of radicals (from 37% to 36%) along with the significant increase in the policy cost (from 658 to 920) when the restriction_threshold falls from 0.5 to 0.2 in the fourth and second alternatives, respectively. This appears to be the case, because if we restrict moderately radicalized people, then they stop receiving social influence not only from dangerous radicals (that are also restricted) but from non-radicals as well. Thus there is a reduced opportunity to decrease their radicalization status via social influencing.
Increasing restriction_duration can lead to an increase of policy cost with debatable results on the final percentage of radicals in the population. This is evident in Table 1 by noticing the increase in the final percentage of radicals (from 36% to 40%) and the significant increase in the policy cost (from 920 to 1,014) when the restriction_duration rises (from 4 to 6) in the second and third rows, respectively. This is the case, because when we restrict a large number of radicals for long periods then the policy cost increases while, as explained on the previous bullet, their radicalization status does not significantly change. Therefore, a “strict” restriction policy that involves long sentences does not appear to be very effective by itself, an insight that is consistent with research on terrorism detention policy [28].
A better strategy appears to be choosing a high value for the restriction_threshold and a moderate restriction_duration as in the fourth alternative in Table 1. In this case, we restrict only highly radicalized individuals for a moderate amount of time, thus the policy cost is not very high. In addition by cutting off the influence of dangerous radicals, we allow moderately radicalized individuals (that remain unrestricted) to become influenced by non-radicals that may exist in their contacts. This gradually lowers their radicalization status and also creates a trend against radicalization in the population as a whole. Our results are consistent with research on both offender re-integration where fewer friends that encourage and reward deviant behavior are correlated with diminishing motivation for committing crime [30] along with de-radicalization processes based on social pressures of non-radicalized friends that make continued involvement in a radical movement less attractive [27].
Increasing the average number of connections in the population along with the application of the restriction strategy described in the previous bullet provides the best policy alternative both in terms of cost and of the final percentage of radicals. We can create and examine such highly connected populations in the policy alternatives by increasing the value of the max_edges parameter in their population models, which also increases the average number of connections per head. Our results indicate (see the fifth alternative in Table 1) that for a comparable initial percentage of radicals and with a common restriction policy, populations with a larger average number of connections among their members (a max_edges value of 5 in the fifth alternative versus 3 everywhere else) fare better in decreasing their percentage of radicals than sparsely connected populations. This appears to be the case, because in such highly connected populations, there is a reduced probability for an individual to have exclusive contacts with dangerous radicals. Therefore, if we restrict only dangerous radicals, then we have the opportunity to influence moderate ones predominantly through their remaining non-radicalized contacts (e.g., by mobilizing such contacts via a counter radicalization media campaign running in parallel with the restriction policy) at a decreasing cost (336 in the fifth alternative versus 658 for the second best fourth alternative).
In all our alternatives there is a residual population of radicals after the application of a restriction policy that ranges from 40% to 30% in Table 1. Examining the individual-level attributes of residual radicals in the raw population results of our simulations, we noticed that the contacts of such radicals consist predominantly of like-minded fanatics, therefore they form radicalized cliques that cannot be easily broken with restriction. Furthermore, our simulations indicate that the size of such residual populations falls with the increase in their connectivity as shown by noticing that the minimum final percentage of radicals in Table 1 (30%) occurs in the fifth alternative that has the largest value for the max_edges parameter among all five alternatives examined. Therefore, a possible solution to break these cliques appears to be the enrichment of the contacts of each clique member with non-radicals (e.g., through specialized re-integration programs in parallel or after a restriction policy) that can influence them toward de-radicalization. Further experiments with changing the duration of policies for two of the best alternatives in Table 1 indicate that tripling the duration of the policy from 30 to 90 cycles can decrease the final percentage of radicals to single digits with a doubling of the policy cost for alternative 4 and 1.5 of the cost for alternative 5.8
As these results indicate, Politika can inform meaningfully the search and debate for promising policy alternatives, because it can not only generate results consistent with policy-relevant social research but it can also show how the implications of such research are reflected on specific policy parameters and their interactions. Therefore, Politika can play a significant role in the early, conceptual phase of policy design. During this phase policymakers need to establish high-level insights for the comparative effectiveness, efficiency, viability, and complexity of various alternatives with respect to the policy goals. The outcomes of this phase can then guide strategic decisions on the policy alternatives that should be further pursued and refined in subsequent design stages.

7 Discussion and Related Work

Some of our ideas were previously sketched in a conference short paper [15]. This article further elaborates upon this previous work by clearly explaining our simulation and policy design methodologies while explaining its significance for policy design through detailed examples.
Most of the current ABMS systems [20] offer either an Application Programming Interface over a general-purpose programming language (e.g., NetLogo [23] using a dialect of Logo, Repast HPC9 using C++), or a special-purpose modelling language (e.g., Gama10 using Gaml). In Politika, we have opted for the second approach and designed a simple rule-based language for agent-based modeling, while providing an efficient execution environment that hides algorithmic and implementation complexity of preparing and executing a simulation from the modeller. The logic behind this decision is to facilitate examination and comparisons between different policy alternatives from users that lack sufficient programming knowledge as is often the case in policy design. Although simple by design, the language is able to express models of endogenous social dynamics arising from local interactions, exogenous dynamics arising from global policy interventions on the network or combinations of the two.
Agent-based models for the dynamics of social interactions and public policy are receiving a lot of attention because of their ability to simultaneously model interactions at the individual level, at the society level and between these two levels [21, 32]. Criticisms for this paradigm often focus on the ad-hoc character of the models that are developed and on the difficulty of obtaining empirical datasets of populations in which to apply these models [26]. However, these models are mostly driven by processes and mechanisms inspired by a social or behavioral sciences theory so they have theoretical underpinnings. Furthermore, it emerges that their outcomes are consistent with empirical data [10].
With regards to modeling policy alternatives there is always an ad-hoc character in their creation, since policy analysis and design is essentially a political process, and, as such, it reflects political opinions in framing and solving problems [2]. Computational policy models are not immune from similar criticisms that focus on the possible use of unreasonable assumptions, over-simplification, and under-estimation of model limitations [6]. Furthermore, consensus building in policy design is quite challenging, because it needs to reconcile objective knowledge coming from observational data and/or simulations with its subjective interpretation, as is often the case in the social domain [19]. Politika seeks to address such problems by making this process transparent, efficient and effective through an openly accessible web environment. As we have already explained such an environment can reveal political influence and bias behind goals and objectives and enhance the quality of discourse and critique around each policy. However, the effectiveness of Politika depends on a redesign of the policy design practice around the use of such open and transparent tools and that may require brave political decisions.
There has been a significant interest in the use of new technologies for policy making [11]. Focusing on simulation this has led to the development of methodological proposals [1, 17], case studies in ABMS modelling [7, 33, 34], or use of modeling and decision support tools from other disciplines such as operational research [12]. Politika extends this research by offering a general, online environment that seeks to simultaneously cover modeling and simulation of policy alternatives, reasoning about their outcomes, and provision of policy recommendations.

8 Conclusions and Future Work

We have described Politika, an implementation of a novel meta-simulation methodology for policy analysis and design. Future work will focus on applying Politika to more use cases of the PolicyCLOUD project and on developing GUIs that facilitate policy designers with little programming experience to describe graphically the mechanics of their simulation models without having to actually write code in our modeling language. Furthermore, we will seek to expand our methodology to the design and analysis of networks of policies.

Footnotes

5
In the real world, possible instruments for implementing a restriction policy for dangerous radicals can range from freezing their social media accounts to actual incarceration after committing or inciting violent acts.
8
However, a long-running restriction policy may be debatable (e.g., is such a policy vindictive?, socially divisive?).

References

[1]
W. B. Clapham Jr., R. F. Pestel, and H. Arnaszus. 1979. On the scenario approach to simulation modeling for complex policy assessment and design. Policy Sci. 11 (1979). DOI:
[2]
Paul Cairney. 2021. The Politics of Policy Analysis. Palgrave Macmillan.
[3]
Beatrice de Graaf and Daan Weggemans. 2019. Reintegrating Jihadist Extremist Detainees: Helping Extremist Offenders Back into Society. Routledge.
[4]
Sheldon Ekland-Olson, David A. Snow, and Louis A. Zurcher. 1980. Social networks and social movements: A microstructural approach to differential recruitment. Amer. Sociol. Rev. 45, Article 1 (1980). DOI:
[5]
William N. Dunn. 2017. Public Policy Analysis: An Integrated Approach (6th ed.). Routledge.
[6]
Lia Aodha and Bruce Edmonds. 2017. Some pitfalls to beware when applying models to issues of policy relevance. In Simulating Social Complexity—A Handbook (2nd ed.), Bruce Edmonds and Ruth Meyer (Ed.). Springer. DOI:
[7]
Maria Ruiz, Noemi Zabaleta, and Unai Elorza. 2016. Decision making through simulation in public policy management field. In Proceedings of the 10th International Technology, Education and Development Conference (INTED’16). IATED. DOI:
[8]
Dimosthenis Kyriazis et al. 2020. PolicyCLOUD: Analytics as a service facilitating efficient data-driven public policy management. In Proceedings of the Conference on Artificial Intelligence Applications and Innovations (AIAI’20), IFIP Advances in Information and Communication Technology, Ilias Maglogiannis et al. (Ed.). Vol. 583. Springer. DOI:
[9]
Eric Patashnik and Eugene Bardach. 2020. A Practical Guide for Policy Analysis (6th ed.). Sage, New York, NY.
[10]
Alexey Voinov, Firouzeh Taghikhah, and Tatiana Filatova. 2021. Where does theory have it right? A comparison of theory-driven and empirical agent-based models. J. Artific. Societ. Soc. Simul. 24, Article 4 (2021). DOI:
[11]
Marijn Janssen and Natalie Helbig. 2018. Innovating and changing the policy-cycle: Policy-makers be prepared! Government Information Quarterly 35 (2018). DOI:
[12]
Aron Larsson and Osama Ibrahim. 2015. Modeling for policy formulation: Causal mapping, scenario generation, and decision evaluation. In Electronic Participation. ePart 2015. Springer, Lecture Notes in Computer Science, Vol. 9249. DOI:
[13]
Robin Jacob. 2016. Using Aggregate Administrative Data in Social Policy Research. Technical Report. Office of Planning, Research and Evaluation, Administration for Children and Families, U.S. Department of Health and Human Services, Washington, DC.
[14]
Witold Kula. 1986. Measures and Men. Princeton University Press.
[15]
Nikitas M. Sgouros and Dimosthenis Kyriazis. 2021. Creating web-based, meta-simulation environments for social dynamics in an interactive framework for public policy analysis and design. In Proceedings of the 25th IEEE/ACM International Symposium on Distributed Simulation and Real Time Applications (DS-RT’21). IEEE.
[16]
Lasse Lindekilde. Radicalization, de-radicalization, and counter-radicalization. In Routledge Handbook of Critical Terrorism Studies, Richard Jackson (Ed.). Routledge. DOI:
[17]
Yannis Charalabidis, George Gionis, Enrico Ferro, and Euripidis Loukis. 2010. Towards a systematic exploitation of web 2.0 and simulation modeling tools in public policy process. In Proceedings of the International Conference on Electronic Participation. Springer. Retrieved from https://link.springer.com/content/pdf/10.1007/978-3-642-15158-3_1.pdf.
[18]
Charles F. Manski. 2013. Public Policy in an Uncertain World: Analysis and Decisions. Harvard University Press.
[19]
Carlo Martini. 2014. Seeking consensus in the social sciences. In Experts and Consensus in Social Science, Carlo Martini and Marcel Boumans (Ed.). Springer. DOI:
[20]
Sameera Abar, Georgios K. Theodoropoulos, Pierre Lemarinierc, and Gregory M. P. O’Hare. 2017. Agent-based modelling and simulation tools: A review of the state-of-art software. Comput. Sci. Rev. 24 (2017). DOI:
[21]
Meike Will, Jürgen Groeneveld, Karin Frank, and Birgit Müller. 2020. Combining social network analysis and agent-based modelling to explore dynamics of human interaction: A review. Socio-Environ. Syst. Model. 2 (2020), 50. DOI:
[22]
Alex Schwartz and Rachel Meltzer. 2019. Policy Analysis as Problem Solving. Routledge.
[23]
Steven F. Railsback and Volker Grimm. 2019. Agent-based and Individual-based Modeling: A Practical Introduction (2nd ed.). Princeton University Press.
[24]
Helen Ingram and Anne L. Schneider. Making distinctions: The social construction of target populations. In Handbook of Critical Policy Studies (2nd ed.), Anna Durnová Michael Orsini Frank Fischer, Douglas Torgerson (Ed.). Edward Elgar Publishing. DOI:
[25]
Deborah Stone. 2012. Policy Paradox: The Art of Political Decision Making (3rd ed.). W. W. Norton.
[26]
Bhakti Stephan Onggo, Levent Yilmaz, Franziska Klügl, and Takao Terano. 2019. Credible agent-based simulation—An illusion or only a step away?. In Proceedings of the Winter Simulation Conference (WSC’19). ACM. DOI:
[27]
John G. Horgan and Tore Bjørgo (Eds). 2009. Leaving Terrorism Behind: Intellectual and Collective Disengagement. Routledge.
[28]
Tinka M. Veldhuis. 2016. Prisoner Radicalisation and Terrorism Detention Policy. Institutionalized Fear or Evidence-based Policy Making?Routledge.
[29]
Lisa Slattery Walker. 2015. Social influence. In The Blackwell Encyclopedia of Sociology. Wiley. Retrieved from https://onlinelibrary.wiley.com/doi/10.1002/9781405165518.wbeoss154.pub2.
[30]
Mark Warr. 2002. Companions in Crime: The Social Aspects of Criminal Conduct. Cambridge University Press.
[31]
Aaron Wildavsky. 1980. The Art and Craft of Policy Analysis. Macmillan, London.
[32]
Nigel Gilbert, Petra Ahrweiler, Pete Barbrook-Johnson, Kavin Preethi Narasimhan, and Helen Wilkinson. 2018. Comptational modelling of public policy: Reflections on practice. J. Artific. Societ. Soc. Simul. 21 (2018). DOI:
[33]
Jo-An Atkinson, Andrew Page, Robert Wells, Andrew Milat, and Andrew Wilson. 2015. A modelling tool for policy analysis to support the design of efficient and effective policy responses for complex public health problems. Implement. Sci. 10 (2015). DOI:
[34]
Moira L. Zellner. 2008. Embracing complexity and uncertainty: The potential of agent-based modeling for environmental planning and policy. Plan. Theory Pract. 9, Article 4 (2008). DOI:

Cited By

View all
  • (2023)Embedding Social Simulation in the Design of Wine Pricing PoliciesAdvances in Social Simulation10.1007/978-3-031-34920-1_32(397-406)Online publication date: 30-Sep-2023

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Digital Government: Research and Practice
Digital Government: Research and Practice  Volume 3, Issue 4
October 2022
116 pages
EISSN:2639-0175
DOI:10.1145/3572827
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 December 2022
Online AM: 13 October 2022
Accepted: 02 October 2022
Revised: 28 July 2022
Received: 30 September 2021
Published in DGOV Volume 3, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Public policy design and analysis
  2. meta-simulation environments

Qualifiers

  • Technical-note
  • Refereed

Funding Sources

  • European Union’s
  • PolicyCLOUD

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)555
  • Downloads (Last 6 weeks)47
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Embedding Social Simulation in the Design of Wine Pricing PoliciesAdvances in Social Simulation10.1007/978-3-031-34920-1_32(397-406)Online publication date: 30-Sep-2023

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Login options

Full Access

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media