Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Optimierungsproblem (Tabellen mit Baumstruktur) (https://www.delphipraxis.net/188857-optimierungsproblem-tabellen-mit-baumstruktur.html)

ibp 15. Apr 2016 11:41

AW: Optimierungsproblem (Tabellen mit Baumstruktur)
 
Mögliche Herangehensweise:

1. Die Kapazität entspricht dem Widerstand, gibt es mehrere Objekte mit gleichem Widerstand, so wird dieser für diese Objekte mit der Anzahl der Objekte multipliziert

A = 256
B = 3
C = 5
D = 5
E = 4

2. Sortiere die Reihenfolge der Filter nach Widerstand von hoch zu niedrig

Aus...

OBJ1 = {A = 4, B = /, C = 5, D = 3, E = /}
OBJ2 = {A = 54, B = 2, C = 3, D = /, E = /}
OBJ3 = {A = 54, B = 1, C = 1, D = /, E = /}

wird dann...

OBJ1 = {A = 4, C = 5, D = 3, B = /, E = /}
OBJ2 = {A = 54, C = 3, B = 2, D = /, E = /}
OBJ3 = {A = 54, C = 1, B = 1, D = /, E = /}

Zacherl 15. Apr 2016 15:10

AW: Optimierungsproblem (Tabellen mit Baumstruktur)
 
Zitat:

Zitat von jobo (Beitrag 1335651)
B=3 & E=4 könnte man z.B. zu X=15 "zusammenfassen"

Das funktioniert leider nicht, da ich später ja immer nur ein Attribut nach dem anderen dekodieren kann. Bei dieser Vorgehensweise bräuchte ich aber ja mindestens schon Zwei :|

Zitat:

Zitat von ibp (Beitrag 1335653)
1. Die Kapazität entspricht dem Widerstand, gibt es mehrere Objekte mit gleichem Widerstand, so wird dieser für diese Objekte mit der Anzahl der Objekte multipliziert
2. Sortiere die Reihenfolge der Filter nach Widerstand von hoch zu niedrig

Das klingt vielversprechend :thumb: Werde ich die Tage mal versuchen zu implementieren.

BUG 15. Apr 2016 16:40

AW: Optimierungsproblem (Tabellen mit Baumstruktur)
 
Hab ich das richtig verstanden, dass du quasi nur Attribute abfragen kannst, wenn du dir sicher bist, dass das zu untersuchende Objekt das Attribut auch hat?

Also muss im folgenden Beispiel die Reihenfolge A, C, B sein?
Code:
OBJ1 = {A = 1, B = /, C = 1, D = 3, E = /}
OBJ2 = {A = 1, B = 1, C = 2, D = /, E = /}
OBJ3 = {A = 1, B = 2, C = 3, D = /, E = /}

Zacherl 15. Apr 2016 17:21

AW: Optimierungsproblem (Tabellen mit Baumstruktur)
 
Zitat:

Zitat von BUG (Beitrag 1335688)
Hab ich das richtig verstanden, dass du quasi nur Attribute abfragen kannst, wenn du dir sicher bist, dass das zu untersuchende Objekt das Attribut auch hat?

Es trifft nicht auf alle Attribute zu, aber auf die meisten schon :| Wenn ich beispielsweise OBJ1 einlese:
Code:
OBJ1 = {A = 1, B = /, C = 1, D = 3, E = /}
Dann folge ich zuerst dem 1. Element in FilterA und stoße auf einen Filter vom Typ C. Jetzt weiß der Parser hierdurch implizit, dass das Objekt ein Attribut C haben MUSS und liest es aus dem Bytestream.

Zitat:

Zitat von BUG (Beitrag 1335688)
Also muss im folgenden Beispiel die Reihenfolge A, C, B sein?
Code:
OBJ1 = {A = 1, B = /, C = 1, D = 3, E = /}
OBJ2 = {A = 1, B = 1, C = 2, D = /, E = /}
OBJ3 = {A = 1, B = 2, C = 3, D = /, E = /}

Nicht zwingend. A sollte immer das erste Element sein. C und D werden "in einem Rutsch" vom Parser ausgelesen. Deren Reihenfolge kann ich also permutieren. Und B kann ich sogar unabhängig direkt zu Beginn auslesen (sogar noch vor A, da ich erkennen kann, ob der Wert zu B gehören kann oder doch ein A-Attribut sein muss).

BUG 15. Apr 2016 20:35

AW: Optimierungsproblem (Tabellen mit Baumstruktur)
 
Und zwingt dich etwas, für die einzelnen Filter Arrays zu nehmen? z.B. sind die so dicht besetzt, dass sich andere Datenstrukturen nicht wirklich lohnen würden?

Zacherl 15. Apr 2016 21:44

AW: Optimierungsproblem (Tabellen mit Baumstruktur)
 
Zitat:

Zitat von BUG (Beitrag 1335718)
Und zwingt dich etwas, für die einzelnen Filter Arrays zu nehmen? z.B. sind die so dicht besetzt, dass sich andere Datenstrukturen nicht wirklich lohnen würden?

Sind schon recht dicht besetzt, ja. Dazu kommt, dass die Arrays später nicht aus Zeigern bestehen, sondern aus 2-Byte großen Words. Glaube nicht, dass da eine alternative Datenstruktur von der Größe her mithalten kann. Lasse mich aber gerne eines Besseren belehren :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz