Denkanstoß Zeitvergleich

  • Allgemein

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Denkanstoß Zeitvergleich

    Hallo,

    ich habe für einen Prozess eine Liste an Startzeitpunkten und eine Liste an Endzeitpunkten.
    Wie ordne ich jedem Startzeitpunkt den richtigen Endzeitpunkt zu?
    Es kann ein neuer Prozess starten bevor der Vorherige beendet ist. Stehe da grad voll auf dem Schlauch

    Ich denke da grad voll kompliziert, dass ich schauen muss wie viele Prozesse zwischen zwei Zeitpunkten starten und wieviele zwischen zwei Zeitpunkten enden und dann diese Anzahlen zuornden muss.
    Ich tüftel gerade in Excel damit rum, wahrscheinlich nicht das beste Tool dafür.

    Viele Grüße
    Dateien

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()

    Was ist der "richtige Endzeitpunkt"?

    Also nur zur Sicherheit:
    Wenn Du 2 Startpunkte hättest: 10:00 und 11:00
    und folgende Endpunkte: 09:50, 10:10, 10:30, 11:00, 11:05

    Was soll dann wie zugeordnet werden?

    Zu S1 dann 10:10, 10:30, 11:00
    und zu S2: 11:05
    ?

    Denn wenn es nur einen richtigen gibt, wie ist der dann definiert?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Haudruferzappeltnoch Wie muss ich diese Tabelle lesen?
    Die Daten sind doch wohl sortiert.
    Wie entstehen die Daten?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ja also jeder Prozess hat einen Start und ein Ende.

    Das richtige Ende für Start x ist, wenn es das Ende für den Prozess mit Start x ist. Daher gibt es nur einen Richtigen.

    Die Daten sind sortiert, aber die Punkte ab denen angefangen werden kann zu zählen können sich unterscheiden.
    Angenommen man kennt einen Richtigen, dann kann man alle anderen Richtigen abzählen.
    Das heißt wenn Start2 > Start1 dann gilt auch End2 > End1, wobei End2 zu Start2 gehört und End1 zu Start1 gehört.

    Der Startzeitpunkt wird erzeugt wenn eine Sammlung von Bildern erstellt wurde. Der Endzeitpunkt wird erzeugt wenn die Bilder bearbeitet wurden (Die Bearbeitung dauert unterschiedlich lange).
    Das passiert alles nur einmal.
    @HaudruferzappeltnochTut mir Leid, aber ich verstehe das Problem nicht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    In der Beispiel Tabelle müsste der richtige Endzeitpunkt für die Farbe grau gefunden werden (10:30:32)
    Dann wäre automatisch alles andere auch zugeordnet. Die Farben bleiben in der richtige Reihenfolge.

    Ich kann ein oberes Limit leicht festlegen denn der Endzeitpunkt muss größer als der Startzeitpunkt sein. Beim unteren Limit bin ich schätze ich darauf angewiesen die Abfolge der Zeitpunkte zu vergleichen

    Haudruferzappeltnoch schrieb:

    Das richtige Ende für Start x ist, wenn es das Ende für den Prozess mit Start x ist. Daher gibt es nur einen Richtigen.
    Was soll das bedeuten?
    Was ist mit meinem Gegenbeispielfragen?
    Was ist denn das richtige Ende für Dein 10:32-Grau-Beispiel?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hi,

    Das heißt wenn Start2 > Start1 dann gilt auch End2 > End1, wobei End2 zu Start2 gehört und End1 zu Start1 gehört.


    Nein, nicht notwendigerweise, denn du schreibst ja:

    Die Bearbeitung dauert unterschiedlich lange


    Soweit ich sehe kann ich keinen Indikator dafür finden, welche Endzeit zu welcher Startzeit gehört, und auch wenn man nur eine einzige Startzeit-Endzeit-Kombination sicher bestimmen kann, finde ich keinen Weg, dass basierend auf dieser Erkenntnis auch alle anderen Start- und Endzeiten auf einmal korrekt zugeordnet werden können.

    Eine logische Struktur lässt sich nur durch die Zeiten an sich ableiten, man kann also die Zeiten in beiden Spalten sortieren, und die Informationen die greifbar sind, sind:

    - Anzahl der Startzeiten, Anzahl der Endzeiten
    - Ob es gleich viele Start- wie Endzeiten gibt - ein Indikator der ggf. angibt ob die Berechnung überhaupt erfolgreich sein kann, denn aus meiner Sicht kann es nur Sinn machen, wenn es zu jeder Startzeit eine Endzeit gibt
    - Was die erste (=früheste) Startzeit ist
    - Was die letzte (=späteste) Endzeit ist

    Falls alle Prozesse gleich lang benötigen würden (was aber nicht der Fall ist wie du ja bereits klargestellt hast) könnte man natürlich einfach beide Spalten aufsteigend nach Zeit sortieren und die Zuordnung wäre bereits richtig festgelegt.


    Link :thumbup:
    Hello World

    VaporiZed schrieb:

    Was ist denn das richtige Ende für Dein 10:32-Grau-Beispiel?
    Das weiß ich ja eben nicht, sonst wäre ich ja schon fertig^^, aber ich weiß schon das Ende kann nicht vor 10:32 sein.
    Prozess z hat genau ein Start x und genau ein ende y. Dann ist y das richtige ende für x. Besser kann ich den richtigen Endzeitpunkt auch nicht definieren.

    Was war denn ein Gegenbeispiel?

    Link schrieb:

    Nein, nicht notwendigerweise
    Doch das ist notwendig! Beides ist der Fall. Prozessdauern sind unterschiedlich lang und kein Prozessende kann ein anderes überholen.
    Bsp.:
    Start 10:00 Ende 10:05
    Start 10:02 Ende muss nach 10:05, muss aber nicht 10:07, kann auch 10:06 oder 10:30

    Haudruferzappeltnoch schrieb:

    kein Prozess kann einen anderen überholen.
    Eh, was?
    Dann müsste es aber immer genauso viele Start wie Endzeitpunkte geben. Aber wie kommen dann soviele Endzeitpunkte in die Exceltabelle? Woher kommen die Werte überhaupt? Oder ist ein Start = Schleifenstart und ein End, wenn eine Iteration fertig ist?

    Meine Beispieldaten und -fragen waren in Post#2.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ja ich habe nicht alle Werte in der Exceltabelle. Weil es sich auf der großen Skala unterscheidet (Pech für mich sonst siehe Zeile 7)

    In dem Beispielbereich muss es aber liegen. Weil Start und Ende kann sich nicht um Stunden unterscheiden.
    Alle überschüssigen Endzeitpunkte werden entsprechend durch frühere oder spätere startzeitpunkte. Ich hab das versucht zu veranschaulichen damit, dass die Startzeitpunkte unvollständig sind also es gibt da noch punkte danach und davor.

    Wenn ich alle Zeitpunkte hätte hast du recht, dann guck ich an den Beginn beider Listen, aber das geht hier nicht mehr. Der Beginn der Listen ist verschleiert
    Die Werte kommen wie in Post #4 beschrieben

    VaporiZed schrieb:

    Wenn Du 2 Startpunkte hättest: 10:00 und 11:00
    und folgende Endpunkte: 09:50, 10:10, 10:30, 11:00, 11:05

    Wenn ich dein Beispiel sehe, kann ich Folgendes aussagen:
    Start 1 = 10:00 also muss End1 > 10:00
    Start2 = 11:00 also muss End2 > 11:00
    Start2 folgt auf Start1 also muss End2 auf End1 folgen.
    Das heißt frühestmöglich End2 11:05 und dann frühestmöglich End1 11:00
    Da 11:05 auch im Beispiel der letzte Eintrag wäre, wäre das hier erfolgreich fertig ermittelt.

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()

    Haudruferzappeltnoch schrieb:

    Der Endzeitpunkt wird erzeugt wenn die Bilder bearbeitet wurden
    Nur zur Klarstellung: Sollte es dann nicht heißen: Ein Endzeitpunkt wird erzeugt, wenn ein Bild aus der Bildersammlung vollständig bearbeitet wurde?
    Vom Ablauf her würde ich dann folgendes vermuten (was schlecht ist, weil wir hier gar nix zum relevanten Ablauf vermuten sollten):
    Es gibt z.B. 3 Bilder.
    Bearbeitungsstart 10:15 -> Start = 10:15
    Bild 1 ist 10:16 fertig bearbeitet -> End1 = 10:16
    Bild 2 ist 10:17 fertig bearbeitet -> End2 = 10:16
    Bild 3 ist groß und daher erst 10:20 fertig bearbeitet -> End3 = 10:20

    Ist das richtig so?

    Ist das ne asynchrone, automatische Verarbeitung oder eine user-manuelle?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Nein das ist garnicht in einem einzigen Programm drinne. Vielleicht stehe ich ja gar nicht so auf dem Schlauch, sondern das Ganze ist unmöglich.

    Stell dir vor eine Kamera knipst immer n Bilder und schreibt auf wann sie geknipst hat. 3 um 10:00, wieder 3 um 10:05, 5 um 10:12

    Jetz geht ein Programm hin und packt die 3 Bilder in ein PDF oder macht ein Puzzle draus oder was auch immer, was vielleicht unterschiedlich viel Zeit in Anspruch nehmen kann.
    Das wird wieder festgehalten 10:06. Dann die nächsten 3: 10:08, dann die 5: 10:15.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()

    Dann zwei Fragen:
    Ist dieser Ablauf manuell, sodass erst fotografiert wird und danach vom User die PDF erstellt wird und danach erst wieder fotografiert wird?
    Werden die Fotos gelöscht nach PDF-Erstellung oder nicht?
    Wie kommen Deine Excelwerte zusammen bei
    Start A = 09:40:51
    Start B = 09:47:22
    aber Ende
    Ende C = 09:42:39
    Ende Y = 09:46:45
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    In der Tabelle ist noch nicht richtig zugeordnet, Zuordnung würde ich per Farbe einfügen. Die Zeile in der die Werte stehen sind irrelevant. Außer, dass sie die Reihenfolge sicherstellen.

    Beide Abläufe sind automatisiert und voneinander unabhängig
    Die Bilder sind theoretisch weiter vorhanden. Fotografiert werden kann bevor die erste Bearbeitung beginnt beliebig oft, während eine Bearbeitung läuft auch. Die Bearbeitungen bleiben aber in Reihenfolge.
    Also ja wenn die Kamera jetzt deutlich schneller wäre dann gäbe es mit der Zeit enorme Verzerrungen, aber im Schnitt hebt sich alles weg.

    Meine vorübergehende Lösung nun:
    Ich suche nach großen Pausen und ordne die letzten Werte vor diesen Pausen einander zu, der Rest folgt Schrit, wie bereits gesagt.
    Durch die Seltenheit der großen Pausen ists recht wahrscheinlich damit genau richtig zu liegen. Ist nur eine umständliche Vorgehensweise.
    Dateien
    • sampleZeiten.xlsx

      (12,53 kB, 43 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()

    Hallo,

    entweder stimmt Deine Tabelle nicht oder die Zuordnungsbeschreibung ist falsch.
    1. zu jeder Startzeit gibt es eine Endezeit
    2. Prozesse können sich nicht Überlappen
    Startzeit: 09:32:47 - 09:34:29 (09:26:43 kann ja nicht weil liegt vor dem Beginn und 09:38:40 da wären es schon 2 Prozesse)
    09:36:46 - 09:38:40
    09:40:51 - 09:42:39
    09:47:22 - 09:46:45 der Prozess wird beendet bevor er startet.

    Kannst Du bitte mal die Tabelle aus Post 15 erklären (Was steht in den Spalten)??
    Kunst kommt von können und nicht von wollen, sonst hieße es Wunst!
    Doch das ist notwendig! Beides ist der Fall. Prozessdauern sind unterschiedlich lang und kein Prozessende kann ein anderes überholen.


    Wenn sie tatsächlich unterschiedlich lang sind, dann kann doch auf jeden Fall ein später gestarteter Prozess früher fertig sein als ein früherer gestarteter.
    Beispiel Prozess#1 startet um 10:00 Uhr und Prozess#2 startet um 10:05, dann kann es doch definitiv möglich sein, dass Prozess#2 schon um 10:06 fertig ist und Prozess#1 immer noch bis 10:15 rödelt. Warum soll das denn nicht möglich sein?

    In der Theorie lässt sich diese Regel sicherlich anwenden und konditionieren, aber in der Praxis sehe ich keine logischen Gründe dass oder warum das wirklich so passieren kann. Hierzu fehlt nämlich eine entscheidende Regel, und zwar die exakt definierte Dauer die ein Prozess immer in jedem Fall benötigt. Eine Mindestausführungsdauer oder Höchstausführungsdauer hilft hier nicht, beides muss definiert und ein fixer Wert sein. Dann kann man die Zeit zur Startzeit dazuaddieren und schauen, ob es eine Endzeit gibt die entsprechend hierauf passt. Die einzige Ambiguität die dann noch auftreten kann, ist, wenn es mehrere identische Startzeiten gibt, und somit entsprechend gleiche Endzeiten, aber dadurch dass die ohnehin identisch sein werden, gibt's auch theoretisch keine Probleme mit der Sortierung, es ist also quasi wurscht ob a:x und b:y raus kommt oder a:y und b:x, weil ja a und b gleich sind und auch x und y.


    Link :thumbup:
    Hello World

    RodFromGermany schrieb:

    Wie entstehen die Daten?
    War noch nicht beantwortet.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @xmise
    Die Tabelle in Post 15 sind nochmal andere Beispiellisten. Die unbeschriftete Zeile neben einer Liste ist die Zeitdifferenz zwischen dem dortigen Zeitpunkt und dem vorangegangenen. Sieht man auch an der Excel-Formel.
    Ebenso an der Excel-Formel zu erkennen sind die beiden grünen Werte die maximalen Differenzen, einmal von Starts, einmal von Ends.
    Die roten Werte sind per bedingter Formatierung durch die grünen festgelegt. Die dazugehörigen Werte in der Liste sind das definierte Start/Endpaar. Alle anderen Werte werden daher entsprechend zugeordnet.
    Also so wie ichs beschrieben habe definiere ich nun, dass aufgrund der größten Pause 12:12:28 das Ende zu 12:06:35 ist. Das muss natürlich nicht stimmen, aber ist sehr wahrscheinlich.

    Überlappen können sich die Prozesse, aber ein später Gestarteter kann nicht früher beenden. Das liegt einfach daran, dass zwei Systeme diesen Prozess ausmachen. Die Zuorndnung die du aus der ersten Tabelle ziehst soll gar nicht sein. Wie soll ich es denn sonst darstellen in zwei verschiedenen Excel Tabellen die Startwerte und die Endwerte? Das sollen erstmal zwei unabhängige aber geordnete Listen sein. Deswegen die zwei freien Spalten dazwischen.

    @Link
    Ok kann sein, dass dann keine systematische Lösung besteht. Aber gegeben sind diese Umstände wie beschrieben nunmal auch in der Praxis. Nenn es Zufall, nenn es Regel, so ists und nicht anders wirds sein.

    @RodFromGermany
    Dann weiß ich nicht was du meinst ich denke ich habe es in Post 4 und 13 geschrieben.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()

    Ja gut, dann arbeitest du mit einer Wahrscheinlichkeit, eine genaue Zuordnung wird also sowieso nie möglich sein, allenfalls eine Approximation, also Hantieren mit Daten auf Basis von "best guess". Sicherlich kann es durch Zufall mal passieren dass alle Zuordnungen richtig sein werden, aber das ist aus meiner Sicht halt weit entfernt von einem zufriedenstellenden Ergebnis und schon gar keine Basis um in irgendeiner sinnvollen Form Daten zu verarbeiten.

    In dem Sinne besteht ja so gesehen auch gar nicht direkt ein "Problem", der Sachverhalt ist: dir werden Daten geliefert die unzuordenbar sind, die Verbindung der Werte zu einem Prozess hätte früher passieren müssen, bevor die Daten zu dir kommen. Dein Problem ist eigentlich ja nur, dass du mit diesen Quatsch-Daten jetzt irgendwas anfangen musst - aus meiner Sicht ist das einfach nur Pech lul^^ Aber daraus ein Rätsel zu formulieren kann womöglich noch ein netter Zeitvertreib sein Anyways, da das nicht logisch gelöst werden kann, ist das nix worüber ich gern weiter nachdenke, klinke mich damit nun aus :)


    Link :thumbup:
    Hello World