<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Constructive-Synthesizing Modelling of Multifractals Based on Multiconstructors</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Viktor Shynkarenko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Robert Chyhir</string-name>
          <email>robertchigir@ukr.net</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Ukrainian State University of Science and Technologies</institution>
          ,
          <addr-line>Lazaryana str. 2, Dnipro, 49010</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The concept of constructive-synthesising modelling is presented. The basic principles are determined. The classification of constructors by the purpose of constructing and external relations is presented. The types of constructors are defined: generating, transforming, analysing, optimising/adapting, algorithmic; autonomous, parametric, interactive, multiconstructors. Achievements in the application of the constructive-synthesising approach to solving a variety of problems are presented. The instrumental software "Constructor 1.1" has been developed. Simultaneously with the demonstration of the capabilities of the developed software environment, the formation of flat geometric multifractals is demonstrated. The formation of a multifractal is performed by realization a multiconstructor, which consists of a number of autonomous generating, parametric transforming and algorithmic constructors. The features of the deployment of transformations in the formation of constructors are shown: specialization, interpretation and concretization. The specialization of constructors determines the subject area of construction, necessary data and operations. To ensure the functioning of the constructive processes, all constructor operations must be interpreted by the corresponding procedures of the algorithmic constructor. The combination of the constructor (model of data and possible operations) with the algorithmic constructor (model of the executor) forms a constructive system capable of autonomous constructor by an internal executor. Substitution rules and initial conditions are setting in concretization. The developed software provides a certain flexibility in terms of possible modifications and the formation of new constructors and processes. This toolkit can be used as a basis for modelling various constructions and construction processes, especially in the tasks of their optimisation and structural adaptation.</p>
      </abstract>
      <kwd-group>
        <kwd>1 Constructive-synthesizing modeling</kwd>
        <kwd>software</kwd>
        <kwd>constructor</kwd>
        <kwd>algorithm</kwd>
        <kwd>formal grammar</kwd>
        <kwd>formalization</kwd>
        <kwd>fractal</kwd>
        <kwd>information technology</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Consider the constructive paradigm of human perception of the world and the corresponding
approach to programming.</p>
      <p>The main principles of the constructive paradigm:
•
•
•
•
•
•
the world is perceived as a set of constructions and constructive processes;
constructions consist of some elements and other constructions;
constructive process consists of elementary actions (discrete or continuous, deterministic or
stochastic, etc.) and other processes;
elements, constructions, intermediate forms of construction are interconnected by some
relations of linkage;
elements of constructions, intermediate forms of construction, constructions, relations and
operations - each has its own set of certain attributes;
the triad relation → operation → relation is used in the formation of constructions.</p>
      <p>The last statement requires some explanation. For example, in algebra of integers with a given
addition operation, the entry «3+4» is perceived as a relation: you need to add 3 and 4, and the
result of the addition operation is 7. In other words, we have a relation → operation: we need «to
add» and «addition».</p>
      <p>In the constructive paradigm: we have a relation «a screw can be screwed into a certain hole»
(some of their attributes must match: the size of the hole and the bolt, the threading, the threading
pitch). This relationship is the basis of the operation of screwing - a screw into a hole. As a result of
the operation, a new screw to hole relationship is established. The relation between the hole and the
screw has changed according to the triad of related relations and operations: can be screwed →
screwing operation → screwed. As a result of the operation, all arguments (elements) with the new
relationship remain.</p>
      <p>
        The paradigm of constructive-synthesising modelling emerged as a result of an unsuccessful
attempt to generalise the known tools of formal grammars. As it has been revealed, there are a large
number of grammars’ modifications [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ], such as multi-character [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], programmatic, stochastic [
        <xref ref-type="bibr" rid="ref4 ref5">4,
5</xref>
        ], weighted, index [6], matrix [7], various graphical [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and grammar-like L-systems [8], R-systems
[9], etc.
      </p>
      <p>The main advantages of the proposed approach:
it is possible to link structures with constructive processes by using the same model;
optimise or adapt the structure of the construction and processes (components, their location,
connections);
model constructions that are difficult or even impossible to obtain by other methods;
perform construction comparisons;
to model, analyse and predict constructive processes.</p>
      <p>The paper considers the functionality of the software "Constructor 1.1" developed by the authors
for automating the development of constructive-synthesising models and their use</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related works</title>
      <p>A number of studies have been conducted using constructive-synthesising modelling, which
demonstrate the productivity and effectiveness of this approach. There are some of them.</p>
      <p>New possibilities for the formation of geometric fractals have been identified [10]. Namely, the
formation of fractals from heterogeneous elements; combining different, including classical, fractals
in multifractals. The possibilities of forming fractals have been expanded by eliminating the
restrictions required by other approaches: the elements of the fractal formation must be represented
by essentially non-intersecting sets; only compressive mappings are used. The new capabilities
allow for new research and development in various fields such as theoretical physics or computer
graphics.</p>
      <p>The structural adaptation of algorithms and the data compression process is formalised by a set
of three constructors [11]: a dual constructor of the compression algorithm (compression and
decompression), a converter of the constructed algorithm into a constructive compression process,
and the constructor-adapter. The constructors are implemented in the appropriate software, and its
functional efficiency in compressing various data banks has been established. This made it possible
to significantly increase the speed and efficiency of processing large amounts of information.</p>
      <p>The developed constructive-synthesising model of natural language [12] allows: to consider
language as a constructive process that can be used as a basis for creating a methodology for
building systems with a high degree of intelligence; to improve the processes of semantic analysis,
in particular, in the tasks of comparing and identifying the relevant semantic content in texts, thus
significantly reducing the influence of synonyms, homonyms, periphrases and translation. The
results of the constructor can be used to solve problems of developing intelligent systems for
processing natural language texts.</p>
      <p>Modelling crystal lattices for researching existing materials and modelling new materials,
studying crystallisation processes. To model crystal lattices, constructive-synthesising modelling is
used [13]. The constructors consider the attributes of the elemental base, which allows them to
naturally build fractal spatial graphs according to the rules of substitution. Crystal lattices are
viewed as special cases of fractal spatial graphs. This approach facilitates the creation of new
materials with unique properties and allows for a different perspective on existing crystal shapes in
the study and teaching of crystals.</p>
      <p>The usage of constructive-synthesising modelling in the formation of lightning discharges based
on the constructive-synthesising approach allows obtaining a realistic description of lightning
frontal activity [14]. This approach can be the basis for solving the dynamic problem of lightning
protection of engineering structures and civilian facilities, as well as developing a strategy for the
behaviour of aircraft to minimise the risks of lightning strikes when moving in a thunderstorm
front. This helps to improve flight safety and reduce risks during thunderstorm activity based on
forecasting and analysing the activity of atmospheric masses during previous periods of activity.</p>
      <p>The use of constructive-synthesising modelling tools has made it possible to formalise the
processes and results of structure design at a logical level [15]. The constructor realization
represents models of logically related specific data elements. A constructor model for representing
and adapting data in RAM according to a logical model has also been developed.</p>
      <p>Special software was developed to solve each of these and many other construction and
modelling tasks (coding and debugging programs, hierarchy analysis, detecting borrowings in texts,
determining the author's style and author of a text, fractal time series, university class schedules,
and forming railway transport ontologies). The objective of this work is to simplify constructive
modelling by developing a universal software. This software aims to combine various aspects of
modelling and constructing, providing an integrated solution for a wide range of tasks.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Types of constructors</title>
      <p>
        All constructors are formed on the basis of the generalised constructor, the theoretical
foundations of which are laid down in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] (where the outdated term for a constructor was used
formal structure).
      </p>
      <p>A generalised constructor (abstract) is defined as:</p>
      <p>= , Σ, Λ , (1)
where  is renewable heterogeneous carrier, Σ is signature of relations and related operations,
Λ is information support for construction: purpose, conditions for starting and completing
construction, substitution rules and restrictions....</p>
      <p>The formation of real constructors is carried out by refining transformations of the generalised:
concretization, specialization, interpretation and realization. Specialization defines the scope of use,
its features, construction elements with attributes, and constraints. Interpretation matches all
operations with algorithms for their execution, which can be performed by some internal
performers. In the concretization, the rules for substitution and operations on attributes and initial
values are set. The realization forms the resulting view of the constructor in a certain specified
form. At the realization stage, the internal executor forms the constructor structures or performs
constructive processes according to the specified rules and restrictions.</p>
      <p>According to the purpose of use, constructors are divided into:
1. generating, which, according to the given rules, perform the formation of
construction/constructive processes (one or more) within a certain described subject area;
2. transforming, which, based on one construction (its model), form another. For example, a
program in processor codes into a constructive process of its execution;
3. analysing, which analyse constructors based on certain rules using specified methods. For
example, to check whether the constructor can be formed according to the existing rules;
4. optimising/adapting, which are capable of changing the construction of a constructor or the
constructive process (components, their order and connections);
5. algorithmic - in combination with other constructors, they create a constructive system: a
model of elements, intermediate forms and possible operations on them is combined with a
model of an internal performer who can perform all operations.</p>
      <p>Constructors are distinguished by their external connections:
6. autonomous, which have all the necessary information to achieve the goal and do not
require external information;
7. parametric, which are provided with external data before starting work through the
parameter mechanism;
8. interactive, which have operations of obtaining data from the outside: from external media,
including cloud, from the user, from external information collection devices;
9. multiconstructors that consist of several combined constructors based on the sequence of
their realization. The constituent constructors are specified in advance for further combination
in a multiconstructor.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Functionality of «Constructor 1.1»</title>
      <p>The «Constructor 1.1" software was developed using Python with the usege of Qt technology to
ensure cross-platform compatibility.</p>
      <p>Demonstrate its functionality by modelling the plane fractal "Sierpinski Triangles" with the
linear fractals "Koch's Snowflake" and "Sierpinski Curve" in the middle of the triangles.</p>
      <p>To the list of constructors (Figure 1), add the constructors (Figure 2) one by one. Each of them
inherits all the properties of the generic constructor.</p>
      <p>The button menu on the form of Figure 1 contains the following buttons from top to bottom:
add new, delete, duplicate, edit, refine transformations, realize constructor, display the
multiconstructor diagram, and exit the program.</p>
      <p>Add the first constructor.</p>
      <p>When confirmed on the form of Figure 2, the autonomous constructor for generating the plane
fractal "Sierpinski Triangle" is added to the list of constructors according to the form of Figure 1.</p>
      <p>From the form in Figure 1, we proceed to the refinement transformations of this constructor
(Figure 3).</p>
      <p>In specialization, we define the main elements responsible for the preservation of triangles and
set the purpose of each of them (Figure 4, Figure 5). Without specialization, interpretation, and
concretization, realization is not available (impossible), but they can be specified in any sequence
and a change in one may lead to a change in the other. Specialization identifies data with their types
(Figure 4) and operations with a list of formal parameters (Figure 5).</p>
      <p>In interpretation, we add the appropriate algorithmic constructor.</p>
      <p>Define the basic algorithms in the algorithmic constructor "Triangular", the constructor is added
to the list as in Figure 1. In specialization (Figure 6) is to provide well-established procedures that
can perform all the operations of constructing a given plane fractal. Preparation and debugging of
these procedures is performed separately from this program in the Python environment.</p>
      <p>This constructor is combined with a autonomous constructor and can be used not only in one
constructor, since it performs the function of grouping algorithmic processes by a specific subject
area. Changing the algorithmic constructor will lead to changes in all constructors where it is used.</p>
      <p>
        After adding the algorithmic constructor "Creating triangles", return to the interpretation of the
autonomous constructor "Sierpinski's triangle". On the form (Figure 7), we define the appropriate
algorithmic constructor, add and match the operations in the specification of the "Sierpinski
Triangle" constructor (Figure 3) with the algorithms of the "Triangular" algorithmic constructor
(Figure 6) that can perform them. Algorithms that implement the operations of substitution, partial
and full output are required [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. As a result of the interpretation, a constructive system is formed
that combines a constructor with elements and possible operations and a model of an internal
performer capable of performing these operations.
      </p>
      <p>The concretization sets the rules of substitution (construction) on the form shown in Figure 8,
which consist of substitution relations and operations on attributes and initial conditions of
formation (initial data values that were defined in the specialisation) on the form of Figure 9. The
values are set according to the types of attributes. In this case, we set the initial number of triangles
and their location on the coordinate plane in the corresponding attributes.</p>
      <p>Since the constructor of the formation of a plane fractal is autonomous, after all the refinement
transformations, it becomes possible to realize it, that is, to form a set of triangles that reflect the
plane fractal "Sierpinski Triangle". The coordinate values of the shapes on the coordinate plane and
their attributes will be saved to a specified file for further use. The formation of the data set is
performed on the basis of the established rules and the specified algorithms in the constructors.</p>
      <p>Next, each of the triangles in the resulting set is assigned a specific fractal shape such as a Koch
snowflake or a Sierpinski curve. These fractals are formed on the basis of the corresponding
reference values of L-systems.</p>
      <p>Create parametric constructors for forming multi-character sequences for such fractals.
First, create a parametric multi-character constructor for the Koch snowflake.</p>
      <p>In specialization, we will define the subject area of the constructors as the formation of fractals
of this type and set the main attributes that are relevant for the formation of sequences based on the
input data set of the parametric constructor (Figure 10).</p>
      <p>For interpretation, we will add an algorithmic constructor with defined algorithms for
generating multi-character sequences based on the rules of L-systems (Figure 11).</p>
      <p>Link this algorithmic constructor to the parametric constructor "Koch's Snowflake L-system" to
this parametric constructor (Figure 12).</p>
      <p>In concretization, define the initial data values (Figure 13) as the initial symbolic sequence and
the substitution rules (Figure 14) for a particular fractal "Koch's Snowflake" (Figure 13).</p>
      <p>In realization, this constructor will create multi-character sequences in each of the triangles that
will be passed to it as parameters.</p>
      <p>Similarly to the development of the "Koch's Snowflake L-system" constructor (Figures 10-14), we
develop a constructor for the formation of the symbolic sequence "Sierpinski's Curve L-system".</p>
      <p>In the same way as shown in Figure 10 - 14, we create parametric constructors for calculating
coordinates for fractals based on the multi-character sequences "Koch's Snowflake Point" and
"Sierpinski's Curve Point".</p>
      <p>To graphically display the shapes formed as a result of realizations of the "Sierpinski Triangle",
"Koch's Snowflake Point" and "Sierpinski Curve Point" constructors, we create a parametric
graphical constructor to display the "Sierpinski Triangle" multifractal containing black triangles
with the "Koch's Snowflake Point" fractal and white triangles with the "Sierpinski Curve Point"
fractal, similarly to the previous constructors.</p>
      <p>After defining all the autonomous and parametric constructors with the corresponding
algorithmic constructors, we will combine them into one sequential process of forming a structure
in the multiconstructor. Let's add the multi-constructor "Sierpinski Graphic Triangle" to the list of
constructors.</p>
      <p>At the stage of specialisation, we will determine the sequence of actions for creating
constructors, forming structures and transferring data between constructors (Figure 15).</p>
      <p>In realization the multi-constructor, we will get a file with the image of the "Sierpinski Triangle"
multifractal with the linear fractals "Koch's Snowflake" and "Sierpinski Curve" in triangles (Figure
16) at three iterations. The image corresponds to the appearance of the reference corresponding
fractals.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions</title>
      <p>The constructive-synthesising approach has been used repeatedly to confirm its relevance and to
test it on the example of phenomena and processes from the world around us.</p>
      <p>By developing constructors for other subject areas, it is possible to obtain constructions and
constructive processes of a different nature. Each constructor is an independent and separate block
in the formation of constructions.</p>
      <p>The developed software can be the basis for modelling various constructions and constructive
processes, especially in the tasks of their optimisation and structural adaptation.</p>
      <p>The applied constructive-synthesising approach and the developed tools are flexible for the
formation of multifractals. It can be modified to generate not only geometric and planar fractals,
largely using ready-to-use software.
[6] F. D'Alessandro, O.H. Ibarra, I. McQuillan, On finite-index indexed grammars and their
restrictions, in: International Conference on Language and Automata Theory and Application,
2021. №279. pp.287–298. doi: 10.1016/j.ic.2020.104613.
[7] P. Prusinkiewicz, A. Lindenmayer, The algorithmic beauty of plants, Springer Science &amp;</p>
      <p>Business Media, 2004. pp.228. doi: 10.1007/978-1-4613-8476-2.
[8] L.P. Lisovik, T.A. Karnaukh, A method of specification of fractal sets, in: Cybernetics and</p>
      <p>Systems Analysis, 2009. № 45(3). pp.365–372. doi: 10.1007/s10559-009-9117-1.
[9] V.I. Shynkarenko, Constructive-Synthesizing Representation of Geometric Fractals, in:</p>
      <p>Cybernetics and Systems Analysis, 2019. № 55. pp.186-199. doi: 10.1007/s10559-019-00123-w
[10] V.I. Shynkarenko, T.M. Vasetska, Modeling the Adaptation of Compression Algorithms by
Means of Constructive-Synthesizing Structures, in: Cybernetics and Systems Analysis, 2015. №
51(6). pp.849–861. doi: 10.1007/s10559-015-9778-x.
[11] V. Shynkarenko, O. Kuropiatnyk, Constructive Model of the Natural Language, in: Acta</p>
      <p>Cybernetica, 2018. № 23(4). pp.995–1015. doi: 10.14232/actacyb.23.4.2018.2.
[12] V. Shynkarenko, O. Letuchyi, R. Chyhir, Constructive-synthesizing modeling of fractal crystal
lattices, in: 18th IEEE International Conference on Computer Science and Information
Technologies (CSIT), 2023. doi: 10.1109/CSIT61576.2023.10324251
[13] V. Shynkarenko, K. Lytvynenko , R. Chyhir , I. Nikitina, Modeling of Lightning Flashes in
Thunderstorm Front by Constructive Production of Fractal Time Series, in: Advances in
Intelligent Systems and Computing IV, 2020. № 1080. pp.173–185. doi:
10.1007/978-3-030-336950_13
[14] V.I. Shynkarenko, V.M. Ilman, G.V. Zabula, Constructive-synthesizing model of data structures
at logical level, in: Problems of programming, 2014. № 2-3. pp. 10–16.
[15] J.W. Harris, H. Stocker, Handbook of Mathematics and Computational Science.
SpringerVerlag, New York, 1998. pp.114–115.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>V.I.</given-names>
            <surname>Shynkarenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.M.</given-names>
            <surname>Ilman</surname>
          </string-name>
          ,
          <article-title>Constructive-Synthesizing Structures and Their Grammatical Interpretations</article-title>
          .;
          <string-name>
            <surname>Part</surname>
            <given-names>I. Generalized</given-names>
          </string-name>
          <string-name>
            <surname>Formal Constructive-Synthesizing</surname>
            <given-names>Structure</given-names>
          </string-name>
          ,
          <source>in: Cybernetics and Systems Analysis</source>
          ,
          <year>2014</year>
          . №
          <volume>50</volume>
          (
          <issue>5</issue>
          ), pp.
          <fpage>665</fpage>
          -
          <lpage>662</lpage>
          . doi:
          <volume>10</volume>
          .1007/s10559-014-9655-z; Part II. Refining Transformations, in: Cybernetics and
          <string-name>
            <given-names>Systems</given-names>
            <surname>Analysis</surname>
          </string-name>
          ,
          <year>2014</year>
          . №
          <volume>50</volume>
          (
          <issue>6</issue>
          ). С.
          <volume>829</volume>
          -
          <fpage>841</fpage>
          . doi:
          <volume>10</volume>
          .1007/s10559-014-9674-9.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Müller</surname>
          </string-name>
          ,
          <article-title>Grammatical theory: From transformational grammar to constraint-based approaches</article-title>
          , Language Science Press,
          <year>2023</year>
          . doi:
          <volume>10</volume>
          .5281/zenodo.3992307.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>O.</given-names>
            <surname>Iwashokun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ade-Ibijola</surname>
          </string-name>
          ,
          <article-title>Parsing of Research Documents into XML Using Formal Grammars</article-title>
          ,
          <source>in: Applied Computational Intelligence and Soft Computing</source>
          ,
          <year>2024</year>
          . doi:
          <volume>10</volume>
          .1155/
          <year>2024</year>
          /6671359.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Wandr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.L.S.</given-names>
            <surname>Ferreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.V.S.</given-names>
            <surname>Pessoa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Galv</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Machado-Lima</surname>
          </string-name>
          ,
          <article-title>A stochastic grammar approach to mass classification in mammograms</article-title>
          ,
          <source>in: IEEE/ACM Transactions on Computational Biology and Bioinformatics</source>
          ,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>X.</given-names>
            <surname>Pu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kay</surname>
          </string-name>
          ,
          <article-title>A probabilistic grammar of graphics</article-title>
          ,
          <source>in: CHI Conference on Human Factors in Computing Systems</source>
          ,
          <year>2020</year>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>13</lpage>
          . doi:
          <volume>10</volume>
          .1109/TCBB.
          <year>2023</year>
          .
          <volume>3247144</volume>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>