Determinant modulo m


18

Katsayılı bir tamsayıdır matrisin bir belirleyici hesaplanması için bilinen etkili algoritmalar ne kalıntıları halka modulo m . M sayısı asal değil kompozit olabilir (bu nedenle hesaplamalar bir alan değil halka olarak gerçekleştirilir).Zmmm

Bildiğim kadarıyla (aşağıda okuyun), çoğu algoritma Gauss eliminasyonunun modifikasyonlarıdır. Soru, bu prosedürlerin hesaplama etkinliği ile ilgilidir.

Farklı bir yaklaşım olduğu takdirde, bunu merak ediyorum.

Şimdiden teşekkürler.

Güncelleme:

Bu sorunun kaynağını açıklayayım. Varsayalım, bir asal sayıdır. Yani Z m bir alandır. Ve bu durumda , m'den küçük sayıları kullanarak tüm hesaplamaları yapabiliriz , bu yüzden sayılardaki tüm işlemlerde hoş bir üst sınırımız var: toplama, çarpma ve ters çevirme --- Gauss eliminasyonunu çalıştırmak için gerekli tüm işlemler.mZmm

Öte yandan biz durumda bazı numaralar için ters çevirmeyi gerçekleştiremez değil asal. Bu yüzden determinant hesaplamak için bazı hilelere ihtiyacımız var.m

Ve şimdi işi yapmak için bilinen hilelerin neler olduğunu ve bu tür hilelerin kitaplarda bulunup bulunamayacağını merak ediyorum.


3
`` Verimli '' ile ne demek istiyorsun? Sorunun açıkça . P
david

2
Is bir sabit duran? Nasıl verilir? m
Michael Blondin

2
Küçük derken ne demek istiyorsun? Bunlar tek başlarına yazılabilir mi?
Michael Blondin

5
Soruyu hala anlamıyorum. Bir tamsayı matrisinin determinantı polinom zamanında hesaplanabilir, böylece bu değeri modulo . Gerek bölünmelerin gerçekleştirmek için Z m veya çarpanlara bulmak m . mZmm
david

2
@ValeriySokolov: Bu temel doğrusal cebir. Örneğin, Christos H. Papadimitriou'nun Hesaplamalı Karmaşıklık Problemi 11.5.3'ü kontrol edin .
Tsuyoshi Ito

Yanıtlar:


15

çarpanlarına ayırmayı biliyorsanız, her bir p e i i modülünü ayrı ayrı hesaplayabilir ve daha sonra sonuçları Çin kalanını kullanarak birleştirebilirsiniz. Eğer E i = 1 , daha sonra işlem modülo p e i i , bu bir alandır, çünkü kolaydır. Daha büyük e i için Hensel kaldırmayı kullanabilirsiniz. m=p1e1pnenpieiei=1pieiei


Teşekkür ederim! Aradığım bir şey gibi. Bu belirleyiciler için ortak bir uygulama mı? (referanslar kabul edilir).
Valeriy Sokolov

6
Bunlar bilgisayar cebirinin standart teknikleridir. Von zur Gathen ve Gerhard'ın Modern Bilgisayar Cebirine veya bilgisayar cebirine ilişkin başka bir kitaba göz atın. Özel sorununuz için Pan, Yu & Stewart'ın aşağıdaki makalesine de bakınız comet.lehman.cuny.edu/vpan/pdf/pan146.pdf
Markus Bläser

17

Mahajan ve Vinay tarafından değişmeli halkalar üzerinde çalışan bir kombinatoryal algoritma vardır: http://cjtcs.cs.uchicago.edu/articles/1997/5/contents.html


Çok ilginç bir yazı bağlantısı ile cevabınız için teşekkür ederiz.
Valeriy Sokolov

Ayrıca, bu makalenin yazarları daha genel bir problemi (herhangi bir değişmeli halka için) çözdüğü için daha verimli algoritmalar olduğuna inanıyorum.
Valeriy Sokolov

"var" demekle "bilinen" veya "var" mı demek istediniz (ama henüz bulunamadınız)? bu makul bir tahmin, ama ben intigers ringulo yapısı küçük bir kompozit sayı size bu kadar yardımcı olabilir biraz şüpheci. eğer yanılıyorsam, bunu ilginç bulurdum.
Sasho Nikolov

1
@ValeriySokolov dürüst olmak gerekirse, cevap sorunuza cevap verdiğinden, bunu kabul etmeyi düşünebilirsiniz (veya makul olmayan daha iyi cevaplar beklemek isterseniz)
Suresh Venkat

@ SashoNikolov Wolfram Mathematica'nın bunu bir şekilde hesapladığını gördüm. "Uygulama Notları" nda dediler: Det, Çin'in kalan teoremini kullanarak bir sonuç oluşturarak modüler yöntemler ve satır azaltma kullanır. Tam olarak ne yaptıklarını bilmek istiyorum, ama hızlı bir arama bana hiçbir şey vermedi. "Küçük kompozit " ye gelince, bu halkadaki toplama ve çarpmaların karmaşıklığını O ( 1 ) olarak değerlendirmek istediğim anlamına gelir . Yani O ( log m ) gibi tüm faktörler O ( 1 ) olarak kabul edilir . mO(1)O(logm)O(1)
Valeriy Sokolov

11

Bu problemi çözmek için , en kötü durum karmaşıklığı tamsayı modulo m üzerinde matris çarpma maliyeti ile üst sınırda olan Smith normal formlarına dayanan hızlı bir deterministik algoritma vardır . Herhangi bir A matrisi için algoritma, det ( A ) 'nın kolayca hesaplanabildiği Smith normal formunu verir .mAdet(A)

Daha somut olarak, tanımlama iki şekilde , n x n alınan katsayılı matrisleri Z m kullanılarak çarpılabilir O ( n, ω ) temel aritmetik işlemler Z m (tamsayı Ayrıca, çarpma üs, vb). Sonra,ωn×nZmO(nω)Zm

Bir matris verilen , belirleyici bir algoritma bu değerlerini hesaplar vardır det ( A ) kullanarak O ( n, ω ) basit aritmetik işlemler üzerinde Z m [1] .AZmn×ndet(A)O(nω)Zm

1996'da yazıldığında, asimptotik olarak daha hızlı bir alternatif yoktu (makale, aynı sınırda olan algoritmaların önceden varlığından bahsediyor, ancak hangilerinin ya da olasılık olup olmadığını bilmiyorum).

Güncelleme (2013 17 Temmuz): Bu algoritmanın güzel bir bonus özelliği çalışır olmasıdır polinom zaman keyfi için kompozit bir prime-nuber bilmeden çarpanlara ait m ! Bu iyi hiçbir (bir kuantum bilgisayar olsaydı elbette, o zaman geçerli olabilir faktoring için verimli (klasik) algoritmaları orada bilinmektedir beri Shor'un algoritması ). Eğer varsa yapmak çarpanlara sahip sonra Markus önerdi algoritma uygulamak için bir yol daha basit görünüyor.mm

Notlar: Standart tamsayı aritmetiği kullanıyorsanız "temel aritmetik işlemlerin" karmaşıklığı , ancak daha hızlı tekniklerle O ( M ( log m ) log log m ) elde edebilirsiniz. M ( t ) , iki t- bit tamsayısının çarpımının maliyetini sınırlar . Şu anki rekor w olduğunu 2,3727 .O(log2m)O(M(logm)loglogm)M(t)tω


θω

Belki de bunun için en yaygın gösterimi bilmiyorum.
Juan Bermejo Vega

Bence haklısın, bunu "ana akım" olarak değiştireceğim
Juan Bermejo Vega
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.