Als ich damals vor einigen Jahrzehnten Informatik studiert habe, wurde uns erzählt, dass die Fahrplanauskunft unseres Nahverkehrsverbundes in Prolog geschrieben sei. Ich kann es nicht mehr beweisen und wahrscheinlich stimmt es inzwischen auch schon nicht mehr, aber das wäre ein sinnvoller Einsatzzweck für logische Programmierung.
In Prolog kannst Du halt einfach so ein Programm schreiben:
fahrzeit(a-straße,bahnhof,5).
fahrzeit(a-straße,clairewerk,7).
fahrzeit(bahnhof,dorfplatz,13).
fahrzeit(clairewerk,dorfplatz,12).
fahrzeit(X,Y, Zeit) :- fahrzeit(X,Umstieg,Zeit1), fahrzeit(Umstieg,Y,Zeit2), Zeit is Zeit1+Zeit2.
Wenn Du dann noch Umsteigezeiten berücksichtigen willst, und nicht nur irgendeine, sondern möglichst die schnellste Strecke bekommen willst, Taktungen, Streckensperrung etc berücksichtigen musst, wird es natürlich nochmal deutlich komplizierter, aber dafür, dass das im Prinzip nur eine Zeile echter Code ist, ist das Ergebnis schon ganz gut.
Als ich damals vor einigen Jahrzehnten Informatik studiert habe, wurde uns erzählt, dass die Fahrplanauskunft unseres Nahverkehrsverbundes in Prolog geschrieben sei. Ich kann es nicht mehr beweisen und wahrscheinlich stimmt es inzwischen auch schon nicht mehr, aber das wäre ein sinnvoller Einsatzzweck für logische Programmierung. In Prolog kannst Du halt einfach so ein Programm schreiben:
fahrzeit(a-straße,bahnhof,5). fahrzeit(a-straße,clairewerk,7). fahrzeit(bahnhof,dorfplatz,13). fahrzeit(clairewerk,dorfplatz,12). fahrzeit(X,Y, Zeit) :- fahrzeit(X,Umstieg,Zeit1), fahrzeit(Umstieg,Y,Zeit2), Zeit is Zeit1+Zeit2.
Und dann abfragen:
? fahrzeit(a-straße,dorfplatz, X). Yes (X=18) fahrzeit(a-straße,bahnhof,5). fahrzeit(bahnhof,dorfplatz,13).
Wenn Du dann noch Umsteigezeiten berücksichtigen willst, und nicht nur irgendeine, sondern möglichst die schnellste Strecke bekommen willst, Taktungen, Streckensperrung etc berücksichtigen musst, wird es natürlich nochmal deutlich komplizierter, aber dafür, dass das im Prinzip nur eine Zeile echter Code ist, ist das Ergebnis schon ganz gut.