матрицы GF2

Discussion in 'WASM.A&O' started by Relayer, Jan 4, 2005.

  1. Relayer

    Relayer New Member

    Blog Posts:
    0
    рассмотрим квадратные матрицы с элементами из поля GF2 у которых на главной диагонали всегда "1" и также есть "ленточка" 1-чек параллельно главной диагонали. очевидно что определитель такой матрицы всегда отличене от нуля.



    расширим круг рассматриваемых матриц. как и прежде на главной диагонали "1"ки. но количество "ленточек" из 1чек параллельно главной диагонали > 1. например



    1 0 1 0 0 1 0

    0 1 0 1 0 0 1

    0 0 1 0 1 0 0

    0 0 0 1 0 1 0

    1 0 0 0 1 0 1

    0 1 0 0 0 1 0

    0 0 1 0 0 0 1



    суть вопроса. при каких "геометрических" условиях на количество и расположение ленточек в матрице ее определитель не равен нулю ?
     
  2. Stiver

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

    Blog Posts:
    0
    То есть нужна формула, вычисляемая с меньшими затратами чем алгоритм Гаусса? Вряд ли это возможно в принципе. Частных же случаев довольно много, например: не равен нулю если все "боковые ленточки" находятся в одной половине, равен нулю если "боковых ленточек" две и расположены они симметрично(если постараться то для симметричного случая наверное действительно можно вывести общие правила) и.т.д.



    Эта проблема имеет какое-то "практическое значение" или просто "из интереса"? :)
     
  3. Relayer

    Relayer New Member

    Blog Posts:
    0




    нужен критерий отличности определителя от нуля. собственно его значение не играет роли







    она вылезла при рассмотрении обобщенных псевдокодов грея.
     
  4. Stiver

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

    Blog Posts:
    0
    Relayer





    Если я правильно понимаю, то в GF2 неравный нулю определитель может иметь только одно значение: 1

    А так запускаешь Гаусса и смотришь что окажется на главной диагонали.
     
  5. Relayer

    Relayer New Member

    Blog Posts:
    0




    да, это меня заклинило малость :))







    хе. эт мы умеем. вопрос то не в этом. как выяснить энто не запуская гаусса.
     
  6. volodya

    volodya wasm.ru

    Blog Posts:
    0
    А так запускаешь Гаусса и смотришь что окажется на главной диагонали.



    Пардон, я не силен в линейной алгебре вообще - довольно далекая от меня область. Однако, насколько я знаю, для GF(2) лучше брать Ланщоца. Модификация описана Монтгомери. У мя pdf есть.
     
  7. Stiver

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

    Blog Posts:
    0
    volodya





    А ссылкой или самим pdfом не поделишься? Или по каким ключевым словам искать? А то "Ланщоц" поисковым машинам не известен, а нужного Монтгомери можно до посинения искать.. :)
     
  8. flankerx

    flankerx New Member

    Blog Posts:
    0
    на маленьких матрицах (меньше 10K x 10K) и Гаусс неплохо справляется :)
     
  9. volodya

    volodya wasm.ru

    Blog Posts:
    0
    Ссылка под паролем. Это американская сеть журналов. Однако сайт васма - рулит ;) Есть книжечка:



    http://wasm.ru/docs/8/vasilenko.zip



    там в приложении Ланшоц кратенько.



    Если этого будет мало - сугубо в этом топе положу pdf с измышлизмами Монтгомери.
     
  10. volodya

    volodya wasm.ru

    Blog Posts:
    0
    А то "Ланщоц" поисковым машинам не известен



    Пишется как "lanczos"

    В гугле тут же дает ссылкочку на, например, http://www.netlib.org/lanczos/
     
  11. Stiver

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

    Blog Posts:
    0
    volodya



    Ааа, так это Ланцош, то бишь Lanczos, тогда конечно знаю ;) Метод итеративный, то есть выигрыш будет для больших матриц с небольшим количеством боковых ленточек("sparse matrix"). Работу Montgomery нашел в списке литературы в pdfе, спасибо, посмотрю в библиотеке.
     
  12. volodya

    volodya wasm.ru

    Blog Posts:
    0
    тогда конечно знаю ;)



    Я же и говорю - приятно иметь дело со специалистами :)



    Тьфу, неправильно имя написал. Никогда эту гадость выговорить не мог :)
     
  13. blood

    blood New Member

    Blog Posts:
    0
    Могу предложить критерий для одного частного случая.

    Пусть исходная матрица является суммой матриц циклических перестановок(тобишь, когда эту матрицу умножают на вектор, его координаты циклический сдвигаются).

    Такая матрица имеет ленточный вид:



    x0 x1 x2 ... xn

    xn x0 x1 ... xn-1

    ...............

    x1 x2 x3 ... x0



    Построим многочлен над GF2 p(t)=x0+x1*t+x2*t^2+...+xn*t^n,

    то определитель матрицы равен 1 если gcd(p(t),t^(n+1)+1)=1, иначе 0

    (gcd - наибольший общий делитель многочленов в GF2)

    З.Ы. Сомневаюсь что существует простой геометрический критерий для этого, тем более для общего случая.

    З.Ы.Ы Может быть я ошибся...
     
  14. RElf

    RElf New Member

    Blog Posts:
    0
    blood





    Всё верно, только почему для "частного случая"? Это как раз и есть общий случай. Вычислять gcd над GF2 - одно удовольствие. Многочлены можно как как числа представлять с XOR вместо сложения (также как в CRC). Так что, всё очень эффективно.
     
  15. blood

    blood New Member

    Blog Posts:
    0
    RElf

    только почему для "частного случая"?

    например матрица

    1 1

    0 1

    неподходит.
     
  16. maxdiver

    maxdiver Max

    Blog Posts:
    0
    volodya
    Спасибо за ссылочки.
    А то что-то я сам ничего не смог найти.