2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Ограничение по времени на вычисление в Maple
Сообщение20.04.2016, 17:36 
Добрый день!

Помогите пожалуйста с решением такой проблемы.

Имеется набор из нескольких десятков полиномов. Необходимо перебрать все возможные комбинации по два полинома из этого набора и посчитать для каждого такого набора базис Грёбнера.

Я делаю это следующим образом (для примера взял 4 полинома).

Код:
with(Groebner):
U[1] := x^3*y^3*z-x*y^2*z^4+x*y*z^2-6*y^2*z:
U[2] := 4*x^6*y*z+y^2*z^4-x*y*z^3+8*x*y*z^2-7*x*y:
U[3] := x*y*z^5-3*x^2*z^3+x*y*z^3+x*y*z^2:
U[4] := x*y^7-3*x^5*y+2*x^2*y*z^2-2*x*y^2*z^2-y:

k:=0:
for i from 1 to 4 do
for j from 1 to 4 do
k:=k+1:
B[k] := Basis([U[i], U[j]], plex(op(indets([U[i], U[j]])))):
od:
od:


Проблема в том, что некоторые из таких комбинаций считаются очень долго (так долго, что Maple в итоге "зависает"). Можно ли сделать так, что если выражение
Код:
Basis([U[i], U[j]], plex(op(indets([U[i], U[j]]))))

считается дольше какого-то заданного времени (например, 20 секунд), то вычисление этого выражения прекращалось бы и осуществлялся переход к вычислению следующего?

Я пробовал использовать команду timelimit:
Код:
timelimit(20, Basis([U[i], U[j]], plex(op(indets([U[i], U[j]])))))

но после того, как находится комбинация, для которой время превышено, выдаётся сообщение "Error, (in Buchberger:-inter_reduce_gb) time expired" и оставшиеся комбинации не проверяются.

Ещё был вариант делать проверку
Код:
if traperror(timelimit(20, Basis([U[i], U[j]], plex(op(indets([U[i], U[j]]))))))<>"time expired" then (рассчитывать Basis)

но и так не получилось - иногда в сообщении выводится не только "time expired", но и какие-то другие символы и эта проверка не срабатывает.

Подскажите пожалуйста, как можно решить эту проблему?
Заранее спасибо!

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group