AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vekehrssimulation: NaSch-Modell

Ein Thema von Jazzman_Marburg · begonnen am 8. Feb 2011 · letzter Beitrag vom 9. Feb 2011
 
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#6

AW: Vekehrssimulation: NaSch-Modell

  Alt 9. Feb 2011, 08:16
Ist schon da: TFahrzeug mit V als aktuelle Geschwindigkeit, aktuelle Position (Nr. der Zelle), VMax, Trödelwahrscheinlichkeit und den Methoden Beschleunigen und Bremsen.
Und fahren()! Das tut das Auto ja auch selbst.

Zitat:
Meine TStrasse erzeugt am Anfang sagen wir 10 Fahrzeuge
Das ist eigentlich nicht Aufgabe der Straße. Die Straße sollte von Außen die Autos bekommen (DependencyInjection) und vielleicht noch ein AddCar(car: TCar) oder so haben.

Zitat:
1. Anz freier Zellen zum Vordermann
Brauchst du erstmal nicht berechnen. Das passiert im "Bremsen"-Schritt.

Zitat:
Mein Problem: Nehmen wir an, ich möchte eine Strecke von 30 Kilometern simulieren. Jedes Strassen-Segment (Zelle) ist 7,5 m lang (es passt genau ein Fahrzeug rein) -- das hiesse 30.000 m / 7,5 m = 4000 Strassen-Segmente. Wo taucht jetzt diese 40000 auf, wenn ich die Zellen selbst nicht modeliere?
Implizit über die Position der Autos. Und du kannst ja die Autos von der Straße entfernen, wenn die 4000 überschritten sind. Also TRoad.OnCarLeaving oder sowas.

Zitat:
Ich hoffe meine Frage ist klar geworden: Ja, Zellen selbst nicht modellieren ist gut -- aber so ganz geht das doch nicht. Ich denke immer noch, ich bräuchte ein Array mit diesen Zellen. Jede dieser Zellen kann drei verschiedene Werte annehmen: 0 = frei, 1 = Auto steht, 2 Auto fährt mit V.
Du brauchst das gar nicht. Die Autos müssen nur ihren Vordermann kennen. Wie lang die Straße ist, wie viele Autos noch da sind und was die tun ist denen doch egal.

Zitat:
So als Gerüst in etwa sowas:
Das geht, aber wie gesagt: eigentlich ist die Info gar nicht nötig. Und sie beraubt einem der Optimierungsmöglichkeiten. Wenn es nämlich - so wie ich oben vorgeschlagen hatte - nur eine Methode getNextCar() gibt, die einfach den Vordermann ausspuckt, ist es egal wie das implementiert wird. Man kann da schön optimieren. Beispielsweise ne HashMap nehmen, was den linearen in konstanten Aufwand verwandeln würde. Man könnte auch über verkettete Listen oder sowas nachdenken... Möglichkeiten gibts da viele. Wenn aber über die Array-Property zugegriffen wird, hat man kaum ne andere Wahl als die hier gezeigte. Nur mal so als Denkanstoß...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz