Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Optimierung
#11
@BoskoBiati

Ich hab stumpf die komplette Fahrzeit aller Routen inc. Tankzeit (je Tour 10 min) addiert und durch 24 Std geteilt und das Ergebnis aufgerundet.. (deswegen hab ich rein rechnerisch dahinter geschrieben !) 

:49:
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#12
Hi Dieter,


es muß einen Unterschied zwischen Elektro- und Wasserstoffbussen geben, sonst ist das Ganze hier für den A....
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#13
(23.07.2018, 17:04)BoskoBiati schrieb: Hi Dieter,


es muß einen Unterschied zwischen Elektro- und Wasserstoffbussen geben, sonst ist das Ganze hier für den A....

Es gibt einen Unterschied in der Ladezeit, selbstverständlich. Der Tankvorgang dauert wenige Minuten während ein Ladevorgang
deutlich mehr Zeit in Anspruch nimmt.
Den Umlaufplan für die Elektrobusse hatte ich als Datensatz vorliegen, der war aber auf Elektrobusse abgestimmt. Ich möchte nun einen neuen
Plan erstellen, da Wasserstoffbusse schneller wieder einsatzbereit sind. Deshalb gehe ich davon aus, dass ich weniger Busse benötige. Ich würde gerne
die Umlläufe so aufteilen, dass die geringste Anzahl an Busse dabei herauskommt. Geht das irgendwie?

VG
Bob
Antworten Top
#14
Ich habe jetzt nochmal eine Excel-Liste erstellt, wo ich beispielhaft
zeige, wie ich die Sortierung und Aufteilung meine.:


.xlsx   Umläufe.xlsx (Größe: 17,66 KB / Downloads: 5)

Auf der rechten Seite befindet sich die Liste, die ich nun per Hand erstellt habe. So würde ich gerne
die gesamte Liste zuteilen, ob mit Formel oder VBA, beides würde ich dankend annehmen.

Ich hoffe, dass ihr mir helfen könnt.

VG
Bob
Antworten Top
#15
Hallo Bob,
 
in der Anlage eine mögliche programmierte Lösung zur Ermittlung der minimalen Anzahl an Bussen.
 
Bemerkungen:
1. Die Liste muss nach "Start" sortiert sein.
2. Die Anzahl der Busse ist zwar minimal, aber die Verteilung der Umläufe auf die Busse nicht sehr gleichmässig (zB fährt Bus 72 weniger als eine Stunde).


Angehängte Dateien
.xlsm   Umläufe.xlsm (Größe: 53,63 KB / Downloads: 5)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • bobderbaer
Antworten Top
#16
Hallo Bob,

hier einmal Antwortversuche auf die Fragen in deiner PN:

1. zu:
Zitat:Bus 1 fährt drei Umläufe, könnte allerdings noch einen mehr fahren, da Umlauf 91 um um 24:18 startet, also nach dem Ende des Tankvorganges. Kann man das noch irgendwie einfügen?
Das war auch meine erste Lösung. Allerdings endet dann der letzte Umlauf für Bus 1 um 3:39 des Folgetages. Ein täglicher Zyklus der so gefundenen Umläufe ist dann nicht möglich, da der erste Umlauf für Bus 1 um 3:19 beginnt.
Falls du es ändern möchtest kannst du es direkt im Programm anpassen:
a) Mit Alt+F11 wird der VBA-Editor aufgerufen.
b) Mit einem Doppelklick auf "Modul1" unter "VBAProject(Um..">"Module" im linken Projektfenster wird im rechten Editorfenster mein Programm angezeigt.
c) In folgenden zwei Zeilen
Code:
'        If dblBusBis(lngAktBus) <= varListe(lngAktUmlauf + 1, 3) Then
        If dblBusBis(lngAktBus) <= varListe(lngAktUmlauf + 1, 3) And dblBusVon(lngAktBus) + 1 >= varListe(lngAktUmlauf + 1, 5) Then
must du das ' aus der ersten Zeile entfernen und am Anfang der zweiten Zeile einsetzen.  Das ' macht eine Programmzeile zum vom Interpreter nicht auszuwertenden Kommentar. Es wir also der Code der zweiten Zeile durch den Code der ersten Zeile ersetzt.

2. zu
Zitat:Wie genau hast du das programiert?
Das kannst du dir das Programm wie in 1. a) und b) beschrieben anschauen.


3. zu
Zitat:Mit Makros?

Ja, so nennt man die in VBA geschriebenen Programme (Subroutinen und Funktionen) auch.

4. zu
Zitat:Ist das schwer zu lernen?
Das ist für mich, der schon sehr lange dabei ist, auf jeden Fall schwer zu beantworten.
Hier einmal einige Gesichtspunkte:


a) Algorithmen
Die wichtigste Fähigkeit für einen Programmierer ist es für eine Aufgabe Algorithmen zu finden, so dass die Aufgabe mit Hilfe der Elemente der Programmiersprache gelöst werden kann. Mit deiner Frage zu 1. hast du ja gezeigt, dass du meinen Algorithmus zum Lösen deiner Aufgabe verstanden hast.
Wichtig hierfür ist meines Erachtens die Fähigkeit strukturiert zu Denken und hierfür ist wiederum ein Verständnis der Aussagenlogik wichtig.
Hiermit meine ich nicht die mathematisch genau hergeleiteten Regeln der Aussagenlogik, sondern meines Erachten reicht es sich vorstellen zu können in Zukunft Spass an einfachen Rechenrätseln zu haben,  in denen Ziffern durch Formen ersetzt sind. Blush

b) Programmiersprache (hier VBA)
Ich denke das Lernen der eigentlichen Programmiersprache selbst ist relativ einfach, da die Anzahl der Sprachelemente sehr begrenzt ist und man mit wenigen Elementen schon komplexe Programme erzeugen kann.
In dem Programmbeispiel habe ich neben direkten Zuweisungen "... = ..." nur If-Verzweigungen "If... Then... Else ... End If" und For-Schleifen "For... Next"genutzt.
Im Internet gibt es viele Artikel (auch in deutsch) in denen die Sprache umfangreich erklärt wird und für spezielle Fragen gibt es diese Foren.

c) Schnittstellen Programm-Excel
Für die Schnittstellen gilt das gleiche wie für die Elemente der Programmiersprache.
Die Anzahl der unterschiedlichen Schnittstellen ist übersichtlich, man kann mit wenigen Schnittstellen schon komplexe Aufgaben lösen, im Internet findet man viele gute komplette Beschreibungen der Schnittstellen und für spezielle Fragen gibt es diese Foren.

d) Üben und Lernen
Wie für jedes andere Handwerk ist es wichtig die gewonnenen Fähigkeiten regelmässig anzuwenden und auch von den Erfahrungen anderer durch direktes Fragen oder Ansehen von Artikeln zu lernen und die Kenntnisse in den Bereichen a) bis c) zu erweitern.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#17
Hi,

hier mal mit Formeln:



.xlsx   Umläufe (1).xlsx (Größe: 47,4 KB / Downloads: 6)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Frogger1986
Antworten Top
#18
Hi,

noch eine Version:


.xlsx   Umläufe (1).xlsx (Größe: 44,84 KB / Downloads: 6)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • bobderbaer
Antworten Top
#19
Smile 
Ich danke den vielen Helfern hier, das war/ist echt super Klasse! :97: :97:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste