Introduction to Hypergraphs [Graph Theory]

Поделиться
HTML-код
  • Опубликовано: 15 ноя 2024

Комментарии • 38

  • @Channel-nu1bv
    @Channel-nu1bv Год назад +1

    Mindblowing! Ultra clear and helpful! Thanks a lot!

  • @TwentyNineJP
    @TwentyNineJP 7 месяцев назад +1

    I just came across the concept of hypergraphs yesterday, and I think they're exactly the solution I've been looking for for project I've been stuck on

    • @VitalSine
      @VitalSine  7 месяцев назад +1

      Awesome! I'm curious, what kind of project are you working on if you are able to share?

    • @TwentyNineJP
      @TwentyNineJP 7 месяцев назад

      ​@@VitalSine RUclips filtered my reply because I linked to the site, which is frustrating 😅
      It's a tool that evaluates the output function of simplified digital integrated circuit topologies ("stick diagrams"), primarily intended for students.
      Through a lot of trial and error, the internal model has converged on something that is essentially a directed hypergraph, but the evaluation algorithm (stepping through vertices and determining their logic levels) is very complex and has a deeply rooted bug that sometimes manifests when VDD (logic high) and GND (logic low) are shorted together.
      I think that applying existing hypergraph theory might help me greatly simplify and debug the algorithm.
      Since I can't post a link, I'll describe the URL. The domain name is "stixu", the TLD is "io". If you go to "/test", it'll run the testbench so you can click on the individual test cases to see example circuits.
      Most of the test cases have 8 results - that's for all rotations and reflections of the circuit. The failing tests (aside from the intentionally failed test case intended to make sure the testbench itself works) are rotation and reflection dependent

    • @TwentyNineJP
      @TwentyNineJP 7 месяцев назад +1

      @@VitalSine RUclips filtered my reply *twice*, which is frustrating 😅
      I'll try again without referencing how to get to the project
      It's a tool that evaluates the output function of simplified digital integrated circuit topologies ("stick diagrams"), primarily intended for students.
      Through a lot of trial and error, the internal model has converged on something that is essentially a directed hypergraph, but the evaluation algorithm (stepping through vertices and determining their logic levels) is very complex and has a deeply rooted bug that sometimes manifests when VDD (logic high) and GND (logic low) are shorted together.
      I think that applying existing hypergraph theory might help me greatly simplify and debug the algorithm.

    • @VitalSine
      @VitalSine  7 месяцев назад

      @@TwentyNineJP Fascinating, best of luck with your project!

  • @klausprinoth4364
    @klausprinoth4364 2 года назад +4

    Awesome video! Great explanation on stuff I never heard about.

    • @VitalSine
      @VitalSine  2 года назад +3

      Glad you enjoyed it!

  • @amitozazad1584
    @amitozazad1584 2 года назад +2

    Nice effort man, kudos ! At 2:29: (what vertices are incident to edge e3?) shouldn't it be a, c, d, e ? As I see that e3 circles around these 4 vertices, right ?

    • @VitalSine
      @VitalSine  2 года назад +3

      Thank you! I drew the hypergraph poorly there, but if you look really closely e3 is incident to c, d, e, and e2 is incident to a, c, d, and e1 is incident to a, b, but I can see how it looks like e3 should be a, c, d, e. I just edited in a note to the video to clarify that fact, thanks for letting me know about this issue

  • @shei_dark
    @shei_dark Год назад +1

    Very helpful and informative video, Thanks! I was looking for a video to understand hypertrees and constructing them when there is an order and I came across this video which gave me a good understanding of hypergraphs. I am wondering if you have specific video about hypertrees!? I have searched and I couldn't find any. Thanks!

    • @VitalSine
      @VitalSine  Год назад +2

      Glad it was helpful! I'm actually working on a hypertree video right now, should be out soon 👍

    • @shei_dark
      @shei_dark Год назад

      @@VitalSine looking forward to it 🤩 Thanks!

  • @RadhaKrishnan-ru8py
    @RadhaKrishnan-ru8py Год назад +1

    Thanqq.... So much sir your attempt help me to complete my project successfuly.... Thanks alode❤❤

    • @VitalSine
      @VitalSine  Год назад

      I'm very glad to hear that!

  • @RadhaKrishnan-ru8py
    @RadhaKrishnan-ru8py Год назад +1

    This videos help me to understand very easly this concept 🎉🎉

  • @kevon217
    @kevon217 4 месяца назад +1

    Clutch video. Thanks!

  • @florianwicher
    @florianwicher 2 года назад +2

    A hidden gem! Thanks!

  • @bigredone1030
    @bigredone1030 Год назад +1

    Excellent video

  • @macchiato_1881
    @macchiato_1881 13 дней назад

    For the hypergraph drawing at 1:15, you could have used different colored lines to indicate the hyperedges. I was confused at first lmao

  • @navneetsinha451
    @navneetsinha451 Год назад +1

    I want to create a hypergraph in Python which contains 100s of nodes, and user defined edges. Is it possible to do this ?

    • @VitalSine
      @VitalSine  Год назад

      This is certainly possible, I would suggest you look into HyperNetX for an existing Python library for working with hypergraphs, pnnl.github.io/HyperNetX/index.html

    • @navneetsinha451
      @navneetsinha451 Год назад +1

      @@VitalSine Thanks for your reply.
      If I want to draw a hypergraph having hundreds of nodes then I can use Matrices may be, however it will be a sparse matrix. Also space consuming code!

    • @navneetsinha451
      @navneetsinha451 Год назад +1

      @@VitalSine Can you suggest any other Data structure I can use. That would be of great help!!

    • @VitalSine
      @VitalSine  Год назад

      You could use a list for the nodes, you can use a dictionary to represent your collection of edges, such as {"e1" : [1 , 2, 3], "e2" : [2, 3]}.

  • @prathamkolhe2582
    @prathamkolhe2582 2 года назад +1

    Can you please share your PPT's for reference ?
    Thanks for the video !!

    • @VitalSine
      @VitalSine  2 года назад

      Will do, I'll put them out on a Google drive or dropbox very soon.

    • @VitalSine
      @VitalSine  2 года назад +1

      Just finished putting them on a Google drive, here is the link: drive.google.com/drive/folders/1Y2pvBVGbYkfZamX1Ne0Ewz2XAXQIjI2O?usp=sharing

  • @rimbika9201
    @rimbika9201 2 года назад +1

    Please explain Eulerian and Hamiltonian graph using the concept of hyper graph

    • @VitalSine
      @VitalSine  2 года назад

      Great suggestion, will do!

  • @naamantan3692
    @naamantan3692 2 года назад +1

    this is really helpful, thank you!

    • @VitalSine
      @VitalSine  2 года назад

      Glad it was helpful!

  • @eldhaelizabeth4856
    @eldhaelizabeth4856 2 года назад

    Thank you so much... Very helpful..

  • @piotrlezanski5156
    @piotrlezanski5156 2 года назад +1

    great

  • @rajapushpam3214
    @rajapushpam3214 2 года назад +1

    kindly explain semi graph sir

    • @VitalSine
      @VitalSine  2 года назад

      Thank you for the suggestion, I'll cover semi graphs in the near future 🙂

  • @kipling1957
    @kipling1957 Год назад

    Fell at the first post. Can’t you just describe something in simple language for the non-mathematician? Vertices? Edges?

    • @VitalSine
      @VitalSine  Год назад +2

      Sorry if this was confusing, the video was intended for those familiar with graph theory, I have a video explaining the terminology from graph theory and introducing graph theory if you are interested: ruclips.net/video/N_tJo3XwY-M/видео.htmlsi=HO26ugLZhg9DEI-J
      Basically, you can think of vertices as objects we're interested in, they can be anything (people for example), and edges as relationships between those objects. Vertices are visually shown as dots, edges (in hypergraph theory) are visually shown as some kind of shape, usually an oval or circle, enclosing dots. The "hypergraph" is just the vertices and the edges: it's the objects you're interested in AND the relationships between them that you're interested in. For example, maybe you want to study a group of 100 people as your objects, and the relationship that we are interested in is whether one person went to the same high school as another person. If they did, then we'll call those people "related". If you draw a dot for each person, then you draw an oval that contains/envelopes all of the dots that represent people that went to high school A, then you draw an oval that contains all of the dots that represent people that went to high school B, and so on. So if two dots appear inside the same oval as each other, that's just a way of representing the following information: "the people these dots represent went to the same high school as each other." The dots are always your vertices, your objects of interest. The ovals are always your edges, your relationships between objects of interest. I hope this helps!