Задача о многочлене

Тема в разделе "WASM.CRYPTO", создана пользователем mart, 29 дек 2008.

  1. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    Задача состоит в следующем: дано поле Галуа и известны значения многочлена f(x) во всех элементах этого поля. Не известно только, для каких именно элементов поля вычислены известные значения. В поле n элементов, степень многочлена не больше log(n). Можно ли как-нибудь определить многочлен? Если есть хоть какие-нибудь идеи или если вы встречали похожую задачу напишите плз. Заранее спасибо!
     
  2. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    mart
    Не очень понимаю условие.. Возьмем например Z_{7}, многочлены x, x+1, x-1 (и т.д.) дадут на нем одинаковые множества значений - само Z_{7}. Как их отличать друг от друга?
     
  3. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Stiver
    Наверное имеется в виду, что известны значения
    y1=f(x1),...,yn=f(xn), но неизвестно, для каких x1,...,xn они получены. Т.е. задача видимо такова: известны y1,...,yn, известен многочлен f(x), найти x1,...,xn.
     
  4. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    2Stiver: Отличать их не надо, надо найти хотя бы один многочлен. Т.е. если множество значений есть все поле, как в вашем примере, то подходит абсолютно любой полином вида ax+b.
    2crypto: Не совсем. Известны y1,..,yn - да. Но неизвестен полином f и неизвестен порядок x1,x2,..,xn, однако известно что x1,...,xn образуют поле целиком.
     
  5. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    mart
    То есть нужно просто найти какой-то многочлен, дающий такое множество значений? Первое, что приходит в голову - построить его. Произвольно разнести y по x и вычислить стандартным образом коэффициенты по n точкам. Степень правда будет далеко не оптимальная, в худшем случае n-1.

    Если речь идет именно о вычислении такого порядка x_{i}, при котором полином будет иметь минимальную степень, то надо думать дальше. Можно попробовать превратить интерполяционное вычисление коэффициентов в задачу на (нелинейное) оптимирование, не уверен только, будет ли она эффективно решаемой. Это уже лучше обсуждать в каком-нибудь математическом сообществе.
     
  6. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    Степень многочлена фиксирована. У меня вообще сложилось впечатление, что задача NP-полная, а это так херово=)
     
  7. Ra_Sh

    Ra_Sh New Member

    Публикаций:
    0
    Регистрация:
    23 сен 2008
    Сообщения:
    46
    Похоже проблематика "Обратной задачи Галуа". Решение в нахождении коэф-в по теореме Виета.
    Берётся симметричный многочлен с неопределёнными коэф-ми. Находятся все его значения
    в группе при перестановке корней, после чего попытка найти неопределённые коэф-ы.
    А уж из полученных уравнений попытаться найти коэф-ы Виета и получить основной многочлен.
    ...В поле n элементов... - ну и замашки у вас. А вообще как сейчас развитие софта для символьной
    алгебры не знаю даже (relf на другом форуме для линукса вроде магму нашел), а так только
    Курош "Высшая алгебра" ... :)
     
  8. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    mart
    Если фиксирована и неизвестна, то задача не имеет ни смысла, ни решения. Поэтому предполагаю, что степень известна.

    Тогда в немного более общей формулировке: дано векторное конечномерное пространство V над конечным полем. В V даны подпространство W и вектор a. Определить, можно ли с помощью перестановки компонентов (то есть последовательными отражениями на гиперплоскостях x_{i} = x_{j}) получить из a какой-то вектор b, лежащий в W.

    Быстрого решения (чтобы без факториалов) пока придумать не могу. Советую задать этот вопрос в математическом сообществе (например http://community.livejournal.com/ru_math/) и оставить здесь ссылку - интересная тема. А NP-полноту тоже еще доказать надо ;)
     
  9. RElf

    RElf New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    159
    А какова величина n?
     
  10. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    Всем большое спасибо за помощь! Только сейчас после праздников наконец-то добрался до инета=)

    2Relf: n = 1024, степень многочлена d = 50, например.
     
  11. RElf

    RElf New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    159
    Можно попробовать так, например:

    Нетрудно видеть, что сумма SUM x^k, где x пробегает все ненулевые элементы поля порядка n, равна 0, если k не делится на n-1; и равна n-1 в противном случае.

    Предположим, что нам даны значения неизвестного многочлена фиксированной степени на ненулевых элементах поля (понятно, что значение на нулевом элементе, если таковой тоже присутствует, легко исключается простым перебором).
    Тогда, рассматривая суммы всех этих значений в фиксированной степени k и пользуясь вышеуказанным утверждением, можно получить систему алгебраических уравнений (соответствующих разным значениям k=1,2,3,...) относительно коэффициентов многочлена. Ну а дальше решать эту систему стандартными средствами (базисы Гребнера и т.п.)
     
  12. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    Relf, спасибо огромное за предложенный способ! Жаль, что в общем случае решение системы алгебраических уравнений принадлежит классу NP. Но тем не менее сам способ очень интересный, надеюсь мне повезёт и задача решится за полиномиальное время:) Ещё раз спасибо!