/
Rudoy2014Masters.tex
2421 lines (2093 loc) · 170 KB
/
Rudoy2014Masters.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage{etex}
\usepackage{Diplo}
\usepackage{graphics,graphicx,epsfig}
\usepackage{amsfonts,mathtext,cite,float}
\usepackage{morefloats}
\usepackage{pgf}
\usepackage[debug,outputdir={docgraphs/}]{dot2texi}
\usepackage{tikz}
\usepackage{scalefnt}
\usepackage{placeins}
\usepackage{url}
\usepackage{babelbib}
\usepackage{subfigure}
\usepackage{rotating}
\usepackage[english,russian]{babel}
\usepackage[all]{xy}
\usepackage{float}
\usepackage{verbatim}
\usepackage{pbox}
\usepackage{grffile}
\usepackage{color}
\usepackage{comment}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{decorations.pathmorphing}
\newtheorem{algo}{Алгоритм}
\newtheorem{theorem}{Теорема}
\newtheorem{lemm}{Лемма}
\newtheorem{stat}{Утверждение}
\newtheorem{defin}{Определение}
\begin{document}
{
\renewcommand{\baselinestretch}{1}
\thispagestyle{empty}
\begin{center}
\sc
Министерство образования и науки Российской Федерации\\
Московский физико-технический институт
{\rm(государственный университет)}\\
Факультет управления и прикладной математики\\
Вычислительный центр им. А. А. Дородницына РАН\\
Кафедра <<Интеллектуальные системы>>\\[35mm]
\rm\large
Рудой Георгий Игоревич\\[10mm]
\bf\Large
Алгоритмы индуктивного порождения и упрощения и критерии выбора оптимальной существенно нелинейной регрессионной модели для аппроксимации измеряемых данных\\[10mm]
\rm\normalsize
010656 --- Математические и информационные технологии\\[10mm]
\sc
Выпускная квалификационная работа магистра\\[10mm]
\end{center}
\hfill\parbox{80mm}{
\begin{flushleft}
\bf
Научный руководитель:\\
\rm
к.~ф.-м.~н. Стрижов Вадим Викторович\\[5cm]
\end{flushleft}
}
\begin{center}
Москва\\
2014
\end{center}
}
\newpage
\tableofcontents
\newpage
\begin{abstract}
В~работе исследуются алгоритмы индуктивного порождения и упрощения допустимых существенно
нелинейных моделей.
Предлагается алгоритм, порождающий все возможные
суперпозиции заданной сложности за конечное число шагов, и~приводится его
теоретическое обоснование. Сформулирован практически применимый стохастический алгоритм
индуктивного порождения существенно нелинейных суперпозиций. Приводятся результаты вычислительного
эксперимента по выбору оптимальной модели для синтетического набора данных,
а также на примере моделирования волатильности опционов.
Далее, предлагается алгоритм упрощения суперпозиций, являющийся усовершенствованием ранее
предложенных методов упрощения выражений по правилам. Суперпозиции
представляются в виде направленного ациклического графа с объединением общих
поддеревьев. Такое представление позволяет существенно расширить класс допустимых
преобразований суперпозиций. Доказывается корректность и полнота
предложенного алгоритма.
Сформулирован критерий определения погрешности коэффициентов порожденных
суперпозиций, называемый устойчивостью, а также метод оценки устойчивости полученного решения.
Сформулированное понятие устойчивости предлагается использовать в качестве одного из критериев
выбора оптимальной регрессионной модели из множества порождённых существенно нелинейных
суперпозиций.
Приводятся результаты вычислительного эксперимента по порождению и упрощению суперпозиций
для набора синтетических данных, а для метода оценки устойчивости~--- на данных, полученных в
ходе эксперимента по определению зависимости показателя преломления полимеров от длины волны.
\bigskip
\textbf{Ключевые слова}: \emph{символьная регрессия, нелинейные модели, индуктивное порождение,
упрощение выражений, сложность моделей, преобразование графов по правилам, устойчивость решений.}
\end{abstract}
\newpage
\section{Введение}
Для анализа результатов физического эксперимента, как правило, требуется
восстановить функциональную зависимость, описывающую соотношение измеряемых
величин. При этом необходимо, чтобы эксперт имел возможность интерпретировать
полученную зависимость, исходя из соответствующих теоретических моделей \cite{Pavlovsky2000}. Во
многих случаях вид функциональной зависимости заранее известен, либо необходимо
сделать выбор между несколькими (также заранее известными) вариантами моделей.
Одним из методов, позволяющих строить интерпретируемые модели, является
символьная регрессия\cite{davidson:2000:snrea,reference/ml/X10vc,StrijovW10,Strijov08InductMethods,Rudoy13},
порождающая, в том числе, и структурно сложные нелинейные модели. Различные
приближения сравниваются согласно ошибке на измеряемых данных, при этом оптимизация
параметров модели проводится, например, с помощью алгоритма Левенберга-Марквардта\cite{Marquardt1963Algorithm,more:78}.
Генетическое программирование, предложенное Джоном Коза и заключающееся в
применении эволюционных методов для построения программ (и, в том числе,
суперпозиций функций), является одной
из возможных реализаций этого метода. Джон Коза
существенно расширил идею представления программ в генетическом
программировании в виде деревьев, впервые рассмотренную Крамером
\cite{Cramer1985}.
В общем виде алгоритм построения требуемой математической модели в
генетическом программировании выглядит следующим образом:
дан набор примитивных функций, из которых можно строить различные формулы
(например, степенная функция, $+$, $\sin$, $\tan$). Начальный набор формул
строится либо произвольным образом, либо на базе некоторых предположений
эксперта. Затем на каждом шаге производится оценка каждой из формул согласно
функции ошибки либо другого функционала качества \cite{Tirsin2005}. На базе
этой оценки у некоторой части формул случайным образом заменяется одна
элементарная функция на другую (например, $\sin$ на $\cos$ или $+$ на
$\times$), а у некоторой другой части происходит взаимный попарный обмен
подвыражениями.
Иван Зелинка предложил дальнейшее развитие идеи применения эволюционных
алгоритмов для восстановления функциональной зависимости, получившее
название аналитического программирования, которое, однако, отошло от
представления программ в виде деревьев. В работе \cite{Zelinka2008}
предлагается перенумеровать используемые функции и переменные, и по
полученным номерам специальным обратимым алгоритмом строить строки из
нулей и единиц, к которым уже применимы любые эволюционные алгоритмы,
работающие с бинарными строками. Для оценки качества получающихся
суперпозиций на каждой итерации алгоритма происходит обратное декодирование
имеющихся строк и сравнение их результатов с требуемыми.
Алгоритм индуктивного порождения моделей, сформулированный в~настоящей работе,
свободен от некоторых типичных проблем предложенных ранее методов, в том числе
\cite{Zelinka2008}:
\begin{itemize}
\item Порождение рекурсивных суперпозиций, а также суперпозиций, содержащих
несоответствующее используемым функциям число аргументов, и~т. д.
(в~предложенном алгоритме эти проблемы не возникают по построению).
\item Несовпадение области определения некоторой примитивной функции и области
значений ее аргументов (возможно, тоже некоторых суперпозиций).
\item Порождение слишком сложных суперпозиций.
\end{itemize}
Действительно, для любой выборки можно построить такой полином, который пройдет через
все точки выборки, но при этом число параметров такого полинома линейно
растет с объемом выборки. Кроме того, такой многочлен неинтерпретируем
экспертами из-за своей высокой степени, соответствующей числу объектов в обучающей
выборке. Предложенный в настоящей работе алгоритм решает проблему
порождения слишком сложных суперпозиций введением дополнительного штрафа
за сложность. Кроме того, так как используемые признаки объектов выборки
учитываются при расчете сложности, применение подобного штрафа обеспечивает
выбор суперпозиций, использующих меньшее число признаков, то есть, обеспечивает
отбор признаков.
Однако при использовании методов генетического программирования возникает
проблема порождения избыточных формул \cite{Soule97,Soule98,Streeter03}, то
есть таких формул, в которых некоторые подвыражения могут быть удалены или
заменены на более простые без ухудшения качества аппроксимации. Например,
если некоторое подвыражение в суперпозиции умножается на ноль, то все это
подвыражение можно заменить нулем.
Таким образом, для построения интерпретируемых суперпозиций целесообразна
дополнительная процедура упрощения.
Кроме того, процедура упрощения математических выражений представляет
самостоятельный интерес и может быть применима, например, в системах компьютерной
алгебры \cite{Carette04}.
Ранее были предложены такие методы упрощения суперпозиций, как упрощение
выражений по правилам (\emph{rule-based simplification, RBS}) \cite{Ehrig2006,EhrigHandbook}
и замена поддеревьев на эквивалентные меньшей сложности (\emph{equivalent
decision simplification, EDS}) \cite{MoriSimpl}.
В работах \cite{Ehrig2006,EhrigHandbook,MoriSimpl} слова
<<суперпозиция>>, <<формула>> и <<математическое выражение>>
(или просто <<выражение>>) взаимозаменяемы и обозначают некоторую композицию
свободных переменных, констант и элементарных функций. В данной работе далее используется
термин <<суперпозиция>>.
В настоящей работе предлагается алгоритм, основанный на упрощении суперпозиций по
правилам, описывающим, как функции связаны между собой. В качестве примера таких правил
можно указать $\log \circ \exp \equiv \text{id}$ или $t^n \times t^m \equiv t^{n+m}$.
Ранее предлагалось \cite{Sasaki86,Soule98,Carette04,Stoutemyer11,Stoutemyer12} представлять
суперпозиции в виде соответствующего им дерева, над которым и оперировали предлагавшиеся
алгоритмы. В настоящей работе суперпозиция представляется не в виде дерева, а в виде
направленного ациклического графа, где различные функции могут принимать в
качестве аргумента одно и то же подвыражение. Примером может являться суперпозиция
$\cos^2 t + \sin^2 t$, где $t$~--- некое сложное подвыражение. Таким образом,
искомая задача сводится к задаче нахождения общих подвыражений в исходном
дереве суперпозиции и задания правил упрощения на множестве подобных
ациклических графов.
При анализе физического эксперимента важна не только интерпретируемость
искомой функциональной зависимости и значения ее параметров, но и погрешности их определения,
обусловленные погрешностями измеряемых в эксперименте величин. Для задачи
линейной регрессии получено точное аналитическое решение в частном случае, когда
погрешность определения регрессора пренебрежимо мала, а погрешность определения
зависимой переменной во всех экспериментальных точках одинакова\cite{Vatunin05}.
Для более сложного случая нелинейной регрессии и ситуации, когда необходимо
учитывать погрешности как регрессора, так и зависимой переменной (которые при
этом могут быть разными в различных экспериментальных точках), подобная задача,
насколько нам известно, не ставилась.
В настоящей работе метод нелинейной регрессии, помимо прочего, применяется для восстановления
зависимости показателя преломления $n$ от длины волны $\lambda$ в полосе
прозрачности полимера, включающей видимую и ближнюю инфракрасную области спектра.
Цель экспериментаторов состояла в том, чтобы по известной дисперсии для каждого
полимера с учетом того, что показатель преломления смеси химически инертных
полимеров равен взвешенной сумме (с соответствующими весами) показателей
преломления компонентов, определить состав смеси по экспериментально
определенной зависимости $n(\lambda)$. Другими словами, для случая двух
полимеров, заранее измерив и вычислив зависимости $n_1(\lambda)$ и $n_2(\lambda)$,
необходимо экспериментально определить суммарную зависимость
$n(\lambda) = \alpha n_1(\lambda) + (1 - \alpha) n_2(\lambda)$ и по ней
вычислить коэффициент $\alpha$, имеющий смысл концентрации первого полимера в
смеси.
Поскольку показатели преломления для прозрачных полимеров близкого химического
состава различаются незначительно, учет погрешности определения коэффициентов
функциональной зависимости $n(\lambda)$ и их связи с погрешностями
экспериментального определения длины волны $\lambda$ и показателя преломления
$n$ имеет принципиальное значение. Указанная связь важна еще и потому, что
именно она определяет требования к точности и чувствительности измерительной
аппаратуры и, следовательно, влияет на стоимость и продолжительность
эксперимента.
Обычно в рефрактометрах используются источники широкополосного (непрерывного)
спектра, а погрешность выделения конкретной длины волны определяется аппаратной
функцией используемого монохроматора (прибора, выделяющего узкий спектральный
диапазон) и подробно рассматривается, например, в\cite{Malishev79,Zaidel72}.
В большинстве случаев погрешность $\lambda$ может быть рассчитана, а также
определена экспериментально с использованием узкополосных источников света
(лазеров, известных атомных переходов вроде триплета ртути или дублета натрия,
и т.~д.). Характерная относительная погрешность определения длины волны в
рассматриваемой задаче обычно составляет $0.03 \div 0.5\%$, а
абсолютная погрешность определения длины волны, как правило, меняется с
изменением самой длины волны. Экспериментальная погрешность показателя
преломления $n$ зависит от выбранного способа его измерения и, например,
при определении $n$ по углу полного внутреннего отражения обусловлена
непараллельностью используемых световых пучков, погрешностями в измерении углов
и т.~д, и составляет от $(1 \div 2) \cdot 10^{-5}$ для приборов высокого класса
точности до $(1 \div 10) \cdot 10^{-4}$. Существенно, что величины погрешностей
могут считаться известными и, возможно, различными для каждой экспериментальной точки.
Кроме того, непосредственный интерес может представлять сама величина изменения
коэффициентов модели при небольшом варьировании обучающих данных. Так, в работе \cite{Christian14}
исследовано влияние случайных возмущений входных данных на результат
классификации изображений сетью глубокого обучения. Показано, что для любой такой
сети, независимо от её архитектуры и метода обучения, и любого корректно
классифицируемого изображения существует такое достаточно малое и невоспринимаемое
человеком искажение изображения, после применения которого изображение перестает
корректно классифицироваться.
Действительно, для любого робастного метода обучения ожидается, что небольшие
изменения во входных данных не окажут существенного влияния на решающую функцию,
или, иными словами, не приведут к значительному изменению коэффициентов
при компонентах функции, имеющих тот же порядок величины, что и характерные
значения этой функции.
Таким образом, величина изменения коэффициентов модели может являться одним из
критериев выбора моделей, где предпочтительными являются модели, более устойчивые
к небольшим случайным изменениям во входных данных.
Во второй части работы поставлена задача индуктивного порождения суперпозиций, а
также введена и обоснована такая характеристика суперпозиции, как её устойчивость,
позволяющая учитывать и анализировать зависимость погрешностей различных
коэффициентов порожденной суперпозиции от погрешности измеряемых данных.
В третьей части описывается алгоритм используемый для порождения аналитической
функции-суперпозиции, аппроксимирующей данные.
В четвёртой части предлагается алгоритм упрощения суперпозиций по правилам.
В пятой части предложен численный метод нахождения устойчивости суперпозиции.
В шестой части приводятся результаты вычислительного эксперимента на
синтетических и реальных данных. В частности, предложенный алгоритм порождения
суперпозиций моделируется на точках, удовлетворяющих уравнению цепной линии, а также
на реальных данных волатильности биржевых опционов. Алгоритм упрощения суперпозиций тестируется
на наборе вручную построенных суперпозиций. Затем, рассматривается два полимера
в области прозрачности, для каждого из которых имеется 17 экспериментальных точек,
соответствующих величине коэффициента преломления при различных значениях длины волны,
и на этих данных тестируется алгоритм порождения моделей (базовый алгоритм~--- SVM)
и метод исследования устойчивости решений. Сравнивается устойчивость различных
моделей: порождённой при высоком штрафе за сложность и экспертно интерпретируемой,
порождённой при низком штрафе за сложность и экспертно некорректной, а также
отдельной экспертно предложенной модели.
\section{Постановка задач}
\subsection{Порождение суперпозиций}
Пусть дана выборка:
\[
D = \{ (\mathbf{x}_i, y_i) \mid i \in \{1, \dots, N\},
\mathbf{x}_i \in \mathbb{X} \subset \mathbb{R}^n,
y_i \in \mathbb{Y} \subset \mathbb{R} \},
\]
где $N$~--- число элементов выборки, $\mathbf{x}_i$~--- вектор значений
свободных переменных для $i$-го элемента выборки, $y_i$~--- значение зависимой
переменной для $i$-го элемента выборки,
$\mathbb{X}$~--- множество значений независимых переменных, лежащее в
$\mathbb{R}^n$, $\mathbb{Y}$~--- множество значений зависимой переменной,
лежащее в $\mathbb{R}$.
Требуется выбрать параметрическую функцию
$f : \Omega \times \mathbb{X} \rightarrow \mathbb{R}$ из
порождаемого множества $\mathcal{F} = \{ f_r \}$, где $\Omega$~--- пространство
параметров, доставляющую минимум некоторому заданному функционалу качества $Q$,
зависящему от функционала ошибки $S_f$ на данной выборке $D$ и сложности суперпозиции $C(f)$.
То есть, для множества всех суперпозиций
\[
\mathcal{F} = \{ f_r \mid
f_r : (\boldsymbol{\omega}, \mathbf{x}) \mapsto y \in \mathbb{Y},
r \in \mathbb{N} \},
\]
требуется найти такой индекс $\hat{r}$, что функция $f_r$ среди всех
$f \in \mathcal{F}$ доставляет минимум функционалу качества $Q$ при данной
выборке $D$:
\begin{equation}
\label{eq:hat_r}
\hat{r} = \arg \min_{r \in \mathbb{N}} Q (f_r \mid \boldsymbol{\hat{\omega}_r}, D),
\end{equation}
где $\boldsymbol{\hat{\omega}}_r$~--- оптимальный вектор параметров функции
$f_r$, минимизирующий некоторый функционал ошибки $S$, для каждой $f \in \mathcal{F}$ при данной выборке $D$:
\begin{equation}
\label{eq:hat_omega_generate}
\boldsymbol{\hat{\omega}_r} = \arg \min_{\boldsymbol{\omega} \in \Omega} S(\boldsymbol{\omega} \mid f_r, D).
\end{equation}
Сформулируем также постановку теоретической задачи порождения суперпозиций
конечной длины. Для этого сначала введем понятие суперпозиции функций.
Если множество значений $\mathbb{Y}_i$ функции $f_i$ содержится в области
определения $\mathbb{X}_{i+1}$ функции $f_{i+1}$, то есть
\[
f_i : \mathbb{X}_i \to \mathbb{Y}_i \subset \mathbb{X}_{i+1}, ~~~ i = 1, 2, \dots, \theta - 1,
\]
то функция
\[
f_\theta \circ f_{\theta-1} \circ \dots \circ f_1, ~~~ \theta \geq 2,
\]
определяемая равенством
\[
(f_\theta \circ f_{\theta-1} \circ \dots \circ f_1) (\mathbf{x}) =
f_{\theta} (f_{\theta-1} (\dots (f_1 (\mathbf{x})))), ~~~ x \in \mathbb{X}_1,
\]
называется \emph{сложной функцией} \cite{MathEnc1984_4} или
\emph{суперпозицией функций} $f_1, f_2, \dots, f_\theta$.
Таким образом, получаем
\begin{defin}
Суперпозиция функций~--- функция, представленная как композиция нескольких
функций.
\end{defin}
Для упрощения и обобщения этой формулировки на случай функций нескольких
переменных примем, что все функции $g_1, \dots, g_\theta$, входящие в
суперпозицию, являются вектор-функциями $\mathbf{g}_1, \dots, \mathbf{g}_\theta$
от векторной величины $\mathbf{x}$. При этом и области определения
$\mathbb{X}_i$, и области значений $\mathbb{Y}_i$ этих вектор-функций являются
подмножествами декартова произведения пространств соответствующих переменных.
Пусть $G = \{ g_1, \dots, g_l \}$~--- множество данных порождающих
функций, а именно, для каждой $g_i \in G$ заданы:
\begin{itemize}
\item сама функция $g_i$ (например, $\sin$, $\cos$, $\times$),
\item арность функции и~порядок следования аргументов,
\item домен ($\text{dom} g_i$) и кодомен ($\text{cod} g_i$) функции,
\item область определения $\mathcal{D} g_i \subset \text{dom} g_i$ и~область
значений $\mathcal{E} g_i \subset \text{cod} g_i$.
\end{itemize}
Требуется построить функцию $f$ как суперпозицию порождающих
функций из заданного множества $G$.
Поясним различие между последними двумя пунктами. Например, $\text{dom} f$
показывает, значения из какого множества принимает функция $f$ (целые числа,
действительные числа, декартово произведение целых чисел и $\{0, 1\}$,
и~т.~п.). Область определения же показывает, на каких значениях из
$\text{dom} f$ функция $f$ определена и имеет смысл. Так, для функции
$f(x_1, x_2) = \log_{x_1} x_2$:
\[
\text{dom} f = \mathbb{R} \times \mathbb{R},
\]
\[
\text{cod} f = \mathbb{R},
\]
\[
\mathcal{D} f = \{ (x_1, x_2) \mid x_1 \in (0; 1) \cup (1; +\infty), x_2 \in (0; +\infty) \},
\]
\[
\mathcal{E} f = (-\infty; +\infty).
\]
Требуется также построить алгоритм $\mathfrak{A}$, за конечное число итераций
порождающий любую конечную суперпозицию данных примитивных функций.
Заметим, что мы не требуем для примитивных функций свойства их непорождаемости
в~наиболее общей формулировке типа принципиальной невозможности породить
в~ходе работы искомого алгоритма суперпозицию, изоморфную некоторой функции из
$G$. Такое требование является слишком ограничивающим. В~частности, невозможно
было бы иметь в~$G$ одновременно, например, функции $\text{id}$, $\exp$
и~$\log$, так как $\text{id} \equiv \log \circ \exp$.
Для большей общности будем считать, что константы являются
нуль-арными (нуль-местными) функциями~--- функциями, не имеющими
аргументов, а суперпозиция, соответствующая единственной свободной переменной
($f(\mathbf{x}) = x_i$), эквивалентна функции вида $\text{id} x_i$.
\subsection{Упрощение суперпозиций}
Пусть дана суперпозиция $f$, состоящая из произвольного набора
функций, свободных переменных и констант. Пусть также дан набор
правил-аксиом, указывающих на существующие соотношения между элементарными
функциями. Требуется согласно этим правилам построить суперпозицию, изоморфную
исходной и обладающую наименьшей сложностью.
Здесь под изоморфизмом двух суперпозиций понимается такое эквивалентное
преобразование, что обе суперпозиции дают одинаковые результаты при одних и тех
же значениях свободных переменных.
Определим используемые понятия.
Пусть задано множество $G = \{ g_i \}$ элементарных функций. Для каждой функции
$g_i$ задана область определения $\mathbb{X}_i$ и область значения
$\mathbb{Y}_i$.
Определим понятие сложности суперпозиции $C(f)$:
\begin{defin}
\label{def:complexity}
Сложность суперпозиции $f$, обозначаемая $C(f)$~--- число элементарных функций, констант и
свободных переменных, каждые из которых считаются столько раз, сколько
встречаются в суперпозиции.
\end{defin}
Например, сложность суперпозиции $x+y+y$ равна $5$, а сложность $x + y + 2y^3$ равна $9$.
Введем также множество $\mathcal{F}$ всех возможных суперпозиций, составленных из
элементарных функций $g \in G$.
Исходная задача формулируется следующим образом. Для данной
суперпозиции $f$ требуется найти суперпозицию $\hat{f}$, имеющую минимальную
сложность среди всех суперпозиций, изоморфных $f$:
\[
\hat{f} = \arg \min_{\varphi \in \mathcal{F}_f \subset \mathcal{F}} C (\varphi),
\]
где $\mathcal{F}_f \subset \mathcal{F}$~--- множество всех возможных
суперпозиций, изоморфных $f$. Множество $\mathcal{F}_f$ строится путем
последовательного применения заданных правил, описывающих возможные соотношения
между элементарными функциями, и являющихся правилами преобразования
суперпозиций.
\subsection{Оценка устойчивости суперпозиций}
Введем в общем виде понятие устойчивости суперпозиции $f$, характеризующей
поведение коэффициентов суперпозиции $\hat{f}$ при небольшом случайном
изменении исходной обучающей выборки
$D = \{ \mathbf{x}_i, y_i \}$,
где $\mathbf{x}_i$~--- исходное (полученное в ходе эксперимента)
признаковое описание $i$-го объекта, а $y_i$~--- соответствующее экспериментально
измеренное значение функции, которую требуется восстановить.
Функционал ошибки $S$ выглядит следующим образом:
\begin{equation}
S(f, D) = \sum_{i = 1}^\ell (f(\mathbf{x}_i) - y_i)^2 \rightarrow \min_{f \in \mathcal{F}}.
\label{eq:s_common}
\end{equation}
Условимся также обозначать матрицу плана $X = \| x_{ij} \|$, строками которой
являются признаковые описания объектов выборки $D$. Иными словами, $x_{ij}$
обозначает $j$-ую компоненту признакового описания $i$-го объекта.
Рассмотрим вектор параметров
$\boldsymbol{\omega}_f = \{ \omega_i^f \mid i \in \{ 1, \dots, l_f \} \}$
некоторой суперпозиции $f$: $f(\mathbf{x}) = f(\mathbf{x}, \boldsymbol{\omega}_f)$.
Пусть для некоторой выборки $D = \{ \mathbf{x}_i, y_i \}$ и функции
$f$ вектор параметров $\hat{\boldsymbol{\omega}}_f(D)$ минимизирует
функционал \eqref{eq:s_common} с суперпозицией $f$, имеющей фиксированную
структуру:
\[
\hat{\boldsymbol{\omega}}_f(D) = \mathop{\arg \min}\limits_{\boldsymbol{\omega}_f} S(f, D).
\]
Пусть также дана матрица стандартных отклонений
независимых переменных $\Sigma^{\mathbf{x}} = \| \sigma^{\mathbf{x}}_{ij} \|$,
где $\sigma^{\mathbf{x}}_{ij}$ характеризует стандартное отклонение $j$-ой
компоненты признакового описания $\mathbf{x}_i$ $i$-го объекта обучающей выборки,
и вектор стандартных отклонений $\boldsymbol{\sigma}^y$, где $\sigma^y_i$
характеризует стандартное отклонение зависимой переменной, соответствующей
$i$-му объекту.
Рассмотрим выборку $\acute{D}$, полученную из исходной выборки $D$
добавлением к каждой компоненте реализаций нормально распределенных
случайных величин с нулевым матожиданием и соответствующей
$\Sigma^{\mathbf{x}}$ и $\boldsymbol{\sigma}^y$ дисперсией:
\begin{equation}
\acute{D}(\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}^y) = \{ \mathbf{x}_i + \boldsymbol{\xi}^{\mathbf{x}}_i, y_i + \xi^y_i \mid i \in 1, \dots, \ell; \boldsymbol{\xi}^{\mathbf{x}}_i \sim \mathcal{N}(0; \boldsymbol{\sigma}^{\mathbf{x}}_{i \cdot}); \xi^y_i \sim \mathcal{N}(0; \sigma^y_i) \}.
\label{eq:d_acute}
\end{equation}
Для этой выборки $\acute{D}$ найдем оптимальный вектор $\hat{\boldsymbol{\omega}}_f (\acute{D} (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y))$
параметров суперпозиции $f$, минимизирующий функционал \eqref{eq:s_common}:
\begin{equation}
\hat{\boldsymbol{\omega}}_f (\acute{D} (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y)) = \mathop{\arg \min}\limits_{\boldsymbol{\omega}_{f_D} \in R^{\mid \hat{\boldsymbol{\omega}}_f \mid}} S (f_D (\cdot, \boldsymbol{\omega}_{f_D}), \acute{D} (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y)).
\label{eq:hat_omega}
\end{equation}
Поскольку $\hat{\boldsymbol{\omega}}_f (\acute{D} (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y))$~---
векторная случайная величина,
\[
\Delta\hat{\boldsymbol{\omega}}_f(\acute{D} (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y) ) = \hat{\boldsymbol{\omega}}_f(D) - \hat{\boldsymbol{\omega}}_f (\acute{D} (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y))
\]
также векторная случайная величина.
Пусть дано множество $\acute{\mathcal{D}}_N$ из $N$ таких выборок, где каждая выборка
соответствует отдельным реализациям случайных величин из \eqref{eq:d_acute}:
\[
\acute{\mathcal{D}}_N (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y) = \{ \acute{D}_1 (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y), \dots, \acute{D}_N (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y) \},
\]
и пусть $\sigma_{\omega_i}$~--- эмпирическое стандартное отклонение $i$-ой компоненты
векторной случайной величины
$\Delta\hat{\boldsymbol{\omega}}_f(\acute{D} (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y) )$
на множестве $\acute{\mathcal{D}}_N (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y)$.
\begin{defin}
\emph{Относительной устойчивостью} (или просто \emph{устойчивостью}) параметра
$\omega_i$ относительно $\acute{\mathcal{D}}_N (\Sigma^{\mathbf{x}}, \boldsymbol{\sigma}_y)$
при исходной обучающей выборке $D$ будем называть следующий вектор
из $| \mathbf{x} | + 1$ компонент:
\begin{equation}
\mathbf{T}^N_f(i) = \Big\{ \frac{\frac{\sigma_{\omega_i}}{\hat{\omega}_i}}{r(\boldsymbol{\sigma}^\mathbf{x}_{\cdot 1}, \mathbf{x}_{\cdot 1})}, \dots, \frac{\frac{\sigma_{\omega_i}}{\hat{\omega}_i}}{r(\boldsymbol{\sigma}^\mathbf{x}_{\cdot |\mathbf{x}|}, \mathbf{x}_{\cdot |\mathbf{x}|})}, \frac{\frac{\sigma_{\omega_i}}{\hat{\omega}_i}}{r(\boldsymbol{\sigma}^y, \mathbf{y})} \Big\},
\label{eq:t_rel}
\end{equation}
где $r(\boldsymbol{\alpha}, \mathbf{a}) = r(\frac{\alpha_1}{a_1}, \dots, \frac{\alpha_{|\boldsymbol{\alpha}|}}{a_{|\mathbf{a}|}})$~---
функция, переводящая вектор, составленный из отношений соответствующих компонент векторов $\boldsymbol{\alpha}$ и $\mathbf{a}$, в скаляр.
\end{defin}
Функция $r$ позволяет сопоставить, вообще говоря, различным отношениям стандартного
отклонения зависимой переменной $y_i$ $i$-го объекта обучающей выборки и самого значения $y_i$
единственное число (аналогично и для $x_i$-й независимой переменной и ее стандартного отклонения).
Примерами такой функции могут являться среднее арифметическое
всех отношений или максимальное значение отношения, а конкретная функция выбирается
экспертом в зависимости от физического смысла задачи.
В настоящей работе предлагается выбирать значения стандартных отклонений так, чтобы
все значения соответствующих переменных были равны, поэтому функция $r$ может выбирать
любой из своих аргументов.
Каждый компонент вектора $\mathbf{T}^N_f(i)$ показывает, как относится стандартное отклонение
параметра $\hat{\omega}_i$, нормированное на значение этого параметра, к характерному стандартному
отклонению соответствующего элемента признакового описания, нормированного на значение этого
элемента. Например, если это отношение больше единицы, то погрешности определения коэффициента
растут быстрее погрешностей измерения параметра.
В частности, в искомой задаче восстановления дисперсионной зависимости для неизменной
относительной ошибки эксперимента:
\[
\mathbf{T}_f(i) = \Big\{ \frac{\frac{\sigma_{\omega_i}}{\hat{\omega}_i}}{\frac{\sigma_n}{n}}, \frac{\frac{\sigma_{\omega_i}}{\hat{\omega}_i}}{\frac{\sigma_{\lambda}}{\lambda}} \Big\}.
\]
Матрицу, столбцами которой являются векторы $\mathbf{T}_f(i) \mid i \in \{ 1, \dots, l_f \}$,
будем называть устойчивостью функции $f$ и обозначать $\mathbb{T}_f$.
Требуется исследовать зависимость устойчивости $\mathbb{T}_{\hat{f}}$ относительно
$\sigma_n$ и $\sigma_{\lambda}$.
\section{Алгоритм индуктивного порождения допустимых суперпозиций}
Условимся считать, что каждой суперпозиции $f$ сопоставлено дерево $\Gamma_f$,
эквивалентное этой суперпозиции и~строящееся следующим образом:
\begin{itemize}
\item В~вершинах $V_i$ дерева $\Gamma_f$ находятся соответствующие
порождающие функции $g_s, s = s(i)$.
\item Число дочерних вершин у некоторой вершины $V_i$ равно арности
соответствующей функции $g_s$.
\item Порядок смежных некоторой вершине $V_i$ вершин соотвествует порядку
аргументов соответствующей функции $g_{s(i)}$.
\item В~листьях дерева $\Gamma_f$ находятся свободные переменные $x_i$
либо числовые параметры $\omega_i$.
\item Дерево вычисляется снизу вверх. То есть, сначала подставляются
конкретные значения свободных переменных $x_i$,
затем вычисляются значения в~вершинах, все дочерние вершины которых~---
свободные переменные, и~так далее до тех пор, пока не останется
единственная вершина, бывшая корнем дерева. Эта вершина содержит
число, являющееся результатом вычисления суперпозиции в точке,
соответствующей $\mathbf{x} = \{ x_i \}$.
\end{itemize}
Таким образом, вычисление значения выражения $f$ в~некоторой точке с данным
вектором параметров $\boldsymbol{\omega} = \{ \omega_1, \omega_2, \dots, \omega_\eta\}$
эквивалентно подстановке соответствующих значений свободных переменных $x_i$
и параметров $\omega_i$ в~дерево $\Gamma_f$, где $x_i$ --- компоненты
вектора признакового описания объекта $\mathbf{x}$.
Из определения \ref{def:complexity} сложности суперпозиции
следует, что сложность $C(f)$ суперпозиции $f$ равна числу узлов в
дереве $\Gamma_f$.
Отметим важное свойство таких деревьев: каждое поддерево $\Gamma_f^i$
дерева $\Gamma_f$, соответствующее вершине $V_i$, также соответствует
некоторой суперпозиции, являющейся составляющей исходной суперпозиции $f$.
Будем обозначать такую суперпозицию, соответствующую вершине $V_i$, как
$f_{V_i}$.
Для примера рассмотрим дерево, соответствующиее суперпозиции
$f = \sin (\ln x_1) + \frac{x_2^3}{2}$ (см. рис \ref{fig:expr_tree_example}).
\begin{figure}[h]
\centering
\begin{tikzpicture}
\scalefont{4}
\tikzstyle{n} = [draw, inner sep=2pt, fill=red!20]
\textsc{•} \begin{dot2tex}[dot,options=-tmath,scale=0.4]
digraph G1 {
node [shape="circle",style="n"];
Plus [label="\bullet + \bullet"];
Sin [label="\sin \bullet"];
Ln [label="\ln \bullet"];
X1 [label="x_1"];
Frac [label="\div"];
Pow [label="\bullet^{\bullet}"];
X2 [label="x_2"];
N3 [label="3"];
N2 [label="2"];
Plus -> Sin;
Sin -> Ln;
Ln -> X1;
Plus -> Frac;
Frac -> Pow;
Frac -> N2;
Pow -> X2;
Pow -> N3;
}
\end{dot2tex}
\end{tikzpicture}
\caption{Дерево выражения $\sin (\ln x_1) + \frac{x_2^3}{2}$}
\label{fig:expr_tree_example}
\end{figure}
Здесь точками обозначены аргументы функций. Как видно, корнем дерева является
вершина, соответствующая операции сложения, которая должна быть выполнена
в~последнюю очередь. Операция сложения имеет два различных поддерева,
соответствующих двум аргументам этой операции. Заметим также, что здесь не
использованы операции типа <<разделить на два>> или <<возвести в~куб>>.
Вместо этого используются операции деления и~возведения в степень в~общем
виде, а в~данном конкретном дереве соответствующие аргументы зафиксированы
соответствующими константами.
\paragraph{Алгоритм порождения суперпозиций.} Сначала определим понятие
\emph{глубины суперпозиции}:
\begin{defin}
Глубина суперпозиции $f$~--- максимальная глубина дерева $\Gamma_f$.
\end{defin}
Теперь опишем итеративный алгоритм $\mathfrak{A^*}$, порождающий суперпозиции,
не содержащие параметров. Предложенный алгоритм породит любую суперпозицию
конечной глубины за конечное число шагов.
Пусть дано множество примитивных функций $G = \{ g_1, \dots, g_l \}$ и
множество свободных переменных $X = \{ x_1, \dots, x_n \}$. Для удобства будем
исходить из предположения, что множество $G$ состоит только из унарных
и~бинарных функций, и~разделим его соответствующим образом на два подмножества:
$G = G_b \cup G_u \mid G_b = \{ g_{b_1}, \dots, g_{b_k} \}, G_u = \{ g_{u_1}, \dots, g_{u_l} \}$,
где $G_b$~--- множество всех бинарных функций, а $G_u$~--- множество всех
унарных функций из $G$. Потребуем также наличия $\text{id}$ в~$G_b$.
\begin{algo}
Алгоритм $\mathfrak{A^*}$ итеративного порождения суперпозиций.
\end{algo}
\begin{enumerate}
\item Перед первым шагом зададим начальные значения множества
$\mathcal{F}_0$ и вспомогательного индексного множества $\mathcal{I}$,
служащего для запоминания, на какой итерации впервые встречена
каждая суперпозиция:
\[
\mathcal{F}_0 = X,
\]
\[
\mathcal{I} = \{ (x, 0) \mid x \in X \}.
\]
\item Для множества $\mathcal{F}_i$ построим вспомогательное множество $U_i$,
состоящее из суперпозиций, полученных в результате применения функций
$g_u \in G_u$ к~элементам $\mathcal{F}_i$:
\[
U_i = \{ g_u \circ f \mid g_u \in G_u, f \in \mathcal{F}_i \}.
\]
\item Аналогичным образом построим вспомогательное множество $B_i$ для
бинарных функций $g_b \in G_b$:
\[
B_i = \{ g_b \circ (f, h) \mid g_b \in G_b, f, h \in \mathcal{F}_i \}.
\]
\item Обозначим $\mathcal{F}_{i+1} = \mathcal{F}_i \cup U_i \cup B_i$.
\item Для каждой суперпозиции $f$ из $\mathcal{F}_{i+1}$ добавим пару
$(f, i+1)$ в~множество $\mathcal{I}$, если суперпозиция $f$ еще там
не присутствует.
\item Перейдем к~следующей итерации, п. 2.
\end{enumerate}
Тогда $\mathcal{F} = \cup_{i=0}^\infty \mathcal{F}_i$~--- множество всех
возможных суперпозиций конечной длины, которые можно построить из
данного множества примитивных функций.
Вспомогательное множество $\mathcal{I}$ позволяет запоминать, на какой
итерации была впервые встречена каждая суперпозиция. Это необходимо, так
как каждая суперпозиция, впервые порожденная на $i$-ой итерации, будет
порождена также и~на любой итерации после $i$. Одной из возможностей
избежать необходимости в этом множестве является построение
$\mathcal{F}_{i+1}$ как $\mathcal{F}_{i+1} = U_i \cup B_i$ (без
$\mathcal{F}_i$), а множества $U_i$ и $B_i$ строить следующим образом:
\[
U_i = \{ g_u \circ f \mid g_u \in G_u, f \in \cup_{j=0}^{i} \mathcal{F}_j \},
\]
\[
B_i = \{ g_b \circ (f, h) \mid g_b \in G_b, f, h \in \cup_{j=0}^{i} \mathcal{F}_j \}.
\]
Алгоритм $\mathfrak{A^*}$ очевидным образом обобщается на случай, когда
множество $G$ содержит функции произвольной (но конечной) арности.
Действительно, для такого обобщения достаточно строить аналогичным образом
вспомогательные множества для этих функций, а именно: для множества функций
$G_n$ арности $n$ построим вспомогательное множество $H_i^n$ вида:
\[
H_i^n = \{ g \circ (f_1, f_2, \dots, f_n) \mid g \in G_n, f_j \in \mathcal{F}_i \}.
\]
В~этих обозначениях $U_i \equiv H_i^1$, а $B_i \equiv H_i^2$.
Тогда множество $\mathcal{F}_{i+1} = \mathcal{F}_i \cup_{n=0}^{n_{max}} H_i^n$,
где $n_{max}$~--- максимальное значение арности функций из $G$.
\begin{theorem}
Алгоритм $\mathfrak{A^*}$ действительно породит любую конечную суперпозицию
за конечное число шагов.
\end{theorem}
\begin{Proof}
Чтобы убедиться в~этом, найдем номер итерации, на котором будет порождена
некоторая произвольная конечная суперпозиция $f$. Чтобы найти этот номер,
пронумеруем вершины графа $\Gamma_f$ по следующим правилам:
\begin{itemize}
\item Если это вершина со свободной переменной, то она имеет номер $0$.
\item Если вершина $V$ соответствует унарной функции, то она имеет номер
$i+1$, где $i$~--- номер дочерней для этой функции вершины.
\item Если вершина $V$ соответствует бинарной функции, то она имеет номер
$i+1$, где $i = \max (l, r)$, а $l$ и $r$ --- номера, соответственно,
первой и второй дочерней вершины.
\end{itemize}
Нумеруя вершины графа $\Gamma_f$ таким образом, мы получим номер вершины,
соответствующей корню графа. Это и будет номером итерации, на которой получена
суперпозиция~$f$.
Иными словами, для любой суперпозиции мы можем указать конкретный номер
итерации, на котором она будет получена, что и~требовалось.
\end{Proof}
В~рассмотренных ранее методах построения суперпозиций \cite{Zelinka2008}
необходимо было самостоятельно следить за тем, чтобы в~ходе работы алгоритма
не возникало <<зацикленных>> суперпозиций типа $f(x, y) = g (f(x, y), x, y)$.
Заметим, что в~предложенном алгоритме $\mathfrak{A^*}$ такие суперпозиции
не могут возникнуть по построению.
\subsection{Порождение моделей с параметрами.}
Алгоритм $\mathfrak{A^*}$ в~таком виде не позволяет получать выражения, содержащие численные
параметры $\boldsymbol{\omega}$ суперпозиции $f(\boldsymbol{\omega}, \mathbf{x})$.
Покажем, однако, на примере конструирования множеств $U_i$ и~$B_i$, как
исходный алгоритм $\mathfrak{A^*}$ может быть расширен путем введения параметров:
\[
U_i = { g_u \circ (\alpha f + \beta) },
\]
\[
B_i = { g_b \circ (\alpha f + \beta, \psi h + \phi) }.
\]
Будем обозначать этот расширенный алгоритм как $\mathfrak{A}$. Здесь параметры
$\alpha, \beta$ зависят только от комбинации $g_u, f$ (или $g_b, f, h$ для
$\alpha, \beta, \psi, \phi$). Соответственно, для упрощения их индексы опущены.
Иными словами, мы предполагаем, что каждая суперпозиция из предыдущих итераций
входит в~следующую, будучи умноженной на некоторой коэффициент и~с константной
поправкой.
Очевидно, при таком добавлении параметров $\alpha, \beta, \psi, \phi$
мы не изменяем мощности получившегося множества суперпозиций, поэтому
алгоритм и~выводы из него остаются корректными. В~частности, исходный алгоритм
является частным случаем данного при
$\alpha \equiv \psi \equiv 1, \beta \equiv \phi \equiv 0$.
Переменные $\alpha, \beta, \psi, \phi$ являются параметрами модели. В
практических приложениях можно оптимизировать значения этих параметров у
получившихся суперпозиций, например, алгоритмом Левенберга-Марквардта
\cite{Marquardt1963Algorithm, more:78}.
Заметим также, что такая модификация алгоритма позволяет нам получить единицу,
например, для построения суперпозиций типа $\frac{1}{x}$:
$1 = \alpha\ id\ x + \beta \mid \alpha = 0, \beta = 1$.
Отдельно подчеркнем, что параметры $\boldsymbol{\omega}$ у различных
суперпозиций различны. Однако, так как каждый из параметров зависит только
от соответствующей комбинации функций, к которым он относится, конкретные
значения параметров не учитываются при поиске одинаковых суперпозиций.
Иными словами, при тестировании суперпозиций на равенство сравниваются лишь
структуры соответствующих им деревьев и значения в узлах, соответствующих
функциям и свободным переменным.
Заметим, что и~этот алгоритм очевидным образом обобщается на случай
множества $G$, содержащего функции произвольной арности.
\subsection{Множество допустимых суперпозиций}
Предложенный выше алгоритм позволяет получить действительно все возможные
суперпозиции, однако, не все они будут пригодны в~практических приложениях:
например, $\ln x$ имеет смысл только при $x > 0$, а $\frac{x}{0}$ не имеет
смысла вообще никогда. Выражения типа $\frac{x}{\sin x}$ имеют смысл только
при $x \neq \pi k$.
Таким образом, необходимо введение понятия множества \emph{допустимых}
суперпозиций~--- то есть, таких суперпозиций, которые в~условиях данной
задачи корректны.
\begin{defin}
Допустимая суперпозиция $f$~--- такая суперпозиция, значение которой
определено для любой комбинации значений свободных переменных, область
значений $\mathbb{X}$ которых определяется конкретной задачей,
$\mathbb{X} \subset \mathbb{R}^n$ где $n$~--- число свободных переменных.
\end{defin}
Одним из способов построения только допустимых суперпозиций является
модификация предложенного алгоритма таким образом, чтобы отслеживать
совместность областей определения и~областей значения соответствующих
функций в~ходе построения суперпозиций. Для свободных переменных это,
в свою очередь, означает необходимость задания областей значений
$\mathbb{X}$ пользователем при решении конкретных задач.
Таким образом, можно сформулировать очевидное \emph{достаточное условие
недопустимости} суперпозиции:
\begin{defin}
\label{defin:suff_not_allowed}
Достаточное условие недопустимости суперпозиции $f$: в~соответствующем дереве
$\Gamma_f$ хотя бы одна вершина $V_i$ имеет хотя бы одну дочернюю вершину
$V_j$ такую, что область значений функции $g_{s(j)}$ шире, чем область
определения функции $g_{s(i)}$:
\[
\exists i, j : V_i \in \Gamma_f, V_j \in \Gamma_f \wedge \exists \kappa :
\kappa \in \mathcal{E} g_{s(j)} \wedge \kappa \notin \mathcal{D} g_{s(i)}.
\]
\end{defin}
Говоря, что область значений функции $f$ шире области определения функции
$g$, мы имеем ввиду, что существует по крайней мере одно значение функции
$f$, не входящее в область определения функции $g$.
Подчеркнем, что, хотя свободные переменные могут принимать, например, все
значения из $\mathbb{R}$, выбором множества $\mathbb{X}$ можно обеспечить
возможность использования их в качестве аргументов функций с более узкой,
чем $\mathbb{R}$, но не менее узкой, чем $\mathbb{X}$, областью определения,
если это не противоречит данной выборке.
Для построения множества допустимых суперпозиций достаточно построить
множество всех возможных суперпозиций при помощи алгоритма $\mathfrak{A}$,
а затем удалить из этого множества все суперпозиции, не удовлетворяющие
сформулированному признаку.
\begin{comment}
\subsection{Применимость в задачах классификации}
Предложенный алгоритм $\mathfrak{A}$ может быть применен и для решения
задач классификации.
Выделим подмножества $G_\mu \subset G$, соответствующие различным дискретным
$\text{cod}$:
$g \in G$:
\[
G_\mu = \{ g \mid \text{cod} g = \mathbb{Y}_\mu \},
\]
где $\mathbb{Y}_\mu$~--- различные дискретные множества, соответствующие
различным наборам классов.
Тогда суперпозиции, область значений которых соответствует $\mathbb{Y}_\mu$
при фиксированном $\mu$, и являются порожденными алгоритмом $\mathfrak{A}$
классификаторами для класса $\mathbb{Y}_\mu$. Таким образом, достаточно отобрать
из всех порожденных суперпозиций $f$ те, которые имеют в корневой вершине
дерева $\Gamma_f$ функцию $g \in G_\mu$.
\end{comment}
\subsection{Количество возможных суперпозиций}
Оценим количество суперпозиций, получаемых после каждой итерации алгоритма
$\mathfrak{A}$. Очевидно, с учетом вышеупомянутых оговорок касательно сравнения
параметризованных суперпозиций, это количество равно количеству для алгоритма
$\mathfrak{A^*}$.
Итак, пусть дано $n$ независимых переменных: $| X | = n$, а мощность
множества $G$ распишем через мощности его подмножеств функций соответствующей
арности: $| G_1 | = l_1, | G_2 | = l_2, \dots, | G_p | = l_p$. На нулевой
итерации имеем $P_0 = n$ суперпозиций.
На первой итерации дополнительно порождается:
\[
P_1 = l_1 n + l_2 n^2 + \dots + l_n n^p = \sum_{i=1}^p l_i P_0^i,
\]
и суммарное число суперпозиций после первой итерации:
\[
\hat{P}_1 = P_1 + P_0 = \sum_{i=1}^p l_i P_0^i + P_0.
\]
Как было замечено ранее, суперпозиции, порожденные на $k$-ой итерации, будут
также порождены и~на любой следующей после $k$ итерации, поэтому суммарное
число суперпозиций после второй итерации будет равно:
\[
\hat{P}_2 = \sum_{i=1}^p l_i \hat{P}_1^i.
\]
И вообще, после $k$-ой итерации будет порождено:
\[
\hat{P}_k = \sum_{j=1}^p l_i \hat{P}_{k-1}^i.
\]
Оценим порядок роста количества функций, порожденных после $k$-ой итерации.
\begin{theorem}
Пусть в множестве примитивных функций $G$ содержится $l_p$ функций арности
$p > 1$ и ни одной функции арности $p + k \mid k > 0$, и имеется $n > 1$
независимых переменных. Тогда справедлива следующая оценка количества
суперпозиций, порожденных алгоритмом $\mathfrak{A}$ после $k$-ой итерации:
\[
| \mathcal{F}_k | = \mathcal{O} (l_p^{\sum_{i=0}^{k-1} p^i} n^{p^k}).
\]
\end{theorem}
\begin{Proof}
Оценим сначала порядок роста для случая, когда есть лишь одна $m$-арная
функция и~$n$ свободных переменных.
После первой итерации алгоритма будет порождено $n^m + n$ суперпозиций.
После второй~--- $(n^m + n)^m + n^m + n$, что можно оценить как
$(n^m)^m = n^{m^2}$. И вообще, после $k$-ой итерации количество
суперпозиций можно оценить как $n^{m^k}$.
Видно, что для оценки скорости роста количества порожденных суперпозиций
можно учитывать только функции с наибольшей арностью.
Рассмотрим теперь случай, когда имеется не одна функция арности $m$, а
$l_m$ таких функций. Тогда на первой итерации порождается $l_m n^m + n$
суперпозиций, на второй:
\[
l_m (l_m n^m + n)^m + l_m n^m + n \approx l_m^{m+1} n^{m^2},
\]
на третьей, с учетом этого приближения:
\[
l_m (l_m^{m+1} n^{m^2})^m = l_m l_m^{m(m+1)} n^{m^3} = l_m^{m^2 + m + 1} n^{m^3}.
\]
И вообще, скорость роста количества порожденных суперпозиций можно оценить
как:
\[
| \mathcal{F}_k | = \mathcal{O} (l_m^{\sum_{i=0}^{k-1} m^i} n^{m^k}).
\]
Таким образом, получаем оценку в общем случае, когда в множестве $G$ содержится
$l_p$ функций арности $p$ и ни одной функции арности $p + k \mid k > 0$:
\[
| \mathcal{F}_k | = \mathcal{O} (l_p^{\sum_{i=0}^{k-1} p^i} n^{p^k}).
\]
\end{Proof}
\subsection{Алгоритм итеративного стохастического порождения суперпозиций}
Несмотря на то, что построенный ранее итеративный алгоритм $\mathfrak{A}$ порождения
суперпозиций позволяет получить за конечное число шагов произвольную
суперпозицию, для практических применений он непригоден в~связи с чрезмерной
вычислительной сложностью, как и~любой алгоритм, реализующий полный перебор.
Вместо него предлагается использовать стохастические алгоритмы и~ряд эвристик,
позволяющих на практике получать за приемлемое время результаты,
удовлетворяющие заранее заданным условиям. Ниже представлен
практически реализуемый вариант алгоритма $\mathfrak{A}$, который и был использован
в~вычислительном эксперименте.
Сначала опишем вспомогательный алгоритм случайного порождения суперпозиции:
\begin{algo}
\label{algo:RF}
Алгоритм случайного порождения суперпозиции $\mathcal{RF}$.
Вход:
\begin{itemize}