Тёмный

Der A*-Algorithmus - Grundlagen 

Samuel Arzt
Подписаться 50 тыс.
Просмотров 21 тыс.
50% 1

Игры

Опубликовано:

 

15 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 16   
@Revotap
@Revotap 5 лет назад
Damit hast du dir ein Abo verdient. Das war mal mega verständlich. Davon sollte sich mein Prof. mal eine Scheibe abschneiden. Vielen Dank
@SamuelArzt
@SamuelArzt 5 лет назад
Danke für den netten Kommentar! Freut mich wenns geholfen hat.
@ELBARTOmovies
@ELBARTOmovies 7 лет назад
Vielen Dank für die ausführliche Erklärung!
@Varibam
@Varibam 6 лет назад
Sehr gutes Video, danke dafür. Mach weiter so!
@phnx7778
@phnx7778 6 лет назад
Ich denke, dein Pfad ist nicht optimal. Vom Start aus müsste dieser zweimal diagonal nach rechts unten verlaufen, hier scheint dir ein Fehler bei der Parent-Zuweisung passiert zu sein
@SamuelArzt
@SamuelArzt 6 лет назад
Gut aufgepasst, dies ist allerdings vollkommen beabsichtigt. Da ich den Algorithmus vorwiegend für die Spieleentwicklung verwende, habe ich auch hier eingebaut, dass man sich nicht über Diagonalen, die direkt neben unbegehbaren Feldern liegen bewegen darf. Dies würde nämlich dazu führen, dass sich die Figur beim traversieren der Diagonale leicht durch die Wand bewegt, was natürlich unerwünscht ist. Diese Extra-Regel, dass Diagonalen nicht begehbar sein sollen, wenn diese durch eine Wand blockiert werden würden, ist in meinem Code hier implementiert: github.com/ArztSamuel/A-Star-Pathfinding/blob/master/C-Sharp%20Demo/A-Star%20Demo/AStar.cs#L204 Dementsprechend kannst du diese Kondition auch ganz einfach wieder entfernen, solltest du diese Regel nicht benötigen.
@kiyu3229
@kiyu3229 2 года назад
@@SamuelArzt ich bin katrtoffel
@timon3360
@timon3360 5 лет назад
Danke!
@realfan46
@realfan46 6 лет назад
Danke für das Video. Jedoch verstehe ich nicht, warum man eine unterschätzende Heuristik Funkion für den Algorithmus braucht, damit er korrekt arbeitet.
@SamuelArzt
@SamuelArzt 6 лет назад
Danke für den netten Kommentar! Das ist tatsächlich eine sehr gute Frage. Die Webseite, die ich in der Videobeschreibung verlinkt habe, erklärt kurz die Unterschiede zwischen unterschätzenden, überschätzenden und richtigen Heuristiken, aber ich glaube sie geht auch nicht genauer auf die Details ein... (theory.stanford.edu/~amitp/GameProgramming/Heuristics.html)
@schaff220
@schaff220 5 лет назад
Auch wenn die Frage schon 4 Monate alt ist, versuch ich diese Trotzdem zu beantworten. Der Algorithmus würde auch gänzlich ohne diese Heuristik funktionieren, allerdings wäre die durchschnittliche dauer diesen Weg zu finden länger, da die Felder willkürlich untersucht werden. Der Wert der unterschätzenden Heuristik gibt dem Algorithmus quasi einen Vorschlag welche der zu untersuchenden Felder er sich primär anschauen soll. Kann man sich wie ein Kompass vorstellen, der auf das Zielzeigt.
@agnesakne4409
@agnesakne4409 2 года назад
du scheinst kein schlechter Programmierer zu sein
@patrickjoel8779
@patrickjoel8779 4 года назад
I don't get German language
@devrandev5893
@devrandev5893 6 месяцев назад
Then be a man and learn it. U useless piece.
@TheSimmyJimmy
@TheSimmyJimmy 7 лет назад
Ich glaube, dein Pfad bei Min. 10. ist falsch?! Weil im ersten Schritt würde man in das Feld rechts gehen, weil dieses ja nur 40 "kostet" und nicht nach rechts unten, da hier die "Kosten" 54 betragen...oder nicht?
@SamuelArzt
@SamuelArzt 7 лет назад
Gut aufgepasst! Die F-Kosten des rechten Feldes sind tatsächlich kleiner als die des Feldes darunter und es wird auch als erstes zur geschlossenen Liste hinzugefügt (blau markiert). Wichtig ist jedoch: wenn man Felder "untersucht" und zur geschlossenen Liste hinzufügt, beschreitet man diese nicht sofort. Es werden zuerst so viele Felder wie notwendig untersucht (also zur offenen/geschlossenen Liste hinzugefügt), bis eine der Abbruchbedingungen erfüllt ist und erst dann kann man den gefunden Weg beschreiten. In diesem Fall würden sich durch das Untersuchen der Nachbarn des rechten Feldes keine neuen günstigeren Felder ergeben und es wird direkt das Feld rechts unter dem Startfeld (jetzt das günstigste in der offenen Liste (grün markiert)) zur geschlossenen Liste hinzugefügt. Durch das Rückverfolgen der Parents der Felder ergibt sich dann am Ende der gezeigte Pfad. Am besten verständlich wird das ganze, meiner Meinung nach, durch eine interaktive Visualisierung. Auf meiner Github-Seite kannst du dir zum Beispiel das Java-Programm downloaden, dass ich auch in diesem Video verwendet habe und den Algorithmus Schritt für Schritt durchspielen: github.com/ArztSamuel/A-Star-Pathfinding Danke für dein Interesse, ich hoffe ich konnte dir weiterhelfen.
Далее
The A*-Algorithm - Basics
14:54
Просмотров 13 тыс.
A* Algorithmus EINFACH erklärt (Beispiel)
6:47
Просмотров 7 тыс.
Какой звук фальшивый?
00:32
Просмотров 267 тыс.
БЕЛКА РОЖАЕТ? #cat
00:21
Просмотров 706 тыс.
Dear Game Developers, Stop Messing This Up!
22:19
Просмотров 712 тыс.
A* (A Star) Search Algorithm - Computerphile
14:04
Просмотров 1,1 млн
MarI/O - Machine Learning for Video Games
5:58
Просмотров 11 млн
A* Algorithmus (Erklärung durch Beispiel) (German)
13:24
AI can't cross this line and we don't know why.
24:07
Просмотров 348 тыс.
A* Pathfinding (E01: algorithm explanation)
11:39
Просмотров 2,1 млн
Dijkstra-Algorithmus
12:06
Просмотров 92 тыс.
How can a jigsaw have two distinct solutions?
26:23
Просмотров 289 тыс.