Может ли кто-нибудь помочь мне указать, какое будет лучшее кодирование следующего уравнения с использованием формулы первого порядка, чтобы дать его в качестве входных данных для решателя SMT ??
x`=Ax+b
x`=Ax+b
Вы можете легко закодировать дифференциальное уравнение в Z3, поскольку это всего лишь набор n линейных (аффинных) функций над n ^ 2 + n вещественными константами (n ^ 2 из a_ij, n из b_i) и n вещественных переменных (x_i). Вы можете закодировать это непосредственно в Z3.
dotx_1 = a_11 * x_1 + a_12 * x_2 + a_13 * x_3 + ... + a_1n * x_n + b_1
dotx_2 = a_21 * x_1 + a_22 * x_2 + a_13 * x_3 + ... + a_2n * x_n + b_2
...
dotx_n = a_n1 * x_1 + a_n2 * x_2 + a_n3 * x_3 + ... + a_nn * x_n + b_n
Вот ссылка на версию 2x2 в Z3Py: http://rise4fun.com/Z3Py/pl6P
Однако кодирование решения ОДУ будет затруднено, поскольку решение линейных ОДУ включает экспоненты (трансцендентные функции). Для класса ОДУ с решениями, которые могут быть представлены в виде полиномов (по константам a_ij, переменным x_i и/или временной переменной t), вы могли бы закодировать (точные) решения как полиномы в Z3 (см., например, , [1]).
Однако для общих решений, связанных с трансцендентными, у вас есть много возможных вариантов, в зависимости от того, чего вы пытаетесь достичь. Один из вариантов — это моделирование трансцендентального как неинтерпретируемой функции. В различных тестах SMT-LIB есть некоторые работы, которые делают это, но я не очень хорошо знаком с ними, поэтому, надеюсь, кто-то еще может указать на них ссылку. Это было бы очень полезно, если бы вы хотели доказать некоторые леммы о решениях таких ОДУ. Некоторые инструменты, такие как MetiTarski, поддерживают аппроксимацию трансцендентных величин сверху и снизу (используя, например, усеченные ряды Тейлора, которые являются многочленами и, следовательно, могут быть представлены в Z3), но я не знаю о статусе этого в Z3, но похоже, может быть некоторая поддержка, которую Леонардо мог бы прокомментировать больше [6].
Если вы выполняете вычисления достижимости, то вы можете переаппроксимировать множество досягаемости, что можно сделать с помощью более простых (более абстрактных) представлений решений ОДУ. Например, вы можете применить вариант метода гибридизации [2] и аппроксимировать линейную динамику прямоугольной динамикой, например, разбить интересное подмножество пространства состояний, а затем в каждом разделе аппроксимировать каждое измерение dotx_i = a_i1 x_1 + a_i2 x_2 + ... + b_i с dothatx_i \in [C, D] для некоторых констант C и D, выбранных таким образом, чтобы каждое решение исходного (конкретного) x_i содержалось в множестве сверхаппроксимированных (абстрактных) решений hatx_i. Набор решений hatx_i от времени 0 до t находится в интервале [C t + x_i (0), D t + x_i (0)], где x_i (0) — начальное условие x_i в нулевое время, а t — это ограниченное реальное время, в течение которого вы хотите вычислить настройку охвата. Вы можете сделать это во всех измерениях. Чтобы вычислить C, D (которые, вероятно, будут различаться для каждого раздела и каждого измерения), в зависимости от того, насколько вы заботитесь о надежности, вы можете просто (численно) максимизировать и минимизировать исходный ODE dotx_i в каждом разделе.
Из других ваших сообщений похоже, что вы пытаетесь смоделировать гибридные системы. Моделирование по-прежнему будет страдать от проблем с попыткой представить трансцендентные, поскольку даже попытка смоделировать одну траекторию (вместо моделирования набора возможных траекторий) потребует представления решения, которое в целом является трансцендентным. Насколько мне известно, это все еще делается в сообществе моделирования численно [см., например, 3], но есть работа над «гарантированной» (надежной) интеграцией, которая устанавливает границы того, насколько далеко численное решение от фактического (аналитического). ) решение [4, 5].
[1] Вычисления символьной достижимости для семейств линейных векторных полей. Херардо Лафферриер, Джордж Дж. Паппас и Серхио Йовин. Journal of Symbolic Computation, 32(3):231-253, сентябрь 2001 г. http://www.seas.upenn.edu/~pappasg/papers/JSC01.pdf
[2] Э. Азарин, Т. Данг, А. Жирар, Методы гибридизации для анализа нелинейных систем, Acta Informatica, 43:7, 2007, 451-476, http://www.springerlink.com/content/q6755l613l856737/
[3] Девятнадцать сомнительных способов вычисления экспоненты матрицы, двадцать пять лет спустя, Клив Молер и Чарльз Ван Лоан, SIAM Review, Vol. 45, № 1 (март 2003 г.), стр. 3–49, http://www.jstor.org/stable/25054364
[4] Автоматическая гарантированная интеграция аналитических функций, Мартин С. Айерманн, БИТ ЧИСЛОВАЯ МАТЕМАТИКА, 1989, http://www.springerlink.com/content/q2k30rtx2h2n1815/
[5] GRKLib: гарантированная библиотека Рунге-Кутты, Буиссу, О., Мартель, М., Научные вычисления, компьютерная арифметика и проверенные числа, 2006 г., http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4402398
[6] Настоящие алгебраические стратегии для доказательств Метитарского, Грант Олни Пассмор, Лоуренс С. Полсон и Леонардо де Моура. Конференция по интеллектуальной компьютерной математике (CICM/AISC), 2012 г., http://research.microsoft.com/en-us/um/people/leonardo/CICM2012.pdf