Application of high-performance computing to solve the Cauchy problem with the fractional Riccati equation using an nonlocal implicit finite-difference scheme
- Authors: Tverdyi D.A.1, Parovik R.I.1
-
Affiliations:
- Institute for Cosmophysical Research and Radio Wave Propagation FEB RAS
- Issue: Vol 46, No 1 (2024)
- Pages: 103-117
- Section: Information and computing technologies
- URL: https://journals.rcsi.science/2079-6641/article/view/256412
- DOI: https://doi.org/10.26117/2079-6641-2024-46-1-103-117
- EDN: https://elibrary.ru/GNJWJM
- ID: 256412
Cite item
Full Text
Abstract
The article presents a study of the computational efficiency of a parallel version of a numerical algorithm for solving the Riccati equation with a fractional variable order derivative of the Gerasimov-Caputo type. The numerical algorithm is a nonlocal implicit finite-difference scheme, which reduces to a system of nonlinear algebraic equations and is solved using a modified Newton method. The nonlocality of the numerical scheme creates a high computational load on computing resources, which creates the need to implement efficient parallel algorithms for solving them. The numerical algorithm studied for efficiency is implemented in the C language due to its versatility when working with memory. Parallelization was carried out using OpenMP technology. A series of computational experiments are being carried out on the NVIDIA DGX STATION computing server (Institute of Mathematics named after V.I. Romanovsky, Tashkent, Uzbekistan) and the HP Pavilion Gaming Laptop Z270X, where the Cauchy problem for the fractional Riccati equation with non-constant coefficients was solved. Based on the average computation time, the speedup, efficiency and cost of the algorithm are calculated. From the data analysis it is clear that the OpenMP parallel software implementation of the non-local implicit finite-difference scheme shows an acceleration of 9-12 times, depending on the number of CPU cores involved.
Full Text
Введение
Численное решение уравнений при математическом моделировании динамических процессов может создавать высокую вычислительную нагрузку на узлы ЭВМ. В частности при решении задач возникающих в дробной динамике может возникать нелокальность и даже переменная нелокальность т.е. зависимостью текущего значения решения от конечного числа предыдущих на временном отрезке. Данное явление называют эффектом памяти [?, ?, ?]. Что будет серьезно замедлять вычисления, так как для его корректного обсчета в алгоритме могут возникать строго последовательные участки, которые нельзя распараллелить. Определение и математическое описание эффекта памяти, также эквиваленитное понятиям: эредитарности, запаздывания, наследственности, было дано В. Вольтерра в 1912 г. [?]. Память с точки зрения математики, может описываться с помощью дробной производной. На сегодняшний день существуют самые разные определения понятия оператора дробного дифференцирования: Лиувилля, Римана-Лиувилля, Вейля, Грюнвальда-Летникова и многие другие. Причём для некоторых из них существуют ещё большие обобщения на случай VO (variable order) порядка [?, ?], что в свою очередь приводит к переменной нелокальности. Обобщение известных и разработка новых математических моделей с учетом эредитарности позволяет заметно уточнить известные результаты [?, ?]. На сегодняшний день уже во многих областях науки и техники успешно применяются производные и интегралы нецелых порядков [?, ?].
Так например, в данном исследовании рассматривается прямая задача Коши для нелинейного дробного уравнения Риккати с непостоянными коэффициентами, которая разрешается численно с помощью методов конечно-разностных схем [?]. Память описывается с помощью оператора дробной производной типа Герасимова-Капуто переменного порядка по времени. Такие модели еще называют нелокальными по времени [?]. Одним из способов решения является нелокальная явная конечно-разностная схема (EFDS). И с помощью технологий OpenMP удалось уменьшить в 3-5 раз время вычисления по EFDS [?]. Другой способ заключается в использовании неявных конечно-разностно схем (IFDS) и методов их решения [?].
В данной работе представлен анализ эффективности параллельной программной реализации решения IFDS методом Ньютона, с использованием программно-аппаратной архитектуры OpenMP – открытого стандарта программного интерфейса для параллельных систем с общей памятью [?]. OpenMP является набором директив для компиляторов, библиотек функций и переменных окружения, и реализует параллельные вычисления с помощью идеи многопоточности – нескольких параллельно выполняемых задач CPU потоках. В качестве основного языка программирования использован язык высокого уровня С, из-за его универсальности, широкими возможностями по работе с памятью и официальной поддержке работы с OpenMP [?]. Анализ проводится на основе данных полученных в результате серии вычислительных экспериментов с использованием разработанного программного кода. Вычисления проводились на вычислительном сервере NVIDIA DGX STATION, расположенном в институте математики имени В.И. Романовского АН РУз, а также персональном ноутбуке.
План исследования статьи следующий: Сначала представляется математическое описание задачи. Дается определение дробной производной типа Герасимова-Капуто переменного порядка и приводится задача Коши для дробного уравнения Риккати; Далее описывается нелокальная неявная конечно-разностная схема (IFDS), на примере дробного уравнения Риккати. Приводится метод Ньютона для решения IFDS и критерий сходимости метода; Даются определения понятий необходимых для анализа. Приводятся в графиках и таблицах результаты анализа эффективности параллельной OpenMP реализации IFDS на основе данных серии вычислений, в сравнении с лучшей последовательной реализацией IFDS.
Постановка задачи
Вопросами о возможности обобщения операций интегрирования и взятия производной нецелого порядка задавались ещё Г. Лейбниц, Г. Лопиталь и Я. Бернули в конце 17 века. В частности, их интересовал вопрос о смысле и значении теоремы о дифференцировании произведения двух функций , при нецелом p значении. Тема активно развивается, с тех пор и по наши дни. К настоящему моменту, существует не один десяток определений дробного дифференцирования, имеющих тот или иной смысл, и находящих свое примирение. Например, Лиувилля, Римана-Лиувилля, Вейля, Грюнвальда-Летникова и многие другие. Причем для некоторых из них существуют обобщения на случай VO (переменного) порядка [?, ?]. Можно отметить труд Самко С., Килбаса А., Маричева О. от 1987 года <<Интегралы и производные дробного порядка и некоторые их приложения>> [?], который подводит итоги исследования данного направления математики за последние 300 лет, и позволяет ознакомится с историей возникновения дробно-дифференциального исчисления.
В этом разделе мы рассмотрим постановку задачи Коши, численные способы решения которой, были ранее подробно изучены автором в работах [?, ?, ?]. Отметим, что дробное исчисление тесно взаимосвязано с понятием наследственности или памяти, рассматриваемой системы, когда текущее ее состояние зависит от конечного числа предыдущих состояний.
Определение [1] Дробной производной типа Герасимова-Капуто [?] где – переменный порядок дробной производной, а функция будем называть дробную производную вида:
(1)
где производная , а – текущее время моделирования, – общее время моделирования, а – гамма-функция Эйлера.
Данное обобщение (1) на случай известной дробной производной Герасимова-Капуто [?, ?] проведено авторами в работе [?]. Согласно [?] можно обобщить (1) на случай .
Рассмотрим задачу Коши [?] для квадратично нелинейного уравнения Риккати с дробной производной переменного порядка [?]:
(2)
где – оператор VO вида (1); – время моделирования; – текущее время моделирования; – неизвестная функция решения; , , – заданные функции, определяющие значения коэффициентов в каждый момент времени.
Замечание [1] В работе [?] рассмотрено уравнение (2) с более общей правой частью . Такая задача уже не обязательно представляет уравнение Риккати, и может описывать широкий класс динамических процессов с переменной памятью в насыщенных средах [?]. Это результат использовался нами в работах [?, ?, ?] при математическом моделировании процессов объёмной активности радона (RVA), где каждый член (2) будет иметь конкретный физический смысл.
Схема численного решения
Решение задачи (2) будет будет даваться с помощью теории конечно-разностных схем [?, ?, ?]. Самое сложное в переходе от дробного уравнения в (2) к его дискретному представлению. В работе [?, p.7] нами предложен несколько вариантов такого перехода для VO Герасимова-Капуто (1) при , в том числе для случая, когда в (1) подразумевается, что интегрирование производится слева.
Определение [2] Нелокальная неявная конечно-разностная схема (IFDS) (от англ. Implicite Finite-Difference Sheme) примет вид:
(3)
где – начальное условие задачи Коши (2); C – известная константа; – шаг дискретизации равномерной сетки; N – число узлов сетки; – номер узла вычислительной сетки; , , – сеточные аналоги функций коэффициентов задачи Коши.
Достоверность вычислений с применением (3) обоснована использованием теории дробного исчисления, методов вычислительной математики, функционального анализа, а также строгостью математических рассуждений. Отметим, что в работе (см. [?, p.7-10]) сформулированы и доказаны ряд ключевые теоремы о сходимости и устойчивости численной схемы IFDS, но в более общем случае при .
IFDS (3) представляет собой систему нелинейных алгебраических уравнений, которую будем решать модифицированным методом Ньютона (MNM) (от англ. Modification Newton Method). Метод начинается с представления схемы (3) как итерационной функции:
(4)
для которой составляется итерационный процесс:
(5)
где
- m – номер (или шаг) итерационного процесса;
- – вектор значений функции решения во всех узлах сетки известного на итерационном m (текущем) шаге;
- – значения вычисляемые по (4) с учетом значений решения на m шаге;
- – начальное приближение на самом первом шаге , вектор необходимый для старта (5) процесса. Некое предполагаемое решение (3) на первом шаге;
- – якобиан представляет собой нижнетреугольную матрицу вида:
(6)
на каждой m итерации цикла.
Замечание [2] Итерационный процесс (5) не сработает, если будет иметь место сингулярность в нуле (точка, где функция не определёна или нестабильна) для итерационной функции (4).
Что касается сходимости, то стоит отметить что:
т.е. определитель у матрицы Якоби (6) должен быть отличен от нуля, потому что только тогда для якобиана существует обратная матрица , т.е. матрица Якоби (6) – невырожденная. И только в таком случае итерационный процесс (5) будет локально сходится порядком .
В качестве начального приближения , в самом простом случае, можно взять вектор составленный из значений – начального условия задачи Коши (3). Однако лучше будет использовать последнее значение вычисленное, например, другим методом (схемой EFDS ) [?, ?], как на рисунке 1, при условии её сходимости [?]. Это немного ускорит сходимость MNM, а также решит вопрос с сингулярностью, т.к. функция в точке будет определена, и сама по себе является некоторым возмущением.
Определение [3] Итерационный процесс (5) продолжается до тех пор пока не будет достигнута заданная точность решения, характеризуемая . Критерием выхода из цикла будет G наименьшая ошибка, полученного решения, такая что .
Анализ вычислительной эффективности
Отметим, что в рамках анализа вычислительной эффективноси использовались следующие вычислительные системы. Вычислительный сервер NVIDIA DGX STATION с характеристиками: CPU: Intel(R) Xeon(R) CPU E5-2698 v4 @ 2.20GHz(1.20GHz) (20 CPUs, 40 Threads); RAM: 263855 Mb. Вычислительный сервер находится в Институте математики имени В.И. Романовского АН Уз, (г. Ташкент, Узбекистан). Также в экспериментах использовался ноутбук HP Pavilion Gaming Laptop Z270X 15-dk0xxx с характеристиками: CPU: Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (4 CPUs, 8 Threads); RAM: 8192 Mb.
Анализ вычислительной эффективности будем проводить на основе данных по замерам времени вычисления, полученным при множестве запусков исследуемых на эффективность алгоритмов. Из леммы Брента [?, ?, ?] следует что любой алгоритм реализованный для выполнения в системах типа PRAM можно модифицировать таким образом, что его можно выполнить в системах PRAM с меньшим числом потоков. Здесь PRAM – параллельная машина с произвольным доступом к памяти, объединяющая потоков (ядер или CPU), общую память и устройство управления. Это одна из самых распространенных моделей вычислительных систем [?]. Из данной леммы следует, что мы можем сравнивать время вычисления (5) на системах с: одним ядром CPU (последовательный алгоритм) и разным количеством ядер (параллельный алгоритм).
Для замеров времени вычисления рассмотрим тестовый пример, на основе модели (2) со следующими параметрами: ; ; ; ; ; . Результат вычисления по которому представлен на рисунке 1 ниже:
Рис. 1. Результат вычисления итерационной процедуры MNM (5) для IFDS различными алгоритмами
[Figure 1. Calculation result of iterative procedure MNM (5) for IFDS by different algorithms ]
Исследуем, насколько быстрее выполняются алгоритмы реализующие итерационный процесс (5), для чего обратимся к таким понятиям как среднее время работы, ускорение, эффективность и стоимость алгоритма.
В силу того, что мы будем получать немного различные при каждом новом численном эксперименте, а количество экспериментов конечно, то можно считать случайной величиной с некоторой функцией распределения. Тогда для вычисления и прибегнем к понятию математического ожидания (среднее значение) [?] для дискретной случайной величины:
(7)
где i – индекс эксперимента; L – объем выборки.
Рис. 2. Среднее E(·) время расчёта в секундах, при разном c – числе потоков CPU
[Figure 2. Average E(·) calculation time in seconds for different c – number of CPU threads ]
Далее в таблице представим данные по среднее (7) из выборки в значений при разном количестве задействованных c потоков CPU, где:
- пусть – число узлов расчётной сетки для (3), характеризует сложность алгоритма;
- – время вычислений по задаче сложностью N последовательным (Sequential) алгоритмом;
- – время вычислений по задаче сложностью N параллельным OpenMP алгоритмом, на машине потоками CPU;
Table 1: Затраченные время (сек.) и память RAM (Mb) для расчёта итерационной процедуры MNM (5) для IFDS (3) алгоритмом на основе OpenMP [Time spent (sec.) and RAM memory (Mb) for calculating the iterative procedure MNM (5) for IFDS (3) by an algorithm based on OpenMP.]
IFDS | Notebook | Super PC | |||||
i | T1(N) | T6(N) | T1(N) | T6(N) | T17(N) | T28(N) | T39(N) |
1 | 96.74 | 30.06 | 98.2 | 21.32 | 7,86 | 11.06 | 8.3 |
2 | 88.58 | 30.28 | 97.24 | 21.26 | 8.0 | 10.86 | 8.3 |
3 | 94.07 | 29.09 | 98.02 | 21.37 | 7.86 | 10.78 | 7.46 |
4 | 97.04 | 30.67 | 97.71 | 21.2 | 7.9 | 11.02 | 8.37 |
5 | 91.13 | 30.25 | 97.38 | 20.86 | 8.19 | 10.93 | 8.35 |
6 | 95.19 | 30.74 | 99.20 | 20.94 | 7.96 | 10.86 | 8.49 |
7 | 93.50 | 30.74 | 96.96 | 21.0 | 7.99 | 10.91 | 8.5 |
8 | 93.73 | 30.91 | 97.1 | 21.04 | 7.87 | 10.78 | 8.39 |
9 | 92.35 | 29.89 | 97.5 | 21.84 | 8.05 | 10.88 | 8.3 |
10 | 93.00 | 30.71 | 98.54 | 20.81 | 7.93 | 10.83 | 8.4 |
E(T) | 93.53 | 30.34 | 97.78 | 21.16 | 7.961 | 10.89 | 8.286 |
RAM | 24.08 |
Теперь с использованием данных о времени потраченного на выполнение кода мы можем исследовать эффективность параллельного алгоритма. Под эффективностью понимается оптимальное соотношение в координатах: ускорение вычислений – объём занимаемой RAM памяти, по сравнению с последовательной версией алгоритма. Ускорение определяется формулой:
(8)
На основе которой можно определить эффективность от распараллеливания:
(9)
Результаты вычисления по формулам (8) и (9) представлены на рис. 3 и рис. 4 соответственно:
Рис. 3. Ускорение Ac(N) при разном c – числе потоков CPU
[Figure 3. Acceleration Ac(N) at different c – number of CPU threads ]
Рис. 4. Эффективность Vc(N) при разном c – числе потоков CPU
[Figure 4. Efficiency Vc(N) at different c – number of CPU threads ]
Стоимостно–оптимальный показатель на рис. 5, можно определить как произведение количества используемых потоков и времени решения параллельном алгоритмом, пропорциональной сложности наилучшего последовательного алгоритма. Данный показатель определяется формулой:
Рис. 5. Стоимостно–оптимальный показатель COc(N) при разном c – числе потоков CPU
[Figure 5. Cost-optimal COc(N) for different c – number of CPU threads ]
Заключение
Из результатов анализа эффективности параллельного OpenMP алгоритма IFDS видно, что имеет место существенный прирост скорости вычисления, но при увеличении числа потоков для параллельной обработки, их эффективность заметно снижается. При одинаковых параметрах численного эксперимента обе вычислительные системы выдают искомый результат за приблизительно равное время вычисления. Однако наибольшая эффективность достигается при использовании 10-15 потоков. Из анализа данных видно, что OpenMP параллельная программная реализация IFDS показывает ускорение работы от 9 - 12 раз в зависимости от количества задействованных ядер CPU.
Благодарности
Авторы выражают особую благодарность д.ф.-м.н., проф., Хайотову Абдулло Рахмоновичу за оказанную помощь при организации стажировки в Институте математики им. В.И. Романовского Академии наук Республики Узбекистан.
Авторы выражают особую благодарность к.ф.-м.н., Болтаеву Азизу Кузиевичу за оказанную помощь при организации работ на вычислительном сервере NVIDIA DGX STATION в Институте математики им. В.И. Романовского Академии наук Республики Узбекистан.
Аббревиатуры
CPU | Central Processing Unit |
OpenMP | Open Multi-Processing |
GPU | Graphics Processing Unit |
CUDA | Compute Unified Device Architecture |
EFDS | Explicit Finite-difference Method |
IFDS | Implicit Finite-difference Method |
RVA | Radon Volumetric Activity |
NM | Newton Method |
RAM | Random Access Memory |
PC | Personal Computer |
PRAM | Parallel Random Access Machine |
About the authors
Dmitrii A. Tverdyi
Institute for Cosmophysical Research and Radio Wave Propagation FEB RAS
Email: romanparovik@gmail.com
ORCID iD: 0000-0001-6983-5258
Ph. D. (Phys. & Math.), Researcher, Laboratory of Electromagnetic Radiation
Russian Federation, 684034, Paratunka, Mirnaya st., 7Roman I. Parovik
Institute for Cosmophysical Research and Radio Wave Propagation FEB RAS
Author for correspondence.
Email: romanparovik@gmail.com
ORCID iD: 0000-0002-1576-1860
D. Sci. (Phys. & Math.), Associate Professor, Leading Researcher at the Laboratory for Modeling Physical Processes
Russian Federation, 684034, Paratunka, Mirnaya st., 7References
- Uchaikin V. V. Fractional Derivatives for Physicists and Engineers. Vol. I. Background and Theory Berlin Springer 2013 373 978-3-642-33911-0 https://doi.org/10.1007/978-3-642-33911-0DOI: 10.1007/978-3-642-33911-0
- Нахушев А. М. Дробное исчисление и его применение Москва Физматлит 2003 272 5-9221-0440-3
- Parovik R. I. Mathematical models of oscillators with memory Oscillators-Recent Developments 2019 3–21 https://doi.org/10.5772/intechopen.81858DOI: 10.5772/intechopen.81858
- Volterra V. Sur les équations intégro-différentielles et leurs applications Acta Mathematica 1912 35 1 295–356 https://doi.org/10.1007/BF02418820DOI: 10.1007/BF02418820
- Patnaik S., Hollkamp J. P., Semperlotti F. Applications of variable-order fractional operators: a review Proceedings of the Royal Society A 2020 476 2234 20190498 https://doi.org/10.1098/rspa.2019.0498DOI: 10.1098/rspa.2019.0498
- Ortigueira M. D., Valerio D., Machado J. T. Variable order fractional systems Communications in Nonlinear Science and Numerical Simulation 2019 71 231–243 https://doi.org/10.1016/j.cnsns.2018.12.003DOI: 10.1016/j.cnsns.2018.12.003
- Petras I. Fractional-order nonlinear systems: modeling, analysis and simulation Berlin, Germany Beijing and Springer-Verlag 2011 218 9783642181009
- Sun H., Chang A., Zhang Y., Chen W. A review on variable-order fractional differential equations: mathematical foundations, physical models, numerical methods and applications Fractional Calculus and Applied Analysis 2019 22 1 27–59 https://doi.org/10.1515/fca-2019-0003DOI: 10.1515/fca-2019-0003
- Rossikhin Y. A., Shitikova M. V. Application of fractional calculus for dynamic problems of solid mechanics: novel trends and recent results Applied Mechanics Reviews 2010 63 1 1–5 https://doi.org/10.1115/1.4000563DOI: 10.1115/1.4000563
- Mainardi F. Fractional Calculus and Waves in Linear Viscoelastisity: An Introduction to Mathematical Models. 2nd edition Singapore World Scientific Publishing Company 2022 625 1783263989 https://doi.org/10.1142/p926DOI: 10.1142/p926
- Tverdyi D. A., Parovik R. I. Investigation of Finite-Difference Schemes for the Numerical Solution of a Fractional Nonlinear Equation Fractal and Fractional 2022 6 1:23 1–27 https://doi.org/10.3390/fractalfract6010023DOI: 10.3390/fractalfract6010023
- Volterra V. Theory of functionals and of integral and integro-differential equations New York Dover publications 1959 226
- Tverdyi D. A., Parovik R. I., Hayotov A. R., Boltaev A. K. Parallelization of a Numerical Algorithm for Solving the Cauchy Problem for a Nonlinear Differential Equation of Fractional Variable Order Using OpenMP Technology Bulletin KRASEC. Physical and Mathematical Sciences 2023 43 2 87–110 https://doi.org/10.26117/2079-6641-2023-43-2-87-11DOI: 10.26117/2079-6641-2023-43-2-87-11
- Tverdyi D. A., Parovik R. I. Hybrid GPU-CPU efficient implementation of a parallel numerical algorithm for solving the Cauchy problem for a nonlinear differential Riccati equation of fractional variable order Mathematics 2023 11 15:3358 1–21 https://doi.org/10.3390/math11153358DOI: 10.3390/math11153358
- Борзунов С. В., Кургалин С. Д., Флегель А. В. Практикум по параллельному программированию: учебное пособие Санкт-Петербург БХВ 2017 236 978-5-9909805-0-1
- Калиткин Н. Н. Численные методы. 2-е изд. Санкт–Петербург БХВ 2011 592 978-5-9775-0500-0
- Самко С. Г., Килбас А. А., Маричев О. И. Интегралы и производные дробного порядка и некоторые их приложения Минск Наука и техника 1987 688
- Parovik R. I. Tverdyi D. A. Some Aspects of Numerical Analysis for a Model Nonlinear Fractional Variable Order Equation Mathematical and Computational Applications 2021 26 3 55 https://doi.org/10.3390/mca26030055DOI: 10.3390/mca26030055
- Tverdyi D. A., Parovik R. I. Application of the Fractional Riccati Equation for Mathematical Modeling of Dynamic Processes with Saturation and Memory Effect Fractal and Fractional 2022 6 3:163 1–35 https://doi.org/10.3390/fractalfract6030163DOI: 10.3390/fractalfract6030163
- Parovik, R. I. On a Finite-Difference Scheme for an Hereditary Oscillatory Equation Journal of Mathematical Sciences 2021 253 4 547-557 https://doi.org/10.1007/s10958-021-05252-2DOI: 10.1007/s10958-021-05252-2
- Gerasimov A. N. Generalization of linear deformation laws and their application to internal friction problems Applied Mathematics and Mechanics 1948 12 529–539
- Caputo M. Linear models of dissipation whose Q is almost frequency independent – II Geophysical Journal International 1967 13 5 529–539 https://doi.org/10.1111/j.1365-246X.1967.tb02303.x3DOI: 10.1111/j.1365-246X.1967.tb02303.x
- Jeng S., Kilicman A. Fractional Riccati Equation and Its Applications to Rough Heston Model Using Numerical Methods Symmetry 2020 12 1–20 https://doi.org/10.3390/sym12060959DOI: 10.3390/sym12060959
- Tverdyi D. A., Parovik R. I., Makarov E. O., Firstov P. P. Research of the process of radon accumulation in the accumulating chamber taking into account the nonlinearity of its entrance E3S Web Conference 2020 196 02027 1–6 https://doi.org/10.1051/e3sconf/202019602027DOI: 10.1051/e3sconf/202019602027
- Tverdyi D. A., Makarov E. O., Parovik R. I. Hereditary Mathematical Model of the Dynamics of Radon Accumulation in the Accumulation Chamber Mathematics 2023 11 4:850 1–20 https://doi.org/10.3390/math11040850DOI: 10.3390/math11040850
- Brent R. P. The parallel evaluation of general arithmetic expressions Journal of the Association for Computing Machinery 1974 21 2 201–206 https://doi.org/10.1145/321812.321815DOI: 10.1145/321812.321815
- Corman T. H., Leiserson C. E., Rivet R. L., Stein C. Introduction to Algorithms, 3rd Edition Cambridge The MIT Press 2009 1292 978-0262033848
- Shao J. Mathematical Statistics. 2-ed New York Springer 2003 592 978-0-387-95382-3
Supplementary files
