Keywords

1 Introduction

Michelangelo di Lodovico Buonarroti Simoni told that there is a statue in every stone and all that is needed is to be able to remove all unnecessary and to take the statue to light (Figs. 1 and 2). Statues differ from each other in appearance. Looking at a statue, we see the final result of the sculptor’s work and speaking in technical language, we see the final objective function of the process of removing unnecessary elements (“small parts of the stone”) from the original space (“stone”). Knowing the objective function, we can start to search for such extra elements from the initial space in order to obtain the desired result in the remainder.

Fig. 1
figure 1

Michelangelo took the marble stone, removed all unnecessary, and got the statue of David

Fig. 2
figure 2

Marble statues of the sculptor Bonazza located in the city of Peterhof

We draw the following analogies: “stone”—initial space from which we will remove the extra elements; “statue” is the best of the found solutions satisfying the given objective function; “sculptor” is a search agent that on the basis of knowledge and experience removes unnecessary elements from the initial space in order to obtain in the remainder a solution that satisfies the specified objective function. So, based on Michelangelo’s statement in the proposed method “Seeding programming,” we search for such a sequence of elements to remove from the original space (“stone”), which will lead to the formation of a set of remaining undeleted elements with the desired objective function. Initial elements of the search space can either be specified, or they can be searched using special covering algorithms. To search for the sequence of elements to remove from the search space, we suggest to use search agents.

2 Stages of Solving Problems Using Seeding Programming

Stage 1: Create objectives tree for solving optimization problem, define optimization parameters, define functions of estimating various optimization parameters, and form general target function and stopping criterion.

A concept of the “objectives tree” was introduced by Churchman and Ackoff in 1957. An objectives tree is a structure, constructed on the hierarchy principle (distributed into levels, ranged) assembly of project objectives, in which the following ones are emphasized: the general objective (“tree root”) and the subgoals of the first, second, and consequent levels subject to it (“tree branches”). In Fig. 3, a generalized objectives tree is shown. In leaf nodes of the tree, simple tasks are formed. Often the simple tasks are the requirements on achieving the specified thresholds of optimization parameters.

Fig. 3
figure 3

Objectives tree

Stage 2: Select a suitable initial space (“stone”), removing elements from which we will look for the solution we need. It is necessary to mark that the smaller initial space contains less excess elements, so the less work required to remove them. At the same time, the initial space with a large number of elements potentially can be a greater number of better solutions compared to a space containing fewer elements. It is necessary to note the importance of suitable initial space selection. For example, if we choose the initial space that is too small, then we cannot find a solution that satisfies us, and vice versa, if we select too big initial space, then we will search for satisfying us solution for a very long time. We assume that elements of the initial space are either specified or their search is performed with special covering algorithms.

One of the interesting approaches to search the initial space is a knowledge-based multi-agent method for finding the sequence of adding elements in order to form a suitable initial space that contains the solution we need (ideally the initial space from which nothing needs to be removed). In this case, each agent adds elements to the start space on the basis of it rules of moving and general knowledge of the problem until it forms a set of elements which contains required solution after we can run seeding programming method to remove unnecessary elements (Fig. 4). For example, in paper [1] joint use of strategies for sequentially add elements to search space and sequentially remove elements from initial space are considered.

Fig. 4
figure 4

Illustration of sequentially addition of elements to the start space

Stage 3: Create a shared global memory of agents (SGMA) for storing the agents’ knowledge and experience about travelled routes (e.g., in [1] as SGMA is proposed to use shared global memory of the stored pheromone). Create an empty set of best solutions ΩBEST. Determine the maximum number of solutions bK that will be stored in ΩBEST.

Stage 4: Define agents that will be used to search unnecessary elements in initial space. Set for each agent parameters of its operation, objective function, and lower bound estimate KMIN of the objective function.

Stage 5: Perform the following steps for each agent:

  1. 5.1.

    Using the movement rules of the agent and the SGMA, form the route MT (array of elements) of agent moving on initial space elements,

  2. 5.2.

    Flip MT array left to right,

  3. 5.3.

    In a loop for each element \(T_{\text{O}} \in M_{\text{T}}\) perform these steps: (a) temporarily exclude TO from MT; (b) compute the confidence factor KD of meeting the requirements of the objective function; (c) if in absence of TO, the condition KD < KMIN is satisfied then put TO back to MT into its place,

  4. 5.4.

    Using remaining elements in MT, compute the confidence factor KDALL of meeting the requirements of the overall objective function. If KDALL> 0, then using some information about the remaining elements in MT update SGMA.

Stage 6. If the stopping criterion is not met and if it is necessary, then update SGMA (e.g., in paper [1] shared global memory of the stored pheromone is updated using the following rule: Δτij(t + 1) = (1 − p* τij(t) + Δτij(t) [2]), reduce initial solution search space, and move to the stage 4. Otherwise return the best solution from ΩBEST.

3 Seeding Programming Implementation for Synthesis of a Given Category Nodes Placement into Geospace Question–Answering Sensor Network Structure

New space technologies (nanosatellites, CubeSats, SmallSats, etc.), private space companies and the projects for launching thousands of small satellites to organize space networks with different purposes give principally new opportunities to monitor geospheres. We should note the increasing number of separate monitoring systems applying the data obtained from the geospace. The term “geospace” is understood as the region of space that goes from the solar photosphere to the atmosphere of Earth. It includes the solar photosphere, chromosphere and corona, the solar wind, Earth’s magnetosheath, magnetosphere, thermosphere, ionosphere, and atmosphere.

In this paper on the basis of the personal results obtained before in the area of sensor networks construction [1, 3,4,5,6], semantic analysis, and question–answering systems [7,8,9], we introduce a new notion of “geospace question–answering sensor networks” (GQASN) that means a distributed network which monitors ambient environment parameters applying the data from geospace and allowing nodes to answer defined types of natural language questions as well.

In the work, we use a model of the GQASN structure (Fig. 5), where on the functional level the following types of GQASN nodes can be defined: (1) functional nodes (F-nodes) that collect information in some neighborhood of their location; (2) transit nodes (T-nodes) that manage routing and retransmit the information collected by F-nodes to the information collection centers (ICC) to be utilized further; (3) ICCs that manage the GQASN and process information collected by the GQASN. In general case, there can be multiple ICCs in the GQASN, and the information that has arrived into each of them is available to one or multiple users for making decisions and performing certain actions. It means that information received by F-nodes should be retransmitted, with a required degree of reliability, to several ICCs by means of transit nodes allocated within the given object in a certain way. We think that ICC is capable of performing F-node and T-node functions. F-node can perform the T-node functions and information between nodes can be transmitted both via the wire and wireless networks.

Fig. 5
figure 5

Example of a distributed fault-tolerant GQASN structure

Designing of the GQASN requires the solution of many complicated problems referring to different areas of research; they are: projecting of network nodes (measurement stations, sensors, etc.); construction of different physical–mathematical models of monitoring processes of ambient environment parameters applying the geospace data; model selection for information collection from the GQASN; development of methods and algorithms for the GQASN structure synthesis; estimate of measurement error and limitations, estimate of spatial and other limitations of network node placement; ensuring of the defined functional and structural parameters of the synthesized GQASN; development of fitness functions of network nodes placement; development of algorithms for question–answering agents placement into the GQASN structure; development of self-organization algorithms for different GQASN levels (e.g., the function level performed by the nodes, routing level, level of tasks distribution between nodes and question–answering agents).

Two types of GQASN structures can be distinguished:

  • distributed fixed network in which all the GQASN nodes are not moved after the initial placement;

  • decentralized mobile self-organizing network compound of fixed nodes (distributed fixed network segment) and mobile units (mobile network segment) which can be moved in different directions and, as a consequence, form different network structures in dynamics by break and establish network connections with other nodes, removal and installation of new nodes into the network structure. Mobile units can be installed both on satellites and on mobile robots (drones, above-water and under-water vehicles). Some functions of the mobile units are: formation of a self-organizing GQASN structure; geographically distributed acquisition of data from the GQASN nodes; organization of the interaction of the GQASN mobile network segment with a fixed one. When applying the mobile robots, the following is possible: accurate nodes placement, distribution nodes over territory; moving, removing, reprogramming of nodes; charging and replacement of the GQASN nodes power sources; planning of cooperative behavior of mobile robots in the process of general aim solution and the GQASN nodes replacement based on the aims and current measurements of the whole GQASN.

Possible ways of problem statement for the GQASN structure synthesis

  1. 1.

    Synthesis of ICCs allocation. In this task, we know the spatial restrictions for allocating the ICCs. Also, we know the allocation of pre-installed ICCs. It is necessary to allocate ICCs in such way that the designed GQASN structure would have the “desired properties” assigned by a designer. During the synthesis of ICCs allocation, it is possible to optimize (by their removal or moving) some pre-installed ICCs noted by the designer.

  2. 2.

    Synthesis of F-nodes allocation. We know the spatial restrictions for allocating the F-nodes. Also, we know the allocation of ICCs and allocation of pre-installed F-nodes. It is necessary to allocate new F-nodes in such way that the designed GQASN structure would have the “desired properties” assigned by a designer. During the synthesis of F-nodes allocation, it is possible to optimize (by their removal or moving) some pre-installed F-nodes noted by the designer.

  3. 3.

    Synthesis of T-nodes allocation. We know the description of the GQASN allocation object, spatial restrictions for allocating the T-nodes. Also, we know the allocation of F-nodes, ICCs, and pre-installed T-nodes. It is necessary to allocate T-nodes in such way that the designed GQASN structure would have the “desired properties” assigned by a designer. During the synthesis of T-nodes allocation, it is possible to optimize (by their removal or moving) some pre-installed T-nodes noted by the designer.

  4. 4.

    Complex sequential synthesis of ICCs, F-nodes, and T-nodes allocation. This statement suggests a sequential allocation of ICCs first (statement 1), then F-nodes (statement 2), and then T-nodes (statement 3).

It should be noted that the search space for synthesized solutions of concrete GQASN structure is very large and there are complex constraints in the objective function, and many of the solvable problems are NP-complete and to search for exact and approximate solutions of these problems, various algorithms of artificial intelligence [1, 10,11,12,13], linear and integer programming [14,15,16] are currently used and distributed calculations are performed.

Figure 6 illustrates a functional scheme of a given category nodes placement into the GQASN structure. This scheme can be used as the basis for synthesis of ICC, F-nodes, and T-nodes placement.

Fig. 6
figure 6

Functional scheme of a given category nodes placement into GQASN structure

The question–answer agent (QA-agent) performs the function of generating the answer from natural language questions by collection, aggregation, and accumulation information from some F-nodes that are serviced by this QA-agent. After the accumulation of sufficient information from the group of F-nodes, the QA-agent generates an answer. The QA-agents can interact with each other to be able to answer the given types of questions under the established limitations. Physically, the QA-agent is a software/hardware add-on that can upgrade any type of GQASN nodes. The QA-agents can differ from each other by technical capabilities (due to various hardware and software add-ons) and functionality capabilities (the ability to answer different types of questions, performed functions, etc.).

In general, formulated in the natural language question Q enters to the input of one of the QA-agents that perform the functions of task coordinator for other QA-agents. After it the question Q enters to the input of the semantic analyzer module, which create ontological-semantic graph G(Q). The graph G(Q) enters to the input of the module for selection of QA-agents, which are best suited for generating the answer to question Q. The information about selected QA-agents is placed into a set FQA= {FQA1, FQA2, FQA3, …, FQAk}. The set FQA enters to the input of generating requests for QA-agents module. As a result, for each QA-agent FQAi ∈ FQA, this module forms a request qi. Each qi request is transmitted to the QA-agent FQAi, which first tries to find the necessary information in the local database and if it is not found FQAi select serviced F-nodes from which the necessary information should be collected. The information of selected at this stage F-nodes is placed into the set F = {F1, F2, F3, …, Fn}. Further, the task formation module generates a task tj for each F-node FjF. Each F-node FjF that receives the task tj executes it (using information stored on this F-node or receive it from the environment with the help of a sensor installed on the F-node) and sends the response rj back to the QA-agent which generated the task tj. On the basis of all the responses r1, r2, r3, …, rn obtained from F-nodes F1, F2, F3, …, Fn QA-agent FQAi generates ai answer and sends it back to the task assignment coordinator. Thus, the task assignment coordinator receives all answers from QA-agents and on the basis of them makes up a general answer A, which is transmitted to the user as an answer to the question Q (Fig. 7).

Fig. 7
figure 7

Scheme for generating the answer using the GQASN question–answer agents

In recent years, the research area of Natural Computing is rapidly developing. It unites mathematical methods in which the principles of natural mechanisms of decision making are embedded [2]. Scientists have developed bio-inspired algorithms (BA) of modeling animals’ behavior ([2, 10,11,12,13], etc.]) for solving various optimization problems that either do not have exact solution or the solutions’ search space varies large and complex constraints of the objective function are presented, as well as NP-complete.

The described recommendations on applying BA and the proof in [17] that even the constrained variant of the problem of minimal coverage on plane is NP-complete allow us to conclude about the possibility to apply bio-inspired algorithms for the GSASN structure design.

Bio-inspired algorithms can be seen as multi-agent systems, each agent in which operates autonomously on very simple rules. The most frequently used bio-inspired agents (B-agents) include: ants, bees, termites, fireflies, birds, fish, bats, cats, and wolves.

The initial data of the algorithm for synthesis of a given category nodes typex placement are the following: allocation of pre-installed nodes of typex (set of nodes Ωpin); allocation of installed nodes of type ≠ typex; description of the object that the GQASN needs to be located at (its dimensions, scheme, spatial requirements for nodes allocation and etc.); characteristics of ready-to-use nodes of typex; adopted self-organization and routing algorithms; information collection model; functional requirements; optimization parameters; fuzzy expert systems, etc.

The algorithm below is based on the adaptation of the multi-agent bio-inspired algorithm for wireless sensor network design proposed in paper [1].

Step 1:

Create objectives tree for solving optimization problem. Define a set MALL of all optimization parameters; the functions for calculating the parameters of MALL; a subset of optimization parameters M1MALL. Determine the membership functions of fuzzy sets that characterize the optimization parameters of the MALL; fuzzy expert system to derive the confidence factor to meet the functional requirements of the designer. Create an empty set of the best solutions ΩBEST. Determine the maximum number of solutions bK that will be stored in ΩBEST.

Step 2:

Create a set Ωp of the possible placement points of type typex nodes (the set Ωp can be formed with the help of: the algorithms for covering the object of placement with a mesh (based on an equilateral triangle or hexagon or square) or with circles with a given radius; covering algorithms in accordance with the choice and recommendations of the designer; other covering algorithms). Create an empty set ΩT. Create node of type typex in each point of Ωp and add this node to ΩT set.

Step 3:

Create a shared global memory of the stored pheromone (SGMSP) to share some “knowledge” between B-agents. The pheromone is stored on the edges of a fully connected undirected weighted graph (FCUWG), the nodes of which are the ones of typex. To store the edges of the graph in computer memory, it is required to create a two-dimensional array feromoneNetwork with N(N − 1)/2 memory cells of type float, where N = |ΩT| is the number of nodes. All values of feromoneNetwork must be initialized as zeros.

Step 4:

Define agents that will be used.

Step 5:

Execute bio-inspired multi-agent algorithms.

  1. 5.1.

    Create a two-dimensional array feromoneDif to store changes in the pheromone using, for example, the following Java code:

  • float feromoneDif [ ] [ ] = new float[N-1] [ ];

  • for(int i = 0; i < N; i++)

  • feromoneDif [i] = new float[N - (i+1)];

All values of feromoneDif must be initialized as zeros (in the above code, the zero initialization is done automatically). Define the number of different bio-inspired agents m, the strategy for choosing the initial location of the agent, and other parameters needed for the agent to perform the work.

  1. 5.2.

    For each agent, perform the following steps (the code can be parallelized, i.e., to run in a separate thread for each agent):

    1. 5.2.1

      Form, using the movement rules of the B-agent, SGMSP the route MT (array) of agent moving on nodes ΩT.

    2. 5.2.2.

      Create an empty extensible array of nodes MSTR, in which the nodes of the designed structure will be placed.

    3. 5.2.3.

      Select the design strategy:

      1. (a)

        sequentially add nodes to the network -> Go to step 5.2.4;

      2. (b)

        sequentially remove nodes from the network -> Add to MSTR all nodes from MT array in the same sequence order. Go to step 5.2.11.

    4. 5.2.4.

      Create an empty set HP, which will contain the caches of such internal parameters of the functions of computing estimates M1, which will increase the speed of computing estimates M1 for the next iteration. Create a variable i to store the index of the current node from the MT array and initialize its value to 0 (i = 0). Set the node TC (TC = MT[0]) as the current one.

    5. 5.2.5.

      Add to MSTR the node TC. Form the network structure SS of nodes MSTR.

    6. 5.2.6.

      Calculate using the caches HP the values estimations of the optimization parameters of the set M1 having structure SS. Clear HP. Save the caches of the internal parameters of the functions of computing estimates M1 of the current iteration to the set HP.

    7. 5.2.7.

      Using a fuzzy expert system, calculate the reliability coefficient KD1 of meeting the requirements of the designer for parameters of a set M1 of structure SS.

    8. 5.2.8.

      If KD1 > p1, where p1 is a set threshold, go to step 5.2.11.

    9. 5.2.9.

      If i < |MT|, put i = i + 1 and accept the next node TC = MT[i] as the current one. Repeat steps 5.2.5.–5.2.9. while i does not become equal to |MT|.

    10. 5.2.10.

      Exit with notification of the failure from the function of agent design of the network structure.

    11. 5.2.11.

      Steps of eliminating optimization:

      1. 5.2.11.1.

        Select the strategy of eliminating optimization:

      2. (a)

        step-by-step optimization with consideration of optimization parameters M1. The fuzzy expert estimation of the structural parameters M1 is used;

      3. (b)

        step-by-step optimization with consideration of all optimization options MALL. The unit of simulation modeling and complex assessment of the network is used;

      4. 5.2.11.2.

        Revert the MSTR array,

      5. 5.2.11.3.

        In a loop, temporarily exclude each node TOMSTR from MSTR, then compute the confidence factor KD of meeting the requirements of the eliminating optimization strategy parameters. If in absence of node TO evaluation of network structure stops meeting the designer requirements, put TO back to MSTR into its place.

      6. 5.2.11.4

        Revert the MSTR array,

    12. 5.2.12.

      Perform simulation modeling of the network. The results of the modeling and structural-parametric estimates of the various parameters are the input to the complex expert system for evaluation of network structure. Calculate with the latter the confidence factor KDALL of meeting all the designer requirements.

    13. 5.2.13.

      If KDALL > 0 then, in accordance with one of the following strategies, increase the pheromone amount in the array feromoneDif:

      1. (a)

        consequent update—increase the amount of pheromone on the edges of the agent sequential traveling on nodes of MSTR by the value equal to Δτij,k(t) = Qagent * KDALL, where Qagent is the amount of pheromone secreted by the agent on one edge;

      2. (b)

        full-mesh update—increase the amount of pheromone on all edges of the fully connected graph constructed on the basis of nodes of MSTR by the value equal to Δτij,k(t) = Qagent * KDALL.

    14. 5.2.14.

      If KDALL is greater than the estimate of the worst solution from ΩBEST, or (|ΩBEST| < bK and KDALL > 0), then add into ΩBEST the current solution. By the solution, we mean the couple (MSTR, KDALL). If |ΩBEST| ≥ bK, then leave in ΩBEST only bK best solutions.

  2. 5.3.

    After all agents have performed step 5.2, update SGMSP (feromoneNetwork array) in accordance with the following well-known rule [2]: Δτij(t + 1) = (1 − p) * τij(t) + Δτij(t), where Δτij(t) is the amount of pheromone on edge (i, j) in the array of pheromone changes feromoneDif, and p ∈ [0, 1] is the coefficient of pheromone evaporation. To enhance the intermediate best solutions, the amount of pheromone on the edges of the routes of the best solutions ΩBEST should be increased (an example is using “elite” ants).

  3. 5.4

    If the stopping criterion is not met, go to step 5.1.

Step 6:

If it is necessary to continue the search, then create new set ΩT and add to it type typex nodes located in points of possible nodes placement (e.g., to cover the object of nodes placement with a mesh more densely in comparison with the previous coverage) and move to Step 3. Otherwise return the best solution from ΩBEST.

4 Conclusion

Seeding programming is a new method for solving various optimization problems that either do not have exact solution or the solution search space is very large and complex constraints of the objective function are present, as well as NP-complete.

One possible implementation of the algorithm that implements the seeding programming method is given in this paper for synthesis of a given category nodes placement into the GQASN structure.