Graph Theory I
We started off today with one last bit of logic, which is the difference between valid, invalid, and sound arguments. When evaluating an argument, you first check to see if it is valid or invalid. If it is invalid, you stop. If it is valid, you then check the premises to see if they are true, and if any of them are untrue, we say the argument is "Valid but Not Sound". If they are all true, then we say the argument is "Valid and Sound" (or Sound for short).
If someone presents you a sound argument, and you can't find any fault with the premises or the logic, then you are logically obligated to accept the conclusion as well.
We then moved into a discussion of graph theory. Graphs are just points (called a "vertex") connected by lines (called an "edge"). What do they mean... well, that's pretty open ended. It could be electrical connections between logic gates, it could be friendships on Facebook, it could be routes to travel across America, it could be holding which states are adjacent to each other.
We went over a lot of terminology, and showed the two main ways of implementing a graph:
1) Adjacency Matrix - useful when a graph is either dense or small
2) Adjacency List - useful with a graph is either sparse or large
Dense means that the vertices have a lot of connections to other vertices in the graph, like if you have a local group of friends, holding who knows who. Sparse means more like Facebook, where you are only friends with a very low percentage of all people in the social network.
We then talked about DFS vs BFS.
DFS means going deep first and then backtracking. BFS means going wide first and moving outwards in sort of like concentric circles. These terms are used all over the place in computer science.
Other Videos By Bill Kerney
2021-10-02 | Reading from Files in C++ |
2021-10-02 | Fallacies Part I |
2021-09-30 | How to export and import assets between projects in UE4 |
2021-09-30 | Making an AI Enemy Part II |
2021-09-30 | Invalid/Valid/Sound II + Hamiltonian/Eulerian Paths and Cycles |
2021-09-30 | UE4 Damage System and HUDs with UMG |
2021-09-30 | Top-Down and Bottom-Up Programming |
2021-09-29 | Midterm I Review |
2021-09-29 | Making a Castle with the Procedural Spline Walls System |
2021-09-28 | Making an AI Opponent Part I |
2021-09-28 | Graph Theory I |
2021-09-27 | 2D Vectors and Arrays |
2021-09-27 | Scratch Part II |
2021-09-25 | Auto + Growing Vectors + Nonblocking I/O |
2021-09-24 | Introduction to Scratch |
2021-09-23 | Niagara Part II |
2021-09-23 | Landscape + Foliage, Hitscan Weapons, Niagara Particle Effects |
2021-09-23 | Syllogisms |
2021-09-23 | Vectors vs. Arrays (i.e. why Vectors are better) |
2021-09-22 | Ethics in Autonomous Vehicles |
2021-09-21 | Karnaugh Maps, Simplifying If Statements |