Bunu ödev için yapmakla görevlendirildim ve düzgün bir epifani olduğunu düşündüm: Strassen'in algoritması, "daha derin" ön toplama bileşenleri karşılığında daha az işlem kullanmak için ön toplama bileşenlerinin "genişliğini" feda ediyor yine de son cevabı çıkarmak için kullanılabilir. (Bunu söylemenin en iyi yolu bu değil, ama açıklamak benim için zor).
" İşlemler ve bileşenler " dengesini göstermek için iki karmaşık sayıyı bir araya getirme örneğini kullanacağım :
4 çarpım kullandığımıza dikkat edin, bu da 4 ürün bileşeni ile sonuçlanır :
İstediğimiz 2 son bileşenin: karmaşık sayının gerçek ve hayali kısımlarının aslında doğrusal denklemler olduğuna dikkat edin: bunlar ölçekli ürünlerin toplamlarıdır. Burada iki işlemle uğraşıyoruz: toplama ve çarpma.
Gerçek şu ki, 4 ürün bileşenimiz sadece bileşenlerimizi ekler veya çıkarırsak 2 nihai bileşenimizi temsil edebilir :
Ancak, son 2 bileşenimiz ürün toplamı olarak temsil edilebilir . İşte ben geldim:
Görebiliyorsanız, son ikimizi oluşturmak için aslında sadece 3 ayrı ürün bileşenine ihtiyacımız var :
Fakat bekle! Büyük harflerin her biri kendi ürünlerinde! Ancak yakalama, (a + b) (c + d) 'den (1 + çarpma) (A + B + C + D) üretebileceğimizi biliyoruz.
Sonuçta algoritmamız, daha az toplama işlemi için çarpma miktarını alıp sattığımız daha az, ancak "daha şişman" bileşenler kullanacak şekilde optimize edilmiştir.
Bunu sağlayan şeyin bir kısmı, A (B + C) 'nin (AB + AC) ile eşdeğer olmasını sağlayan dağıtım özelliğidir. Birincisinin 1 toplama ve 1 çarpma işlemi kullanılarak nasıl hesaplanabileceğine dikkat edin, ikincisi 2 çarpma ve 1 toplam gerektirir.
Strassen'in algoritması , daha fazla hedef ürün terimi ve bu terimleri elde etmek için kullanabileceğimiz daha fazla ürün bileşeni olması dışında, karmaşık sayıdaki ürünlere uyguladığımız optimizasyonun bir uzantısıdır. 2x2'lik bir matris için Strassen'in algoritması, 8 çarpma gerektiren bir algoritmayı 7 çarpma gerektiren bir algoritmaya dönüştürür ve iki çarpmayı bir işlemde "birleştirmek" için dağıtım özelliğini kullanır ve bunun yerine bir tane çıkarmak için yeni "daha şişman" düğümden uzaklaşır ürün terimi veya diğeri, vb.
İyi bir örnek: (-1) ve (2) ve (5) elde etmek için bunu (-1), (2), (5) olarak düşünebilir veya (2-3) olarak düşünebilirsiniz. ), (2), (2 + 3). İkinci işlemler ise daha az farklı sayılar kullanır. Yakalama, farklı sayıların sayısının, matris çarpımı için hesaplamanız gereken ürün bileşenlerinin sayısına eşit olmasıdır. Bunun için, dağıtım özelliği aracılığıyla farklı bir varyasyon kullanarak izomorfik çıktılardan yararlanan temel operasyonların belirli bir görünümünü bulmak için bunu optimize ediyoruz.
Belki de bu bir şekilde topolojiye bağlanabilir mi? Bu benim layman'ımın bunu anlama şekli.
Düzenleme: İşte benim karmaşık sayı açıklama yapma sürecinde çizdi benim notlar bir resim: