Hallo Community
Aktuell arbeite ich an einer Ressourcen-Planung, bei der ich an einem Problem mit exponentiellem Rechenaufwand zu knabbern habe.
Es geht darum n Batches mit Tasks auf m Resourcen aufzuteilen. Die Tasks haben einen Start-Zeitpunkt und eine Duration und dürfen sich nicht überschneiden. Die Tasks pro Batch folgen zeitlich aufeinander und haben eine feste Reihenfolge.
Kennt jemand einen Algorithmus, der sich darauf anwenden lässt? Lässt sich der Aufwand für dieses Problem überhaupt reduzieren? Ich habe leider noch nichts passendes gefunden.
Task
- Start
- Duration
- End
Batch
- Tasks
Resource
- Tasks
Beim Einsortieren der Tasks auf die Ressourcen entstehen zwischen drin immer wieder Lücken, diese möchte ich nutzen um das Ergebnis zu optimieren.
foreach batch in batches
foreach batchTask in batch
foreach resourceTask in resource
if batchTask.Start > resourceTask.End && batch.End < nextResourceTask.Start
resource.Insert(behind resourceTask)
Im Pseudocode sieht man gut, wie sich der Aufwand exponentiell erhöht.
Hier ein kleines Beispiel für die bessere Vorstellbarkeit:
[Batch 1]
- Anton (Resource A) füllt einen Eimer mit Farbe (2 min) und bring in zu Bernd (Resource B)
- B nimmt diesen Eimer und streicht damit eine Wand (25 min)
- A wäscht den benutzen Eimer (4 min)
[Batch 2]
- Anton bringt ein Kabel und Nagel-Schellen (1 min) zu Carlos (Resource C)
- C verlegt das Kabel (35 min)
[Batch 3]
- Anton belädt den Bauaufzug mit Ziegeln und lässt sie nach oben fahren (15 min)
- Daniel (Resource D) deckt damit das Dach (55 min)
Es sollen 18 Wände gestrichen und 12 Kabel verlegt werden. Das Dach braucht 7 Fuhren um gedeckt zu werden.
Gruss
Alf
Alternativ könnte man auch ein TabControl benutzen. Aber probier den Link von Th69 auf jeden Fall aus.
Hallo bizwormsunterayri
Wir helfen euch hier gerne. Posted einfach eure konkreten Probleme hier im Forum.
Schaut euch dafür auch: https://mycsharp.de/forum/threads/26594/hinweis-wie-poste-ich-richtig an.
Versucht eure Probleme möglichst konkret zu beschreiben und packt auch euren Code dazu.
Zitat von bizwormsunterayri
zB beim Coden eines Würfels ...
public int RollDice() => Random.Shared.Next(1, 6);
Zitat von bizwormsunterayri
... einer Auswahl der Figuren nach den Farben (Gelb,grün,blau,rot)
Wie ist das gemeint?
Gruss
Alf
Hallo Salman
Ich vermute, dass die Methode NextLevel nicht aufgerufen wird. Den Code für den diesen Aufruf zeigst du leider nicht.
Hast du dich denn mal mit dem Debugger drangehängt? Dann müsste man das doch easy sehen.
Gruss
Alf
Verstehe ich nicht, da wird doch nach mehreren Spalten sortiert:
"You can always add to multiple SortDescriptor to the SortCollection of your default view like this -"
ListCollectionView lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(myCollection);
lcv.SortDescriptions.Add(new SortDescription(…));
"I don't know how to write it in VB, but i can show you in c# how it's made:"
YourListView = CollectionViewSource.GetDefaultView(tempListView
.OrderBy(x => x.FirstSorting)
.ThenBy(y => y.SecondSorting));
Machst du MVVM?
Hallo lutzeslife
Man kann doch mit CollectionViewSource nach mehreren Spalten sortieren. Siehe hier: https://stackoverflow.com/questions/8104015/how-to-implement-multiple-levels-of-sorting-on-a-collectionviewsource
Hast du das schon ausprobiert?
Gruß
Alf
Top, danke dir.
Bei mir hat Resharper noch mit rein gespielt. Dort kann man auch zusätzliche Dictionaries anlegen. Ich habe das aber nicht weiter verfolgt.
Stimmt, danke.
Ich muss meine Beschreibung korrigieren und das Problem besser erklären:
Hallo zusammen
Wie im angehängten Screenshot zu sehen, zeigt Visual Studio (2022) Warnings für Wörter an, die er nicht kennt. Mit exclusion.dic und .editorconfig kann man solche Wörter aus den Warnings raus nehmen (siehe erstes Wort). Allerdings wird für da excluded word immer noch blau unterkringelt und "Typo in string" angezeigt. Kennt jemand eine Lösung dafür?
Meine Idee wäre es ein zusätzliches spelling dictionary zu benutzen, dass meine Wörter enthält. Ich habe aber keine Möglichkeit gefunden ein eigenes custom spelling dictionary in die Solution einzubinden. Weiss jemand, ob und wie das geht?
Vielen Dank für eure Unterstützung schon mal.
Hallo tombadil28
Erstmal offtopic: Bitte verwende Code-Tags für dein Listing. Siehe auch: [Hinweis] Wie poste ich richtig?
Zum Thema:
In der Doku zum QuickGrid steht, welchen Typ Items erwartet: IQueryable<TGridItem>
. Wenn du also private IQueryable<Match> matches;
verwendest, sollte der Fehler behoben sein
Gruss
Alf