| Autor |
Beitrag |
Showtime
Hält's aus hier
Beiträge: 4
Win NT
Delphi 6
|
Verfasst: So 03.10.04 20:25
Hallo erstmal!!
bin neu hier im Forum und wusste leider nicht genau,wo ich hinposten sollte!
naja...erstmal zu meinem Problem:
ich muss in der schule (gymnasium,stufe 13) in informatik mit delphi
ein programm schreiben,mit dem sich das travelling salesman problem lösen lässt!
leider habe ich keine ahnung,wie...
es wäre echt nett,wenn mir hier jemand helfen könnte,sei es mit
algorythmus,quelltext,seiten im netz,bücher usw usf
was ich leider nicht gebrauchen kann,sind lösungsansätze,die nur theoretisch sind...
ich brauch schon was mathematisches!!
es ist sehr dringend!!
mfG
Showtime
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: So 03.10.04 20:43
Hi,
ich weiß nicht, ob ich eine Bildungslücke hab, aber weiß irgendjemand hier, was das Traveling Salesman Problem eigentlich ist?
AXMD
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 03.10.04 20:47
| Showtime hat folgendes geschrieben: | Hallo erstmal!!
bin neu hier im Forum und wusste leider nicht genau,wo ich hinposten sollte!
naja...erstmal zu meinem Problem: |
Offtopic wäre angebrachter ...
| Showtime hat folgendes geschrieben: | ich muss in der schule (gymnasium,stufe 13) in informatik mit delphi
ein programm schreiben,mit dem sich das travelling salesman problem lösen lässt!
leider habe ich keine ahnung,wie... |
@TUFKAPL: Können wir mal eine Sparte "Hausaufgaben" anlegen???
| Showtime hat folgendes geschrieben: | es wäre echt nett,wenn mir hier jemand helfen könnte,sei es mit
algorythmus,quelltext,seiten im netz,bücher usw usf |
Dieses Problem lässt sich durch die Kontaktierung unser aller Freund "GOOGLE" lösen!!!
| Showtime hat folgendes geschrieben: | was ich leider nicht gebrauchen kann,sind lösungsansätze,die nur theoretisch sind...
ich brauch schon was mathematisches!! |
Gibt's genug im Netz ... man müsste nur mal den Vorschlag etwas weiter oben im Post berücksichtigen.
| Showtime hat folgendes geschrieben: | | es ist sehr dringend!! |
Aber nicht so dringend, dass ich dir darauf eine Antwort geben muss!
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
.Chef
      
Beiträge: 1112
|
Verfasst: So 03.10.04 20:49
Das Travelling Salesman Problem ist auf der Suche nach dem kürzesten Weg durch eine Reihe von Punkten (für die Mathematiker: im zweidimensionalen Raum). 
_________________ Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: So 03.10.04 22:25
|
|
GSE
      
Beiträge: 740
Win 2k, Win XP Pro
D5 Prof, D6 Ent, D2k5 PE
|
Verfasst: So 03.10.04 23:14
| Zitat: | was ich leider nicht gebrauchen kann,sind lösungsansätze,die nur theoretisch sind...
ich brauch schon was mathematisches!! |
und mathematik ist wohl nicht theoretisch?
| Zitat: | | @TUFKAPL: Können wir mal eine Sparte "Hausaufgaben" anlegen??? |
ja, aber wenn, dann nicht kostenlos. soll ja auch irgendwas bringen. und von dem geld könnte man den server mit bezahlen.
mfg
GSE
_________________ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs
and the universe trying to produce bigger and better idiots. So far, the universe is winning. (Richard Cook)
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Mo 04.10.04 07:38
| Zitat: | und von dem geld könnte man den server mit bezahlen. |
Die Idee klingt - ganz im Ernst - gut.
AXMD
|
|
Udontknow
      
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Mo 04.10.04 09:57
| .Chef hat folgendes geschrieben: | Das Travelling Salesman Problem ist auf der Suche nach dem kürzesten Weg durch eine Reihe von Punkten (für die Mathematiker: im zweidimensionalen Raum).  |
Spielt die Art des Raumes eine Rolle für den Algorithmus? Entscheidend sind eben die Abstände der Punkte zueinander, ob 2,3 oder 4D ist doch letztendlich egal.
Cu,
Udontknow
|
|
.Chef
      
Beiträge: 1112
|
Verfasst: Mo 04.10.04 10:02
Natürlich kann der Raum auch n-dimensional sein.  Das ursprüngliche TSP bezog sich aber auf die Ebene.
_________________ Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
|
|
Udontknow
      
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Mo 04.10.04 10:06
Ahso, ich war verwirrt, weil du "für Mathematiker:" geschrieben hattest... 
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mo 04.10.04 10:06
| .Chef hat folgendes geschrieben: | | as Travelling Salesman Problem ist auf der Suche nach dem kürzesten Weg durch eine Reihe von Punkten (für die Mathematiker: im zweidimensionalen Raum) |
Das ist nicht ganz richtig. Gegeben ist eine Menge von Punkten (Knoten) und eine Menge von Verbindungen zwischen diesen Knoten (Kanten), die eine gewisse Gewichtung (Länge) haben. Das müssen keine Puntkte in einem 2D-Raum sein. (Auch nicht in einem vernünftigen n-D-Raum. Dort hat man ja in der Regel eine Norm oder so. Bei TSP kann es sein, dass die Kanten A-B und B-C jeweils die Entfernung 5 haben, aber A-C hat die Entfernung 20) Dieses Gebilde aus Knoten und gewichteten Kanten nenn man gewichteter Graph. Das TSP Problem liegt darin, eine Rundreise über alle Knoten zu finden, so dass jeder Knoten genau einmal besucht wird, und man am Ende wieder am Ausgangsknoten ankommt.
TSP daher, weil Handlungsreisende gerne mal durch die Gegend reisen, umm ihre Priodukte anzupreisen. Dabei wollen sie natürlich jede Stadt nur einmal besuchen, und das möglichst kostengünstig (Länge der Kanten zwischen den Städten könnte sein: benötigte Fahrtzeit, Entfernung in km, Kosten für die Fahrt etc.)
Lösungsansatz im wesentlichen:
Da das TSP-Problem zu den NP-vollständigen Problemen gehört, ist es "nur schwer lösbar". Im wesentlichen muss man alle möglichen Rundreisen durchprobieren. Mit Hochleistungsrechnern ist das zur Zeit exakt mit ungefähr 125 Städten in vernünftiger Zeit lösbar. Alles andere sind Näherungsverfahren, aber das ist nicht Stoff für die Schule.
Ich vermute aber mal (im Hinblick auf eine ältere "Hausaufgabe"), dass mit TSP hier was anderes gemeint ist: Nämlich das kürzeste Wege Problem.
Gegeben hat man dabei einen Graphen, und zwei markierte Knoten (Städte). Gesucht ist der kürzeste Weg zwischen diesen beiden Städten. Das geht einfacher. Vielleciht beschreibst du mal das Problem, was der Lehrer euch gegeben hat. Oder hat der nur TSP gesagt?
_________________ We are, we were and will not be.
|
|
.Chef
      
Beiträge: 1112
|
Verfasst: Mo 04.10.04 10:30
| Udontknow hat folgendes geschrieben: | Ahso, ich war verwirrt, weil du "für Mathematiker:" geschrieben hattest...  |
Ich wollte diese "Spezies" nur von vornherein direkt ansprechen, da derartige Aussagen im Gespräch mit Mathematikern sofort allgemein bewiesen werden müssen.
Ich kenne das TSP ursprünglich so, dass du einfach die Koordinaten x und y zu jedem Punkt hast, und dann die kürzeste Rundreise ausrechnest (ooookaaay, hätte ich oben anders ausdrücken können, aber ich bin nunmal nicht ao der große Redner).
Zur Gewichtung: Wie will man denn bitte für einzelne Verbindungen eine seperate Gewichtung speichern (für jede Verbindung!), wenn es bei 125 Punkten bereits rund 10^209 Verbindungen gibt?
_________________ Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 04.10.04 10:42
| .Chef hat folgendes geschrieben: | | Udontknow hat folgendes geschrieben: | Ahso, ich war verwirrt, weil du "für Mathematiker:" geschrieben hattest...  |
Ich wollte diese "Spezies" nur von vornherein direkt ansprechen, da derartige Aussagen im Gespräch mit Mathematikern sofort allgemein bewiesen werden müssen.  |
Naja, mach doch auch Spaß ...
| .Chef hat folgendes geschrieben: | | Zur Gewichtung: Wie will man denn bitte für einzelne Verbindungen eine seperate Gewichtung speichern (für jede Verbindung!), wenn es bei 125 Punkten bereits rund 10^209 Verbindungen gibt? |
Wieso??? Du musst nicht für jede Verbindung auch ein Gewicht haben. Wenn du an einer Kreuzung stehst, 7 verschiedene andere Kreuzungen in der Stadt kennst, kannst du von deiner jetzigen Ampel doch auch nicht jeden Punkt sofort erreichen ... d.h.: Der Speicheraufwand reduziert sich durch das Fehlen zahlreicher Verbindungsmöglichkeiten.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
.Chef
      
Beiträge: 1112
|
Verfasst: Mo 04.10.04 10:47
Seit wann gibts beim TSP Kreuzungen?  Jeder Punkt ist direkt mit jedem anderen verbunden.
_________________ Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 04.10.04 10:50
| .Chef hat folgendes geschrieben: | Seit wann gibts beim TSP Kreuzungen? Jeder Punkt ist direkt mit jedem anderen verbunden. |
War als Beispiel gedacht:
Jede Kreuzung ist ein Knoten, jede Straße zwischen den Kreuzungen eine Kante.
Und wenn du das so siehst, kommt das hin.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
.Chef
      
Beiträge: 1112
|
Verfasst: Mo 04.10.04 10:56
Wenn du zusätzlich zu den Direktverbindungen noch mit Knoten rechnest, wirds nur noch mehr Aufwand, von daher ist das egal.
_________________ Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mo 04.10.04 11:00
| Zitat: | Zur Gewichtung: Wie will man denn bitte für einzelne Verbindungen eine seperate Gewichtung speichern (für jede Verbindung!), wenn es bei 125 Punkten bereits rund 10^209 Verbindungen gibt?
|
Autsch. Autsch. Autsch.
Man hat 125 Punkte. Der erste ist mit 124 Punkten verbunden. Macht 124 Kanten.
Der zweite ist auch mit 124 Punkten verbunden. Eine Kante haben wir schon. macht also 123 Kanten. Für den dritten Knoten braucht man dann nur noch 122 Kanten usw. usf.
Um die Gesamtzahl der maximal möglichen Verbindungen bei n+1 Knoten auszurechnen, muss man also rechnen tun: n + n-1 + n-2 + n-3 + ... + 2 + 1.
Der kluge Gauß (nicht der Gausi) hat da mal ne Formel getan: n* (n+1)/2. Bei 125 wären das also 124*125/2 = 7750. Wenn man da jeweils einen Integer (4Byte) dran speichert, wären das 31000 Byte, das sind etwas weniger als 31KB. Das passt noch, oder?
_________________ We are, we were and will not be.
|
|
.Chef
      
Beiträge: 1112
|
Verfasst: Mo 04.10.04 11:02
Schei... stimmt!  Ich bin noch voll bei Fakultät. Ich mach hier grad 'ne Berechnung für e, da kommt man schonmal durcheinander. 
_________________ Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mo 04.10.04 11:07
Aber mit dem Problem der Lösung der Hausaufgabe sind wir dadurch auch nicht weitergekommen. Mal gucken, wann showtime sagen kann, was der Lehrer mit dem TSP meint. Wenn er nämlich das kürzeste-Wege-Problem meint, dann kann ihm geholfen werden.
TSP mal eben als Hausaufgabe zu lösen, finde ich ein bissel happig. Und genetische Programmierung (Vorschlag Tilo) in der Schule...ich weiss nicht. Das ist AFAIK ein recht neues Forschungsgebiet. Wäre vielleicht eher was für ne Seminar-, Bachelor- oder Diplomarbeit...
_________________ We are, we were and will not be.
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Mo 04.10.04 14:09
Das mit genetischer Programmierung, habe ich nur anpesprochen, weil über das Thema viel mit TSP zu tun hat. Daher bin ich der Auffassung, das es dort Lösungsvorschläge und -verfahren gibt. Die Verwendung von genetischen Algorithmen ist grob jesagt gesteuerter Zufall.
Hier ein Link zu einer Seite zu gentischen Algorithmen, in der auch das TSP als Beispielprogramm in einem Download vorhanden ist. [edit] sein soll, hab die Seite nur Überfolgen, hatte aber das Ding schon mal Downgeloded und ausprobiert, sehr interessant und empfehlenswert[/edit]
|
|
|