Информационно познавательный журнал Виктория ::: Свежие новости про Интернет и компьютерные технологии, объявления, интересные книги разных жанров, анекдоты, смешные истории
Для студентов
Все книги
Любовь и отношения
Дела семейные
Успех и богатство
Гипноз, НЛП, магия
Наше здоровье
Еникеева Диля
Правдина Наталия
Известные имена

Виртуальное пространство

Авторские страницы
Вадим Голембо
Володин Мирон
Довгань Владимир
Дмитриев Виктор
Щукарев Александр
Зербино Дмитрий
Итани Ирина
Клосс Полина
Кухар Евгений
Скуридин Александр
Чабан Василь
Юрчак Ирина
Уникальные советы и книга легендарного предпринимателя


Смешная жизнь
Смешная жизнь



Вход в аккаунт  

Гнаться за невозможным - безумие.
М. Аврелий

Контактная информация

Дмитро Зербіно

D.Zerbino, Y.Tsymbal, Y.Kynash

Lviv Polytechnic National University, Automated Control Systems Department


Download program PR1 (rar)

Download letter (doc)

The two models of computations have been compared – the artificial neural networks and declarative programs based on logic. The generalization of these models is proposed in the part where the computational process can cause changes of the program. The principles of self-organization for these models have been formulated. According to these principles the above-mentioned changes will be determined as a result of the search. Complementarity of the discussed models is necessary for a profound study of the self-organization.

Keywords: PROLOG, artificial neural networks, model of computations, self-organization, genetic algorithms.


It's generally accepted that a living organism is a highly organized system that specifically supports the own existence in a variable environment and can reproduce the organisms with a positive changes that improves the properties of the adaptation to the environment. This definition perfectly suited to the term "self-organization", which further emphasizes that the ordering of the system is growing and the reason for this is the system itself.

If self-organization does exist in nature, the "theoretically alive" may appear the quantum systems on the surface of the sun, and crystal structures on the distant planets at very low temperatures, and artificially created technical systems. To make this article not a science fiction, it is necessary to solve the following:

  • Are there any general principles of self-organization without which self-organization is impossible;
  • If the principles of self-organization exist, is it possible to apply them to the software systems in the form of formal operators;
  • Is it possible to establish according to these principles a new programming technology that would allow programmatic capturing all of the positive changes in programs for the purpose of self-improvement, and automatically organize program objectives and optimize the ways to achieve programming purposes, or modify the algorithm as a whole?

It is generally recognized that for the effective management of the system, its complexity should not be high, otherwise the control of all processes becomes impossible. So, highly organized system cannot exist without the laws of the self-regulation and self-organizations which must simplify the management through spontaneous contours of regulation. When organisms reach a certain level of organization, they begin to interact and form the other systems with its own contours of regulation, which is also a result of self-organization. The phenomenon of multivarious life forms is still no well understood, that suggested to the actuality of the studing the self-organized algorithms. We also believe that there is a need to explore how highly organized systems are formed and how spontaneous control circuits that coordinate the overall management system arize.

The aim of this work is to clarify the concepts of adaptation and self-organization, identifying characteristics and principles of self-organization, to identify the models of artificial neural networks and declarative programs properties that define symptoms of self-organization.

The basic principles of self-organization

The complex, but not self-organized systems exist in the environment. Self-organization is necessary but not a sufficient property of living systems. We consider the self-organization as a purposeful change the own structure (possibly to optimize circuits regulation therein). Thus, in order to make a meaningful step it is necessary to identify possible alternative steps, and then determine which of the alternative is best and by what criteria. Particular cases are following: impossible to represent all the alternatives, criteria too much. In this case, it is necessary to look for a base problem and to solve it through the analysis of logical relationships. Most problems are interrelated, and in contrast to adapting systems the self-organized systems solve problems together.

Obviously, to "guess" the correct solution for the system is simply impossible. It is therefore logical to assume that the self-organizing systems have the hidden algorithm of sorting variants with logical analysis of each, after which the system selects the best one. The property of self-organization of the system does not depend on its nature. For example, in [1] were considered simple rules of replacing data on the discrete plane, which led to the deliberate "breeding" of certain data configurations.

In simple systems all laws are determined by the environment. Under their influence "screening" of pre-configuration data, as a result some configurations are preserved and even increased, while others occurs transformed into another form and "die". In complex systems, there is some subject that decides which data to "show" to achieve a certain purpose in accordance with the laws of the environment. Therefore, we propose to divide the processes of self-organization into spontaneous (which depends only on the laws of the environment) and purposeful self-organization (if managing entity exists). If the managing entity has too primitive functions, the self-organization can be spontaneously, i.e. mainly depending on the laws of the environment. The greater is the possibility of the subject to "hide" data from environment, the "smarter" and more autonomous self-organization is.

To study this phenomenon, let us first consider the artificial neural networks that were designed by developers as an alternative to classical processors and distinguished on the basis of computations. If classical architecture processors require the programmer to write a program based on a model problem, the computations by neural networks should be based on the following principles:

Neural Network creates itself the model of the object which is controlled.

This principle will be called the first principle of self-organization of neural network. For example, we have a task to create an artificial neural network to recognize any speech represented in the form of digitized signal with certain accuracy. In this task, we distinguish two approaches: parametric and algorithmic approach. In the parametric approach we shall simply change the scaling so that the received signal maximum coincided with the model. Scaling can be nonlinear. Horizontal axis represents frequency scale, and vertical - amplitude. Clearly, this approach does not give qualitive results when the announcer delays or shortens phonemes or concerned person speaks with another tone of voice. Attempt to overcome these problems is given in [2].

Algorithmic approach is based on selecting certain logical features of signal (on the basis of repeated analysis - getting primary, secondary, tertiary features, etc.). Neural Network itself must choose which of these features are essential and which - not. For example, to detect the sound "R" is an essential process fluctuations tongue that can recognize either visually or through periodic characteristic sound of sharp fluctuations on the first front. Note that the oscillation frequency to detect sound is less informative than trying to move his tongue speaker in combination with the larynx is so that we understand sound "R". During the pronunciation of arbitrary sounds informative is the sequence of movements and muscle tension relatively the average value. In any case, by the nature of sound the listener interprets in what manner moves the muscles of the lungs, larynx, tongue and lips, and thus understands that the announcer would say, even if the sound is distorted.

In the example above material is feature extraction algorithms. The number of features reflects the diversity and depth of analysis. Therefore, an algorithmic approach to recognition is based on algorithms that represent the logic of feature extraction based on the physical interpretation of every slightest change in the signal. Man interprets the signal by the featured speaker's desire to do this or that sound, namely, by expressing of this desire through the tension changes of different muscle groups.

That interpretation of the signal as a carrier of information is possible only if the "recognizer" has the process model and if the recognizer understands by external signs, how the process takes place and what events it happen. For example, by interpreting the smallest features in the human face image we can instantly recognize the mood and emotions of another person, but the mood of beetles or birds is difficult to recognize because recognizing model in this case is incomplete.

Of course, the Neural Network is not a super-intelligence that understands all the details of pronunciation, but it can create a model of pronunciation of appropriate sounds on some primitive level, which is enough for recognition, not only words but also emotions of announcer. So, the first step required for self-organization in recognition is constructing albeit primitive, but consistent model of recognition. In the process of self-organization, this model will be improved.

The considered above first principle of self-organization of neural network is not enough to make the correct decisions. We must also set the purpose of computation, i.e., objective of decision-making (or target of recognition) as well as evaluation criteria, which play a significant role in feedbacks of the system. Therefore, we formulate the second principle of self-organization for neural networks, which includes a purpose:

In the process of computation Neural Network itself clarifies the purpose of computation and improves the evaluation criteria.

This purpose can be hierarchical, multicomponent and disordered. During the self-organization a key role is played a system-created factor, in the purpose to which the elements formed the system and interacts with each other. Changing a system-created factor leads self-organized system to crash.

Evaluation criteria objective can be regarded as a partial order on the set of attributes of the computational process. This means that for self-organization the system should monitor itself and determine the characteristics and parameters of its own work. Partial order on the set of features determines what features are more desirable. Characteristics generally are represented by a number of different specific types such as probability, duration, frequency, relative level, quantity, etc. They are formed not randomly, but due to approaching or distancing of computation purpose. Criteria of reaching the purpose are formulated separately. Usually, you can compare only features of the same type, and based on these comparisons, self-organizing system can choose the best variant of function.

Computation algorithm consists of arithmetic and logical operations, comparison operations and transactions by condition. In determining the results of operations such actions as assignment should be avoided to avoided. The assignment causes the main problems during modification of algorithms in systems.

Therefore for self-organized systems all values must be temporary, i.e., if necessary, could be easily replaced without assimilating other data associated with them. This can be implemented by special hierarchical memory model in which all data have the status of assumptions.

In the Neural Network programming two principles of self-organization are implemented as learning, which determines the model of the object and purpose of computing. In fact, learning results determine coefficients of connections between neurons in adjacent layers or feedback coefficients (depending on the topology of the neural network).

The sample of creating self-organized system

Supposing we needed to create a neural network to recognize any word pronounced by different people. Solving the problem directly with the "sound perceptron" [3] does not give the desired effect, because it would have led to scaling the word by a fixed number of receptors, representing the digitized signal (since learning is carried out for a fixed number of neurons). We have to divide speech onto separate words, which sometimes is quite difficult.

We propose to build a system with elements of self-organization taking into account some basic knowledge. So to recognize the human sounds we must gather the following basic knowledge:

  • a) About sounds that a person forms during fixed breathing, fixed opening of the oral cavity and different tone certain muscles of larynx;
  • b) About sounds that a person forms when the larynx is relaxed, breathing is fixed, opening of the mouth is fixed and position of tongue is changed;
  • c) About other base sounds, formed by a person when all parameters are fixed, and one is changed.

Now the process of self-organization will be minimized in order to identify the signal that uniquely characterizes the tone of studied muscle groups in order to ensure that the system correctly identified a group of contracting muscles, lungs breathing, tongue and mouth position while speaker is saying a phoneme. This concludes the construction of the model of pronunciation, based on the so-called "basic knowledge". To the recognition of words we can attempt only after the successful constructing a model of pronunciation, mentioned above, presenting each word that says the speaker through a sequence of combinations of contractions of certain muscle groups that appear in that model. These properties of neural networks are implemented in the relatively primitive tasks and models that can be associated with the "conditional reflexes" on a certain data structures. For further development of self-organizing systems it is necessary to do the few next obvious steps.

  • To find the best optimal behavior self-organized systems should contain a mechanism of comprehensive searching of all possible achievements of the purpose with the possibility of continuing the search from any position.
  • To reduce the exhaustive search self-organized systems should have a mechanism of logical statements that dividing all solutions into more promising and less promising.
  • During solving the problem the system can formulate the logical statements based on the basic knowledge of the problem, which can later be used in the features extraction algorithm.
  • The principle of experience acquirement depending on the number and variety of solved problems is realized by logical statements accumulation approved by the system.
  • The Logic in the self-organized systems must be converted into a universal abstraction level, using the principle of generalization and substitution of concepts. It consists in the fact that each algorithm can be a part of another parent algorithm and the same algorithm can act as a "parent" and a "child" algorithm. That is, the algorithms must be universal elements of formal logical systems that can be replaced and substituted.

Now we could not to say that modern neural networks are ready to implement all these properties. The methods of their teaching are imperfect since they do not allow you to make logical propositions. In modern theory of neural networks the logical analysis is actually replaced by the probability that cannot convey some conventional concepts which logically depend on the situation.

The declarative approach to describe self-organization

Along with the neural network technology such approach as the declarative programs is being developed, which previously was considered as unideal from the point of view of practical programming. The main reason for such "dislike" by software developers is unpredictability of declarative program behavior because instead of specifying the algorithm the programmer specifies the system of logic assumptions on which that algorithm should be built by the executive system. The task simple from the point of view of algorithmic language programming should be formulated in the declarative language in completely unnatural way. Of course, during a logical interpretation of such declarative programs various side effects arise requiring additional logical definitions and refinements thus annoing the programmers. Ultimately, the compiler still translates the declarative program into algorithmic one.

With the development of neural network technology declarative programming takes on a new meaning. In our opinion, it can be developed in the direction of self-organizing technologies.

The main feature of the system that is capable of self-organization is that it is not destroyed during self-organization moreover it becomes more stable and reliable. If in the program created in any algorithmic language something is changed it will lead to a collapse of the entire software product, which does not happen with a declarative program. So, the declarative approach assumes the specific languages and programming techniques that improve its own code.

The programming language is a universal way to communicate with computer system, regardless of how computations are performs inside the system. One of the major disadvantages of modern high-level languages is the inability to modify its own program in the natural and logically justified way.

That is, in modern programming languages the means representing the program as the data with the abilities to its correct modification don't exist. There was only one weak attempt in this direction – the genetic algorithms [4]. The genetic programming allows two types of programs modification, which are based on randomness hybridization and mutations. The experiments on real programs synthesizing the simple logical formulas, in this way showed the significant difficulties arising with formulas containing more than 5 variables. The obtained result is either too approximate or too complex. From this we can conclude that the program with elements of self-organization should not act in completely random way.

Note that modern processors theoretically have the ability to modify its own program - it requires only the results of the program write to the memory segment of the program code. In other words, the technical capability of modern processors allows the creation of methods and tools to develop self-organized programs and self-organized programming languages.

From general considerations we can assume that a program that is capable of self-organization must be written by a programmer, and the program can make changes itself with some submissions. For example, we have considered the programs for the synthesis of functions based on genetic algorithms that perform comprehensive search of all possible combinations of basic functions, from which the function is synthesized. Logic of search reduction is based on the assumption that the synthesized function does not differ significantly from the basic function.

Thus, in a program that is capable of self-organization, it should be clearly described the fundamental relationships, the relationships which can be modified and the rules that cannot be broken.

The methods of correct modification of the program code

So, to implement self-organization we must at first include to the programming language tools that can modify its own program code in the way that does not destroy the main algorithm of searching variants. It is the most convenient to do this in declarative programming languages such as PROLOG.

Since declarative language consists of predicates, expressing some relationships between concepts of programming, the special predicates that can change other predicates in the program should be specified. This well agrees with the concept that the initial program is created by a programmer, and the algorithm is modified during its execution by finding and introducing to the program a new, more perfect predicates. To implement this concept in the programming language it is necessary:

  • To refuse of any limitations of memory by the number of variables and alternatives, by the length of predicates, variables, lists, etc., because any concretization of values leads to collapse after modification of program code.
  • To inroduce a specialized predicate COMPILE ("filenames (X1, X2, ..., XN)", ERR), which can perform compilation given text file. If the compilation was successful, and the error code ERR = 0, then the first predicate from the newly compiled file will execute with the parameters (X1, X2, ..., XN). If the predicate was successful, the result is returned to the main program by sending the variables. In the case of infinite loop of program (leading to stack overflow) predicate return code ERR = 1.
  • Learn to program synthesis, which is based on replacing the infinite sequences by finite one, and to allow designation of any data as the second, third, etc. layer of new data.
  • Introduce the operation of predicate creation in the section «Proposals», operation of creating the variable into the predicate and predicate removal operation.
  • To facilitate the programming it is necessary to introduce specialized predicates of enumeration, such as sorting of all subsets or searching all substrings that satisfy to some condition.
  • For solving of the contradictory problems the ordering operation such as "X is more desirable than Y" should introduce.

The self-organized programs properties

Consider the scheme of classical declarative program without self-organization:

The set of possible options → The rule which describes the purpose → Finding the variants that satisfy the rule → Choosing the best variant.

Scheme program with elements of self-organization:

The rule describes the purpose, possible actions and the initial state → Analysis of purpose achievement → Search the factors of purpose achievement → Accumulation of the promising variants (hypotheses) → Hypotheses considering → Choosing the best variant.

The rule that describes the purpose and rules of searching the best variant are present in both programs. But in the first program the set of variants from which is necessary to choose the best one, is given a priori, ie before algorithm execution. The input data of the program is only the initial problem condition. The second program is also a priori given some options, but their content is completely different - these options are considered as limitations on computations that can not be violated in the process of finding a solution. Therefore, a rule that describes the purpose and rules that define certain restrictions act together.

Self-organization stipulates that the program does not simply selects an item from the proposed set but can be purposefully chosen composition of the proposed items. With this approach, you need a powerful logic block analysis of purpose. In the analysis, the program needs to find a set of concepts that are closer or move away the purpose.

What, in fact, is the concept? Concepts are some sets, which is built by some rule. Thus, if we operate in terms of logical conditions, in fact, we operate in sets that represent them. So, choosing the best variant - is to finding the maximum element from sets intersection, which confine our task.

However, not every rule denotes concept. Rather, the concept associated with algorithm that gives some quantitative characteristics.

For example, if we consider the chess playing, the concepts can be:

  • "Value of the figure" - the number of cells to which it can jump (exception – the King);
  • "Attack" – the situation when a figure lowers value attacking a figure greater value;
  • "Fork" - a figure simultaneously attack more than one opponent's figures;
  • "Ligament" - the figure can not move because of opportunity to attack;
  • "Value of position" - the number of active figures as well as the number of possible attacks from our figures and attack absence from opponent;
  • "Worth of the turn" - the value of position after the opponent choose the optimal response to this turn.

Implementing the logic of self-organization

It is necessary the mechanism of replacing each equation ?i (X, Y, ..., Z), which describes the problem by the sets {(x1, y1, ..., z1), (x2, y2, ..., z2), ...} of solutions, where (xi, yi, ..., zi) - a single solution that satisfies that equation. The system of equations means the logical conjunction of equations, ie, the intersection of sets solutions of each equation. In most cases the finite equation should be replaced by infinite sets of solutions.

The first step for the representation of infinite sets can restrict some n-finite sets of solutions of these equations in combination with solutions that give algorithms Wi, which under cyclic application will get the rest solutions {W} from infinite set for the i-th equation (in addition to those already received):

Y(X,Y,…, Z) → {(x1,y1,…,z1), (x2,y2,…,z2), …, (xn,yn,…,zn)} E {W}

{(x1,y1,…,z1), (x2,y2,…,z2), …, (xn,yn,…,zn)} C {W} = ?

Of course, the system of equations is a partial case of the predicate and in the more general case the equation (or predicates), which it includes, may have a different number of variables. Then to taking into account types of variables which are included in the predicate, the solution can be obtained by the rule of intersection relations, because of every relationship is a table on a given subset of variables:

R1(X,Y,…, Z) C R2(P,Q,…, Z) = R3(X,Y,P,Q,…, Z)

Typically, the real system get tasks like: "do something otherwise would not be very good". This information has two parts: 1) what is required to do, and 2) that could be wrong if this is not done. If we consider the system without self-organization, the modality "Do something" and "otherwise would not be very good" are necessary, ie, without any choices.

The system, which has elements of self-organization, considers all allegations with modality "maybe" as well as truths of regarding some subjects. That is, someone offers someone to "do something", else maybe would "not very good" for someone.

In developed intelligent systems the part "is not very good" is not used. The system, which has own intellect understands what exactly is wrong and who needs to do something. The system during the analysis of modality "maybe" must understand why the subject who proposes this decision considers it the best among all other possible solutions.


Self-organization is the basic concept of the system development. Any system (technical or biological) that is not well-organized goes to crash.

The article makes an attempt to introduce the self-organization in software systems formally, in the form of additional sorting and searching operations that still makes the programmer, adapting their product to changing demands of using. In the result of comparison of different algorithmic systems - artificial neural networks and declarative programs, we concluded that the self-organization effect in programs is arose if these computational models are cooperates.
The fixed topology of artificial neural network does not allow making deep logical conclusions as it makes declarative program, but declarative program must learn to tendentious change their code and selects the rules by the weight coefficients.

The both algorithmic systems must learn to operate with approximate, incomplete, heterogeneous and contradictory information.


  1. Neumann von J. Theory of self-reproducing automata. (edited by A.W.Burks) Univ. of Illinois press, Urbana, 1966.- 400p.
  2. Ю.Рашкевич, Д.Пелешко, М.Купчак, А.Ковальчук, Виділення квазістаціонарних ділянок мовного сигналу за спектром матричного оператора.- Вісник НУ ЛП №710, 2011р., сс. 70-74.
  3. Frank Rosenblatt, Audio Signal Pattern Perception Device.- US Patent 3287649, Nov. 22, 1966.
  4. Candida Ferreira. Gene Expression Programming: Mathematical Modeling by an Artificial Intelligence (Studies in Computational Intelligence).- Springer, 2006, 498p.


пылесосы вебсайт
домашний кинотеатр см. тут


В кинотеатpе женщина говоpит сидящему pядом мужчине:
- Hемедленно убеpите pуку с моего колена! Считаю до пяти тысяч...


Плакала, сидела очень долго,
Видела тебя в своем я сне...
Умер ты... но почему-то только
Я не смогла помочь ни в чем тебе.
Душу ангелу готова я отдать
Лишь бы остался жив...
Сердце дьяволу я продаю опять,
Я так сказала, всё уже решив
«03» не набирал мой телефон,
А я звала на помощь и кричала.
Это какой-то сумасшедший дом!
Тебя за всё, за всё сейчас прощала...
Подумать только ни из-за чего
Он жизнь отдал, а я осталась жить...
Теперь у меня нет уж никого
Продам свою жизнь, чтоб его купить!
Поверь, сейчас мне некогда шутить
Я продаю всё дьяволу сейчас!
Мне больше некого из вас любить
Хотя он тоже был одним из вас!

Счетчики (ссылки) 92

Rambler's Top100

2000-2009 © Дизайн-студия "Виктория" Украина, Львов

телефоны (067) 947-61-21
(095) 814-25-68
(050) 502-94-63
e-mail info@victoria.lviv.ua

Быстрая связь

по всем вопросам

Быстрая связь по всем вопросам