polylog
polylog
  • 11
  • 4 861 803
And this year's Turing Award goes to...
Support us on Patreon: www.patreon.com/Polylog
We explain why Avi Wigderson got this year’s Turing award: We show how you can make any randomized algorithm deterministic.
0:00 Intro
2:41 P = BPP
5:38 Statistical tests
7:52 Pi as a PRNG
9:44 Nisan-Wigderson PRNG
13:47 Finishing the proof
14:45 Zero-knowledge proofs
Blog post: coming soon
Code for the animations: github.com/polylog-cs/derandomization/
Richard Hladík: Script editor, animator
Václav Rozhoň: Writer, animator
Václav Volhejn: Narrator, animator, script editor
Thank you to our beta testers: Matěj, Honza, Filip
Animations: manim, a Python library docs.manim.community/en/stable/
Color palette: Solarized ethanschoonover.com/solarized/
Music: Thannoid by Blue Dot Sessions
Pictures: Wikipedia, Internet
Video clips used:
Avi Wigderson: ua-cam.com/video/YOrBVEwDqAg/v-deo.html and ua-cam.com/video/ZzsFb-6wvoE/v-deo.html
Seismograph: ua-cam.com/video/mbKEarx9CCs/v-deo.html
Переглядів: 67 889

Відео

Why arguing generals matter for the Internet
Переглядів 13 тис.2 місяці тому
0:00 Intro 0:31 The byzantine generals problem 3:51 First solution 10:13 Importance 12:00 Blockchain-based solution 15:57 Wrap-up Support us on Patreon: www.patreon.com/Polylog We solve the Byzantine Generals problem, a fundamental problem of distributed computing. Then, in classic Polylog fashion, we spend the latter half of the video discussing why it matters in the broader context, specifica...
The flaw in every voting system
Переглядів 414 тис.9 місяців тому
#some3 0:00 Intro 3:11 Definitions 6:44 Proof 11:39 Arrow's theorem 13:25 Approval voting 17:03 Outro Blog post: vasekrozhon.wordpress.com/2023/09/10/voting-systems/ Github: github.com/polylog-cs/voting-systems Patreon: www.patreon.com/Polylog Credits: Thumbnail by Alžběta Volhejnová To make this video, we used manim, a Python library: docs.manim.community/en/stable/ The color palette we use is...
The most powerful (and useless) algorithm
Переглядів 128 тис.Рік тому
0:00 Intro 2:44 The Algorithm 6:38 Why it works 9:28 Code 10:41 Final Thoughts Our implementation of Universal Search: github.com/polylog-cs/universal-search/blob/main/code/universal_search.py Our Patreon: www.patreon.com/Polylog Impromptu: impromptu.fun/ More about universal search: To prove that the universal search is asymptotically optimal, we implicitly used the fact that there exists a li...
The OPTIMAL algorithm for factoring!
Переглядів 40 тис.Рік тому
Our program: github.com/polylog-cs/universal-search/blob/main/code/universal_search.py RSA factoring challenge: en.wikipedia.org/wiki/RSA_Factoring_Challenge Big thanks to: Tomáš Gavenčiak, Matěj Konečný, Jan Petr, Hanka Rozhoňová, Tom Sláma Our Patreon: www.patreon.com/Polylog Credits: To make this video, we used manim, a Python library: docs.manim.community/en/stable/ The color palette we use...
The hidden beauty of the A* algorithm
Переглядів 815 тис.Рік тому
00:00 Intro 01:38 Change the lengths! 06:34 What is a good potential? 12:31 Implementation 16:20 Bonus Tom Sláma's video: ua-cam.com/video/umszOeerdsU/v-deo.html Our Patreon: www.patreon.com/Polylog Some related stuff: One thing I did not mention is that Dijkstra's algorithm is designed to solve the problem of finding the shortest path from the start node to all other nodes of the graph. It doe...
AI cracked this Codeforces problem. Can you?
Переглядів 54 тис.Рік тому
Our Patreon: www.patreon.com/Polylog AlphaCode is a model by DeepMind. alphacode.deepmind.com/ The problem we discussed is from CodeForces. codeforces.com/problemset/problem/1566/E 0:00 Intro 3:29 Problem Statement 5:55 Problem Solution 11:20 Final Thoughts Music New World Symphony by Dvorak. musopen.org/music/4942-symphony-no-9-in-e-minor-from-the-new-world-op-95/#recordings Images The picture...
We designed special dice using math, but there’s a catch
Переглядів 527 тис.Рік тому
How would you order the players randomly? Tell us in the comments. :) Our Patreon: www.patreon.com/Polylog Some proposals that already appeared in the comments section: - Put cards with player names in a sack, shuffle, then take them out one by one to get the order. - Simulate the above process using dice (see the comments by Jordan Weitz and samuraiwarm for how to do it). - Just reroll the dic...
The Simplest Sorting Algorithm (You’ve Never Heard Of)
Переглядів 127 тис.2 роки тому
Our Patreon: www.patreon.com/Polylog We know this beautiful algorithm from the recent preprint by Stanley P. Y. Fung: arxiv.org/pdf/2110.01111.pdf However, it turns out that other people stumbled across it multiple times, see e.g. the discussion here: news.ycombinator.com/item?id=28758106 Attributions: To make this video, we used manim, a Python library: docs.manim.community/en/stable/ The colo...
The trick that solves Rubik’s Cubes and breaks ciphers
Переглядів 2,7 млн2 роки тому
What do the Rubik's cube and a cipher from the 70s have in common? Let's find out. Our Patreon: www.patreon.com/Polylog 0:00 Rubik's cube 9:40 DES Links: Feliks setting the 4.73 record ua-cam.com/video/R07JiT0PlcE/v-deo.html&ab_channel=FeliksZemdegs webpage "God's number is 20" www.cube20.org/ The fact it was verified computationally that every cube can be solved in at most 20 moves is super im...
How to Use Beads and Strings to Find the Diameter of a Tree
Переглядів 30 тис.2 роки тому
This video was made for the Summer of Math Exposition 1. Check out other cool videos there! www.3blue1brown.com/blog/some1 #some1 Our Patreon: www.patreon.com/Polylog To make this video, we used manim: docs.manim.community/en/stable/ Our video is based on the following great book: Explaining Algorithms Using Metaphors by Michal Forišek and Monika Steinová you can buy it here: www.springerprofes...

КОМЕНТАРІ

  • @a.t10
    @a.t10 Годину тому

    thanks a lot. very simple and clear explanation.

  • @jameslew7269
    @jameslew7269 10 годин тому

    wow, you should call it "bubble sort"

  • @LukePalmer
    @LukePalmer 14 годин тому

    Fantastic video, thank you. I understood not everything but enough to put it in my little brain folder of clever math tricks and algorithms in case I never need inspiration. Thanks for presenting this recent work so clearly and concretely, I really liked how you used concrete things like 99% and the polynomial detection algorithm instead of variables and generalities, it helps me think.

  • @user-vm1hi7bo5s
    @user-vm1hi7bo5s 15 годин тому

    Avi on the preview looks a lot like an old Maxim Katz, a russian politician and youtuber I actually confused with him. He's also an all-russian poker champion, the game you mentioned in the video. Now answer, is that random? 0_0 Nice video though, wasn't disappointed

  • @Erotemic
    @Erotemic 15 годин тому

    Surprise Mario

  • @JochemKuijpers
    @JochemKuijpers 17 годин тому

    14:20 - "Since A is correct for at least some seeds" -- where did this guarantee come from? A is correct for some pseudo-random inputs, but since the seed is shorter than the sequence of inputs, it doesn't seem that there's a guarantee that you will hit a random input for A is correct simply by iterating over all seeds. The space of potential inputs (of which >1% produce correct results) is exponentially bigger than the spaec of seeds; it could very well be that by the way the PRNG works, you'd miss all those sequences. Or is this guarantee coming from the assumption that the PRNG cannot be distinguised from 'real' random sequences?

  • @keyboard_toucher
    @keyboard_toucher 18 годин тому

    8:40 finding the k+1 ... k+nth digits of pi doesn't require finding the first 1...k digits.

  • @googleyoutubechannel8554
    @googleyoutubechannel8554 19 годин тому

    What if this isn't even a good question... what if the idea of 'randomness' in the way that mathematicians 'want' it to be... what if this is just a nonsensical idea....

  • @francomarchesoni9004
    @francomarchesoni9004 23 години тому

    Nice

  • @VincentKun
    @VincentKun День тому

    Do the video where you do the zero knowledge proof with who is watching to prove you got right sudoku now

  • @EzBz982
    @EzBz982 День тому

    Hans Reichenbach: The Concept of Probability. Read it for a philosophical discussion of one of humanity’s most useful concepts that has no real philosophical basis and no empirical basis in reality.

  • @garretmh
    @garretmh День тому

    I have learned and subsequently forgotten how zero knowledge proofs work far too many times

  • @riteshbhartiya6155
    @riteshbhartiya6155 День тому

    For that polynomial matching problem, for a polynomial of degree d, we can just match values of polynomials for d+1 values. As different polynomials can have atmax d intersections, we can deterministically find if it's the same or different polynomial in polynomial time. Thus, it's a P problem.

  • @andrewsomerville5772
    @andrewsomerville5772 День тому

    The hair.

  • @kokomanation
    @kokomanation День тому

    This is a very important discovery for mathematics at the same level of Fermat last theorem and Poincaré conjecture

  • @OranCollins
    @OranCollins 2 дні тому

    Does this have any applications in ml?

  • @deepdimdip
    @deepdimdip 2 дні тому

    So the end result and the ground truth about randomness is that it doesn't matter whether a sequence has come from a PRNG or a true-RNG, the only thing that matters is whether this sequence obeys a particular distribution law or not. For sequences of finite length it is only possible to say that they obey a distribtion with a particular degree of uncertainity and only for infinite sequences it is possible to distinguish between two distribution laws with an arbitrary precision. However, there's a question if it possible to tell apart two infinitely close distribution laws with an infinite sequence, which has to be answered with a kind of statistical limit.

  • @seanconlon4055
    @seanconlon4055 2 дні тому

    subscribed. well done

  • @AspartameBoy
    @AspartameBoy 2 дні тому

    BS. You only need one transistor to make a REAL random number generator.

  • @franciscoaragao5398
    @franciscoaragao5398 2 дні тому

    What about the electric bass?

  • @tilmakyaa
    @tilmakyaa 2 дні тому

    Awesome video. Thanks

  • @StratosFair
    @StratosFair 3 дні тому

    Fantastic presentation, glad the UA-cam algorithm recommend this channel to me

  • @weksauce
    @weksauce 3 дні тому

    Everything is deterministic. Nothing is random in the sense of chance. The only context in which probability and randomness make sense is with finite agents who can't predict the way the universe will unfold (which is deterministically) due to complexity or chaos. There's nothing else going on.

    • @telaferrum
      @telaferrum 20 годин тому

      I would say that's not true in a mathematical sense and probably not true in a physical sense once we moved from classical to quantum physics. The probabilistic interpretation of quantum mechanics is commonly accepted, and though the deterministic hidden variable interpretation could be true, as I understand there isn't a compelling reason to believe that over the probabilistic interpretation. In mathematics, probability is well defined by Kolmogorov axioms, regardless of the physical world. Even purely theoretical concepts can be useful, like the Turing machine with an infinite tape even though the real world has physical limits. This proof is useful either way though since even if quantum physics is random, real world algorithms use pseudorandom number generators. It's useful to know that even without true randomness, these algorithms can in theory be made deterministic give the same level of correctness.

    • @weksauce
      @weksauce 20 годин тому

      @@telaferrum "The probabilistic interpretation of quantum mechanics is commonly accepted" No. Only an ignoramus thinks that God "plays dice with the universe". I and Einstein know better. "True randomness" would mean that the universe has no physics, that causality isn't. Probability is the uncertainty in an agent's mind about a complex or chaotic aspect of reality, not a reality in the universe about its future.

    • @telaferrum
      @telaferrum 20 годин тому

      ​@@weksauce There's no definitive proof either way. You and Einstein could be right. Physicists more accomplished than you or I have proved that both interpretations could be true. For computer science purposes, as I said it doesn't matter. Mathematical probability doesn't depend on the physical world, and the proof just becomes more useful if you believe the world is deterministic. A stochastic universe is hard for many people to accept, but just know that believing in a deterministic one is going against modern mainstream physics. But the mainstream has been wrong before.

  • @KaiSong-vv7wh
    @KaiSong-vv7wh 3 дні тому

    I think the result is poor and the prize is not well-earned. Here is my justification: Suppose I implement an SQP solver. These use internally a QP solver. So I test the QP solver with (billions of!!) random instances and it passes them all. Now I plug it into the SQP solver and try solving ten toy problems. Result: The SQP breaks because the QP solver fails at solving some instance posed by the SQP. The SQP is in P and the QP solver is in P. Everything should be great. And my random oracle was even crypto-secure, so it takes fluctutation of my CPU, thus we can assume the random oracle of arbitrary high complexity, say n^(10^100) in the depicted sense (i.e., in that it is as difficult to judge whether it is fake random -- since it isn't). The learning: Algorithms not only depend on the purity of randomness but also on the _kind_ of randomness. In the SQP example, the issue is that SQP use globalizations, which cause certain _kinds_ of QP subproblems that may not be represented sufficiently in other random test batteries. So what computer users in computation have already and ever assumed is that random tests will hopefully cover decisive scenarios to sufficient extent. The contributions of Avi Wigderson do not enhance or safeguard this hope by the slightest. It is rather merely a revelation of himself what we and everyone else has already been doing. The polynomial equivalence example has the issue that from Gerschgorin circles we can actually construct a sufficiently large integer (yes, indeed, it just has too be large enough, that's all) so that a success of the test gives assertion for equivalence. Also, if we had been to choose a random integer (which is how the original paper proposed the test) then because the number of roots is finite whereas the number of integers is countable infinite, the probablity of the algorithm failing has Lebesque probability zero. If indeed we look (as suggested from the presentation) into trivial pseudo-random bit-patterns, a.k.a. a list of bits of which each is 50%-50% either zero or one, the amount of algorithms from the class BBP covered by this revelation (for him) is rather diminishingly irrelevant. PS: Irrespective of my judgement on the scientific contribution, I still liked the video. Well-summarized. Thanks for your effort.

    • @PolylogCS
      @PolylogCS 3 дні тому

      > Also, if we had been to choose a random integer (which is how the original paper proposed the test) then because the number of roots is finite whereas the number of integers is countable infinite, the probablity of the algorithm failing has Lebesque probability zero. In computer science, integers are typically bounded numbers between 0 and 2^w for some w. So the probabilities of failure are never exactly zero, they are just small if you choose w large enough.

    • @KaiSong-vv7wh
      @KaiSong-vv7wh 2 дні тому

      @@PolylogCS I know, hence why the brackets. But then Gerschgorin provides the value of w. But you are right.

  • @hydropage2855
    @hydropage2855 3 дні тому

    The pannenkoek reference was fantastic

  • @pauljones9150
    @pauljones9150 3 дні тому

    Zero knowledge proof

  • @Arithryka
    @Arithryka 3 дні тому

    parallel universes!!!

  • @HeavyMetalMouse
    @HeavyMetalMouse 4 дні тому

    Okay. As an amateur programmer, I'm trying to get my head around how we actually Dijkstra navigate the graph without actually storing the whole graph in memory - for something like the Tile Puzzle, with 10 trillion nodes, we would clearly have to do this, since storing the map is not viable. As such we translate a Puzzle State into a Node along with its Potential (using the 'optimistic distance' as out potential as suggested in the video). We then interpret every legal move as an 'edge' to-from the State Node we're at and a 'nearby' State Node. When Dijkstra removes the Start node and adds in all its 'neighbors', that is the first time those neighboring nodes exist; we have to generate these new State Nodes and, at the same time, determine if it is a Node that already exists - the only way I can think to do this is by comparing it to every previously generated State Node. With a good Potential function, we should not add too many more nodes than we need to, so the 'neighborhood' of nodes to check should remain relatively small. More to the point, the only nodes being stored in memory at once time are those that are at any point part of the Neighborhood (or Boundary in the code). Is there a good way to estimate the Memory Impact of the algorithm as a function of size of the input space (in a similar way that we estimate Runtime in that big-Oh way?). At the end of the process, we have only acknowledged the existence of a tiny fraction of the total graph, and used the structure of the puzzle itself as a way to directly 'compute' the base edge lengths and the Potentials on an as-needed basis, which is pretty genius. It also cleanly explains why having an edge with a negative length would break the algorithm entirely, because the choice of how to expand the neighborhood depends on the fact that you are always getting 'further away' from the starting point in a global sense; that the length of your 'best current path' is always increasing, which is violated if a path-length can be negative. I would love to see some example where the appropriately well-chosen Potential could be used to fix the negative path length problem.

  • @ArgumentumAdHominem
    @ArgumentumAdHominem 4 дні тому

    Was that a 2 CHF coin you used? ;)

  • @Chris-op7yt
    @Chris-op7yt 4 дні тому

    random is a myth

  • @jaimeduncan6167
    @jaimeduncan6167 4 дні тому

    What is the assumption? that is the most important part of the proof.

  • @icusawme2
    @icusawme2 4 дні тому

    Well done

  • @Paand
    @Paand 4 дні тому

    thats a cool mathematical video, finally not something elementary

  • @fedorryzhenkov4474
    @fedorryzhenkov4474 4 дні тому

    Can somebody explain to me why 1% correctness is enough? Doesn’t it mean that the algorithm does run in polynomial time, but doesn’t do so accurately at all, and then what is the point? I could say then that we can sort any array in O(1) by randomly shuffling items in it and with 0.0000001% getting the correct result. What am I missing?

    • @chiaracoetzee
      @chiaracoetzee 4 дні тому

      Any constant threshold is enough because it's one-sided correctness. Imagine you have two 100-sided dice. One of them says "1" on every side. This represents a problem where the polynomials being tested are equal. The other one says "1" on 99 sides, but says "2" on the 100th side. This represents a problem where the polynomials being tested are different. If you roll both dice a thousand times, with high probability you will roll at least one "2" on the second die, but will never roll a "2" on the first die. So you can tell them apart.

  • @mayankpaneri1295
    @mayankpaneri1295 5 днів тому

    I subscribed midway through this video. Too good.

  • @mrhassell
    @mrhassell 5 днів тому

    Conditional expectations or pairwise independence, but why not both?

  • @reamuji6775
    @reamuji6775 5 днів тому

    so this algorithm only can be applied assuming the node position can be fitted into a map ? i imagine for more complicated node we can make a 3d map of it or whatever dimension needed, but if the question is, how can you compute their position for arbitrary node weight ?

  • @andrashorvath2411
    @andrashorvath2411 5 днів тому

    Great video, the pace is good, not boring at all for me, congrats. Maybe you could use dark theme for the animation, it would be better for the eyes. Keep up the good work. Cheers.

  • @NineInchTyrone
    @NineInchTyrone 5 днів тому

    Get a hairstylist

  • @rudiklein
    @rudiklein 5 днів тому

    It's amazing to see how randomness is created for encryption at Cloudflare. They use, among other solutions, a lava lamps wall and a camera to generate pure randomness. You can even visit this wall because human influence will create even more randomness. 🤯

    • @javastream5015
      @javastream5015 День тому

      Hardware generated randomness exists since a long time.

  • @3141minecraft
    @3141minecraft 6 днів тому

    5:10 I have an idea for polynomial testing. Check for x=0 Check for x=1 Check for x=2 Check for all natural numbers less than or equal to the degree of the polynomial. A deterministic algorithm with 100% accuracy. Why this is not used?

    • @gianlucaspitzer5165
      @gianlucaspitzer5165 5 днів тому

      Because it is exponential in the size of the input. Even in the simple case x^n, you need to encode n, which needs log n bits. So your input z has length |z| = O(log n), and you need to test n = 2^(log n) = O(2^|z|) points.

  • @outerskyb
    @outerskyb 6 днів тому

    I hope to see your bass play in the next random video

  • @pepefrogic3034
    @pepefrogic3034 6 днів тому

    So you never sajd what this "condition that everyone believes" is. Pathetic

  • @gideonk123
    @gideonk123 6 днів тому

    Great video! Thanks. Just as a side-note regarding tests of randomness: in addition to statistical summary tests, there are other notions such as: - Compressibility: how much can we compress a given sequence? If it’s “truly” random, we cannot compress it. This a Minimum Description Length characterization. - Kolmogorov complexity: what is the length of the shortest computer program for generating the given sequence? This is a beautiful idea, although impossible to do, because we don’t know if it’s really the shortest. All 3 approaches (statistical summaries, compressibility, and Kolmogorov complexity) are inter-related, since you can sometimes (not always) convert one to the other.

  • @apennameandthata2017
    @apennameandthata2017 6 днів тому

    That haircut is random.

    • @tomkeq4900
      @tomkeq4900 6 днів тому

      that's a random comment...

  • @joaoguerreiro9403
    @joaoguerreiro9403 6 днів тому

    What a great video!!!

  • @ASOUE
    @ASOUE 6 днів тому

    Holy cow this video is great. Makes me feel like I could’ve come up with this proof. Thanks

  • @LarsDonner
    @LarsDonner 6 днів тому

    You can compute arbitrary digits of pi quite efficiently, as long as you're using base 16. Now I have to try building a random number generator from that, thanks!

  • @user-uc2qy1ff2z
    @user-uc2qy1ff2z 6 днів тому

    There was algorithm, which calculates digits of pi with certain given index. So, it's not so bad to use pi randomiser. However, larger index--more time it'll take to compute it anyway, because it's based on sum of sequence.

    • @matta5749
      @matta5749 5 днів тому

      it probably used hard coded values to some extent, which defeats the purpose using it in this hypothetical. Pi itself is not important here, it's just used as an example of a PRNG algorithm that runs in polynomial time.

  • @rtl42
    @rtl42 6 днів тому

    that's great, but... is the assumption true? or is this a kind of "assume RH; then blah" type of result?

    • @PolylogCS
      @PolylogCS 6 днів тому

      The assumption is a bit hard to explain, but it is a bit like "there exists at least one problem that is similarly hard both with and without being able to use randomness". So it is a bit safer than assuming RH but, yeah, I understand it's a bit underwhelming that there has to be an assumption. :)