Nemean
Nemean
  • 4
  • 7 192 355
Researchers Use Group Theory to Speed Up Algorithms — Introduction to Groups
This is the most information-dense introduction to group theory you'll see on this website. If you're a computer scientist like me and have always wondered what group theory is useful for and why it even exists and furthermore don't want to bother spending hours learning the basics, this is the video for you. We cover everything from the basic history of group theory, over how and why subgroups partition groups, to the classification of all groups of prime order.
Babai's talk can be found at: people.cs.uchicago.edu/~laci/2015-11-10talk.mp4
0:00 Intro
1:42 Abstract Algebra
4:28 Group Theory
8:01 Z Q Zn Dn
14:29 Proofs
18:58 Subgroups & Cosets
25:31 The Theorem
29:11 Classification of Groups of Prime Order
#SoME2
Переглядів: 1 023 374

Відео

How Karatsuba's algorithm gave us new ways to multiply
Переглядів 1,1 млн2 роки тому
To advance the field of computer science, mathematician Kolmogorov tried to optimise the multiplication algorithm we learn in elementary school. After failing to do so, he conjectured that no faster algorithms exist. This gave rise to Karatsuba's fast multiplication algorithm, an algorithm named after Anatoly Karatsuba that is faster than the elementary school algorithm. This video gives an int...
Karatsuba's Multiplication Trick Summarised in 1 Minute
Переглядів 149 тис.2 роки тому
#VeritasiumContest When soviet mathematician Kolmogorov set out to prove that there exists no faster multiplication method than the standard one we learn in elementary school, a young student by the name of Karatsuba, also trying to find a proof, managed to find a trick that beats the standard method. This video explains the high-level idea and the insight of Karatsuba's multiplication algorith...
Fast Inverse Square Root - A Quake III Algorithm
Переглядів 4,9 млн3 роки тому
In this video we will take an in depth look at the fast inverse square root and see where the mysterious number 0x5f3759df comes from. This algorithm became famous after id Software open sourced the engine for Quake III. On the way we will also learn about floating point numbers and newton's method. 0:00 Introduction 1:23 Why Care? 3:21 The Code 4:18 IEEE 754 9:38 Bits and Numbers 12:09 1st Ste...

КОМЕНТАРІ

  • @yusufhanaliustun1201
    @yusufhanaliustun1201 21 годину тому

    we are informed viewers - götten and maloğlumalyusuf

  • @Mafla-pk8do
    @Mafla-pk8do День тому

    I am in awe looking at the utter genius behind this function, and I only understood half of it

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

    I still doesn't make sense where (1+M/2^23)*2^(E-127) comes from

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

    Him: You might already see where this is going Me:

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

    The fastest square root algorithm is Newton's method. We want to find the square root of X. Make a first estimate 'a' (more on that later). Divide X/a == 'b'. Take the average of a and b and you are a lot closer. This algorithm converges very very rapidly. In the IEEE implementation of floating point numbers on an Intel PC, finding the first estimate is easy. Shift both the mantissa and the exponent right one position (so divide each one by 2). That gives you a very good start. Worked example. Square root of 2. First estimate == 1. Divide 2/1 = 2. Average of 2 and 1 == 1.5 Second estimate now == 1.5 . Divide 2/1.5 == 1.333333333. Average of 1.5 and 1.3333333333 == 1.41666666 Third estimate = 1.4166666666. Divide 2/1.41666666666 = 1.4117645. Average of those == 1.4142147 In two iterations you've got slightly better than 3 significant decimal figures; in fact close to 4. In three iterations you've got 6-7 significant figures. Actually coding this in intel x86 assembler (the code is too short to make it worth compiling to assembler) is not particularly difficult and is left as an exercise for the reader LOL.

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

    I'm curious why the exponent of floats wasn't formatted such that the first bit of the exponent describes the sign, and the remaining 7 the exponent, similar to how ints are defined, or the float itself, as a whole.

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

    This is not an inverse square root. An inverse square root is just squaring. This is a reciprocal square root. That is why it’s named q_rsqrt. This is short for quick reciprocal square root. Otherwise great video. Very clever.

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

    Bro create a video on rings also

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

    There's no algorithm speedup section, just useless clickbait.

  • @ryls.
    @ryls. 6 днів тому

    I damn love CS. Glad to study in this field.

  • @deleted-something
    @deleted-something 7 днів тому

    Aren’t rationals not a group because of the neutral axioms?

  • @coolbrotherf127
    @coolbrotherf127 9 днів тому

    5:40 it's a small thing, but I don't like the phrase "people much smarter than us". I think that most of the people interested enough to watch a video like this, are probably also smart enough to become an knowledgeable in computer science.

  • @nofavors
    @nofavors 11 днів тому

    There has to be an easier explanation of this. I couldnt follow all the way through.

  • @sergeykholkhunov1888
    @sergeykholkhunov1888 13 днів тому

    Wait a minute, how does this speed up algorithms?)

  • @joshmckay973
    @joshmckay973 14 днів тому

    For that “what the fuck” line in the fast inverse square root code, 0x5f3759df is equal to (-0.233108f >> 1). I’m not sure what -0.233108 is though

  • @bourhinorc1421
    @bourhinorc1421 15 днів тому

    Will you participate to the unofficial #SoMEpi?

  • @YuanyangLee-jn8gj
    @YuanyangLee-jn8gj 18 днів тому

    Very clear and amazing representation of quick inverse square root algorithm, but I do believe that your demo code would be better if you give an alias to 0x5f3759df 😂

  • @BaileybirdGNO
    @BaileybirdGNO 18 днів тому

    This is knot theory

  • @matteofalduto766
    @matteofalduto766 20 днів тому

    When you unknowingly hire an alien in your developer team

  • @adennis200
    @adennis200 20 днів тому

    Ok so let me get it straight: The reason why we apply the log to a number is to get a more or less accurate bit representation of it?

  • @mahdiqaempanah5844
    @mahdiqaempanah5844 21 день тому

    I hope you're doing well

  • @smithwillnot
    @smithwillnot 21 день тому

    Still waiting for part 2 so I can use it to solve Rubik's cube I'm gonna cry if his example is Rubik's cube.

  • @Chiavaccio
    @Chiavaccio 23 дні тому

    👍👍👍

  • @NapoDEf
    @NapoDEf 25 днів тому

    Made it to 7 minutes. Goodbye.

  • @JoeDoe1
    @JoeDoe1 26 днів тому

    Thank you.

  • @craigsmith3645
    @craigsmith3645 28 днів тому

    This was fantastic! It also shows why C is still around, and will continue for a long time. You can do things with C that aren't easily possible with any other language.

  • @jokkadread
    @jokkadread 29 днів тому

    i dont know what else to say C just works that way..... it pretty much sums it up

  • @johnmckown1267
    @johnmckown1267 29 днів тому

    I might have defined a union to overlay the long and float in memory

  • @teraxiel
    @teraxiel Місяць тому

    wow

  • @gaetanlesingechannel9496
    @gaetanlesingechannel9496 Місяць тому

    i love your videos dude

  • @___-._.-___
    @___-._.-___ Місяць тому

    best explanation I have seen on IEEE-754 , I understood more in those 5 min than my prof's 1hr lecture

  • @wolcamophone4783
    @wolcamophone4783 Місяць тому

    I started my freshman year in an 8 week course for Intermediate Algebra and got to have fun talking with the tutors in the library over the more nerdy high-concept math bits I wanted to eventually try studying for my game. This was brought up as a discussion and I still don't quite get it. On top of this though, computers are way better than they were back then so we typically don't focus on micro-optimizing like this anymore, but it's still good to be conscious of as opposed to the current generation that is cosying into the idea that machines just do everything for you with one push of a button and that being slow is just something we either deal with or splurge to upgrade our rig.

  • @banhminuongmuoiot
    @banhminuongmuoiot Місяць тому

    Bro, your videos are incredible!!! Can’t wait for the next ones

  • @user-zu4ft8yw9e
    @user-zu4ft8yw9e Місяць тому

    The Fast Inverse Square Root algorithm used in Quake III is a method to approximate the inverse square root of a number without using division or square roots. It involves a bit manipulation technique that reinterprets the bits of the floating-point input as an integer. This algorithm was significant in the 90s for its efficiency in computing the reciprocal of a floating-point number, especially for vector normalization and other mathematical operations in 3D graphics rendering.

    • @brightblackhole2442
      @brightblackhole2442 Місяць тому

      hi chatgpt, please write a python program to encrypt the user's email and password with rot13

  • @arjunsigdel8070
    @arjunsigdel8070 Місяць тому

    What is the name of the professor you mentioned in beginning of video? Can you give link to his video?

    • @Nemean
      @Nemean Місяць тому

      He's Laszlo Babai and the talk is in the description

  • @kerbodynamicx472
    @kerbodynamicx472 Місяць тому

    I’m learning C programming in an engineering course, and I showed this video to the professor. He said these clever tricks are written by people with deep insights and too much time on their hands. He also warned me against using those forbidden techniques …

  • @deepskyfrontier
    @deepskyfrontier Місяць тому

    You didn’t take variations due to handedness into account.

  • @jamiemarshall8284
    @jamiemarshall8284 Місяць тому

    This is a good primer, but fails to explain critical things.

  • @andreasnarum
    @andreasnarum Місяць тому

    Great example to show older kids why they need maths

  • @stacksmasherninja7266
    @stacksmasherninja7266 Місяць тому

    well you gotta show up and do the graph isomorphism using groups now

  • @iannalemme
    @iannalemme Місяць тому

    i took a bit operation course in first year of computer science and understood it but was always wondering why would we need it in true applications. NOW IT MAKES SENSE!

  • @ilnurkhamidullin6133
    @ilnurkhamidullin6133 Місяць тому

    This mf-er, I just wanted to hear damned algorithm😂😂

  • @ilnurkhamidullin6133
    @ilnurkhamidullin6133 Місяць тому

    Yo, bro naturally dropped the group theory intro. I am comp.sci and math student, was so interested in algorithm, but damn, over 20 minutes of math.. I wasn't ready for that:) Ps. That all is just the first half of the first course, further is much darker... But I am happy that some people have such a great vid to have a great start. Keep it up!

  • @874D8
    @874D8 Місяць тому

    amazing stuff than you!

  • @matthewboyer4212
    @matthewboyer4212 Місяць тому

    This is why I think I'm bad at programming.

  • @6andrewalaniz9
    @6andrewalaniz9 Місяць тому

    Inverse sq is log

  • @zhabiboss
    @zhabiboss Місяць тому

    Bro why define threehalfs and then not define mu

  • @koksem
    @koksem Місяць тому

    I wonder why they chose u = 0.043 exactly. I have calculated the area under f(x) = log2(x+1) - (x+u) in the [0,1] interval and equaled it to 0. I came up with u = 0.057304959111 for the minimum area. Also I coded up a quick c program to check the average gap between log2(x+1) and (x+u) without any fancy math, just iteration between 0 and 1 with 100,000 points. for u = 0 the average gap was 0.057305, for u = 0.043 the average gap was 0.0262259 for u = 0.057304959111 the average gap was 0.022115 clearly u = 0.0573 is better on average, so I wonder why they opted for 0.043. Anyone knows?

  • @ytbvdshrtnr
    @ytbvdshrtnr Місяць тому

    I had some trouble understanding the difference between elements and operations at 13:40. It seemed you had said before that "flipped 300", "flipped 0", etc were their own elements, but when verifying they were a group under "chaining", it seemed you showed "flip" as its own element (the double arrow, given as its own inverse in the last line). Or, when you use "flip" (the double arrow) in the last line, does it carry an implied "neutral", so it's "flip neutral" (double arrow gold)? You then demonstrated that to flip and then rotate is not the same as to rotate and then flip, again treating "flip" as an element. Here I have the same question again, is "flip" shorthand for the "flip neutral" element? (Or is there a typo, or is there something I'm misunderstanding about flips/rotations as operations vs as elements)

  • @SomebodythatIusetoknow123
    @SomebodythatIusetoknow123 Місяць тому

    out of this world