Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Possible use cases  





2 Examples  



2.1  Integer multiplication  





2.2  Matrix multiplication  





2.3  Communication channel capacity  





2.4  Sub-graphs  





2.5  Cryptographic breaks  





2.6  Traveling salesman problem  





2.7  Hutter search  





2.8  Optimization  





2.9  Minimum spanning trees  







3 References  














Galactic algorithm






Español
Français
Русский
Tiếng Vit

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




Print/export  



















Appearance
   

 






From Wikipedia, the free encyclopedia
 


This is an old revision of this page, as edited by Stowgull (talk | contribs)at15:26, 9 February 2024 (CE sentence case). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff)  Previous revision | Latest revision (diff) | Newer revision  (diff)

Agalactic algorithm is one with world-beating theoretical (asymptotic) performance, but which is never used in practice. Typical reasons are that the performance gains only appear for problems that are so large they never occur, or the algorithm's complexity outweighs a relatively small gain in performance. Galactic algorithms were so named by Richard Lipton and Ken Regan,[1] because they will never be used on any data sets on Earth.

Possible use cases

Even if they are never used in practice, galactic algorithms may still contribute to computer science:

Examples

Integer multiplication

An example of a galactic algorithm is the fastest known way to multiply two numbers,[3] which is based on a 1729-dimensional Fourier transform.[4] It needs bit operations, but as the constants hidden by the big O notation are large, it is never used in practice. However, it also shows why galactic algorithms may still be useful. The authors state: "we are hopeful that with further refinements, the algorithm might become practical for numbers with merely billions or trillions of digits."[4]

Matrix multiplication

The first improvement over brute-force matrix multiplication (which needs multiplications) was the Strassen algorithm: a recursive algorithm that needs multiplications. This algorithm is not galactic and is used in practice. Further extensions of this, using sophisticated group theory, are the Coppersmith–Winograd algorithm and its slightly better successors, needing multiplications. These are galactic – "We nevertheless stress that such improvements are only of theoretical interest, since the huge constants involved in the complexity of fast matrix multiplication usually make these algorithms impractical."[5]

Communication channel capacity

Claude Shannon showed a simple but asymptotically optimal code that can reach the theoretical capacity of a communication channel. It requires assigning a random code word to every possible -bit message, then decoding by finding the closest code word. If is chosen large enough, this beats any existing code and can get arbitrarily close to the capacity of the channel. Unfortunately, any big enough to beat existing codes is also completely impractical.[6] These codes, though never used, inspired decades of research into more practical algorithms that today can achieve rates arbitrarily close to channel capacity.[7]

Sub-graphs

The problem of deciding whether a graph contains as a minorisNP-complete in general, but where is fixed, it can be solved in polynomial time. The running time for testing whether is a minor of in this case is ,[8] where is the number of vertices in and the big O notation hides a constant that depends superexponentially on . The constant is greater than inKnuth's up-arrow notation, where is the number of vertices in .[9] Even the case of cannot be reasonably computed as the constant is greater than with n = 65536.

Cryptographic breaks

For cryptographers, a cryptographic "break" is anything faster than a brute-force attack – i.e., performing one trial decryption for each possible key. In many cases, even though they are the best known methods, they are still infeasible with current technology. One example is the best attack known against 128-bit AES, which takes only operations.[10] Despite being impractical, theoretical breaks can sometimes provide insight into vulnerability patterns.

Traveling salesman problem

For several decades, the best known approximation to the traveling salesman problem in a metric space was the very simple Christofides algorithm which produced a path at most 50% longer than the optimum. (Many other algorithms could usually do much better, but could not provably do so.) In 2020, a newer and much more complex algorithm was discovered that can beat this by percent.[11] Although no one will ever switch to this algorithm for its very slight worst-case improvement, it is still considered important because "this minuscule improvement breaks through both a theoretical logjam and a psychological one".[12]

Hutter search

A single algorithm, "Hutter search", can solve any well-defined problem in an asymptotically optimal time, barring some caveats. It works by searching through all possible algorithms (by runtime), while simultaneously searching through all possible proofs (by length of proof), looking for a proof of correctness for each algorithm. Since the proof of correctness is of finite size, it "only" adds a constant and does not affect the asymptotic runtime. However, this constant is so big that the algorithm is entirely impractical.[13][14] For example, if the shortest proof of correctness of a given algorithm is 1000 bits long, the search will examine at least 2999 other potential proofs first.

Hutter search is related to Solomonoff induction, which is a formalization of Bayesian inference. All computable theories (as implemented by programs) which perfectly describe previous observations are used to calculate the probability of the next observation, with more weight put on the shorter computable theories. Again, the search over all possible explanations makes this procedure Galactic.

Optimization

Simulated annealing, when used with a logarithmic cooling schedule, has been proven to find the global optimum of any optimization problem. However, such a cooling schedule results in entirely impractical runtimes, and is never used.[15] However, knowing this ideal algorithm exists has led to practical variants that are able to find very good (though not provably optimal) solutions to complex optimization problems.[16]

Minimum spanning trees

The expected linear time MST algorithm is able to discover the minimum spanning tree of a graph in , where is the number of edges and is the number of nodes of the graph.[17] However, the constant factor that is hidden by the Big O notation is huge enough to make the algorithm impractical. An implementation is publicly available[18] and given the experimentally estimated implementation constants, it would only be faster than Borůvka's algorithm for graphs in which .[19]

References

  1. ^ a b Lipton, Richard J.; Regan, Kenneth W. (2013). "David Johnson: Galactic Algorithms". People, Problems, and Proofs: Essays from Gödel's Lost Letter: 2010. Heidelberg: Springer Berlin. pp. 109–112. ISBN 9783642414220.
  • ^ Fortnow, L. (2009). "The status of the P versus NP problem" (PDF). Communications of the ACM. 52 (9): 78–86. doi:10.1145/1562164.1562186. S2CID 5969255.
  • ^ David, Harvey; Hoeven, Joris van der (March 2019). "Integer multiplication in time O(n log n)". HAL. hal-02070778.
  • ^ a b Harvey, David (9 April 2019). "We've found a quicker way to multiply really big numbers". The Conversation. Retrieved 9 March 2023.
  • ^ Le Gall, F. (2012), "Faster algorithms for rectangular matrix multiplication", Proceedings of the 53rd Annual IEEE Symposium on Foundations of Computer Science (FOCS 2012), pp. 514–523, arXiv:1204.1111, doi:10.1109/FOCS.2012.80, S2CID 2410545
  • ^ Larry Hardesty (January 19, 2010). "Explained: The Shannon limit". MIT News Office.
  • ^ "Capacity-approaching codes (Chapter 13 of Principles Of Digital Communication II)" (PDF). MIT OpenCourseWare. 2005.
  • ^ Kawarabayashi, Ken-ichi; Kobayashi, Yusuke; Reed, Bruce (2012). "The disjoint paths problem in quadratic time". Journal of Combinatorial Theory. Series B. 102 (2): 424–435. doi:10.1016/j.jctb.2011.07.004.
  • ^ Johnson, David S. (1987). "The NP-completeness column: An ongoing guide (edition 19)". Journal of Algorithms. 8 (2): 285–303. CiteSeerX 10.1.1.114.3864. doi:10.1016/0196-6774(87)90043-5.
  • ^ Biaoshuai Tao & Hongjun Wu (2015). Information Security and Privacy. Lecture Notes in Computer Science. Vol. 9144. pp. 39–56. doi:10.1007/978-3-319-19962-7_3. ISBN 978-3-319-19961-0.
  • ^ Anna R. Karlin; Nathan Klein; Shayan Oveis Gharan (September 1, 2020). "A (Slightly) Improved Approximation Algorithm for Metric TSP". arXiv:2007.01409 [cs.DS].
  • ^ Klarreich, Erica (8 October 2020). "Computer Scientists Break Traveling Salesperson Record". Quanta Magazine.
  • ^ Hutter, Marcus (2002-06-14). "The Fastest and Shortest Algorithm for All Well-Defined Problems". arXiv:cs/0206022.
  • ^ Gagliolo, Matteo (2007-11-20). "Universal search". Scholarpedia. 2 (11): 2575. Bibcode:2007SchpJ...2.2575G. doi:10.4249/scholarpedia.2575. ISSN 1941-6016.
  • ^ Liang, Faming; Cheng, Yichen; Lin, Guang (2014). "Simulated stochastic approximation annealing for global optimization with a square-root cooling schedule". Journal of the American Statistical Association. 109 (506): 847–863. doi:10.1080/01621459.2013.872993. S2CID 123410795.
  • ^ Ingber, Lester (1993). "Simulated annealing: Practice versus theory". Mathematical and Computer Modelling. 18 (11): 29–57. CiteSeerX 10.1.1.15.1046. doi:10.1016/0895-7177(93)90204-C.
  • ^ Karger, David R.; Klein, Philip N.; Tarjan, Robert E. (1995-03-01). "A randomized linear-time algorithm to find minimum spanning trees". Journal of the ACM. 42 (2): 321–328. doi:10.1145/201019.201022. ISSN 0004-5411.
  • ^ Thiesen, Francisco. "A C++ implementation for an Expected Linear-Time Minimum Spanning Tree Algorithm(Karger-Klein-Tarjan + Hagerup Minimum Spanning Tree Verification as a sub-routine)". GitHub. Retrieved 2022-11-19.
  • ^ Geiman Thiesen, Francisco. "Expected Linear-Time Minimum Spanning Trees". franciscothiesen.github.io. Retrieved 2022-11-13.

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Galactic_algorithm&oldid=1205397904"

    Categories: 
    Mathematical notation
    Asymptotic analysis
    Analysis of algorithms
    Hidden categories: 
    CS1: long volume value
    Articles with short description
    Short description is different from Wikidata
     



    This page was last edited on 9 February 2024, at 15:26 (UTC).

    This version of the page has been revised. Besides normal editing, the reason for revision may have been that this version contains factual inaccuracies, vandalism, or material not compatible with the Creative Commons Attribution-ShareAlike License.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki