Re(2): rekursives program
Geizhals » Forum » Programmierung » rekursives program (14 Beiträge, 556 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
rekursives program
09.09.2014, 13:57:04
Hi,

ich stehe im Moment ein bisschen bei einem rekursiven Problem an und wäre dankbar für jede Hilfe.

Die Ausgangslage:
ich habe N Variablen die sich zwischen festgelegten Grenzen befinden, jedoch sind die Grenzen von den vorherigen Variablen abhängig (d.h Variable 2 ist von Variable 1 abhängig, Variable 3 ist von Variable 2 und Variable 1 abhängig).

In einem ersten Schritt wurde jede Variable in Brackets unterteilt und das Minimum und das Maximum empirisch gemessen (unabhängig von allen anderen).

Um es zu verdeutlichen, heisst dass (für zwei Variablen) als Beispiel:
Variable 1: min: 0, max: 1 (diese ist unabhängig) und liegt (zB) in 3 Stufen vor:
(1) Variable 1 = 0.33: Variable 2: min: 0, max: 0.25
(2) Variable 1 = 0.66: Variable 2: min: 0.1, max: 0.4
(3) Variable 1 = 1: Variable 2: min 0.2, max: 1

als Ausgabe hiervon sollen dann X Schritte (zB 6) für Variable 2, zwischen deren min/max ausgegeben werden (also in (1) von oben: 0, 0.05, 0.1, 0.15, 0.2, 0.25).

Aus dem obigen Beispiel werden also schon 18 Kombinationen erstellt:
Nr, Variable 1, Variable 2
1, 0, 0
2, 0, 0.05
3, 0, 0.1
...
6, 0, 0.25
7, 0.33, 0.1
8, 0.33, 0.16
...


soweit einfach, bei 3 Variablen wird es schon komplizierter, hier soll dann gelten:
das Minimum/Maximum für Variable 3 ist das jeweilige Maximum der Minima (Minimum der Maxima) der vorherigen Variablen.

Wiederum als Beispiel:
(1) Variable 1 = 0.33: Variable 2: min: 0, max: 0.25, Variable 3: min: 0, max: 0.25
   (1b) Variable 2 = 0: Variable 3: min: 0, max: 0.05 --> Min für Variable 3 ist 0, Max=0.05 (min aus 0.25 und 0.05)
   (1c) Variable 2 = 0.05: Variable 3: min: 0.02, max: 0.15 --> Min für Variable 3 ist 0.02 (max aus 0 und 0.02), Max=0.15 (min aus 0.25 und 0.15)
   (1d) Variable 2 = 0.01: Variable 3: min: 0.05, max: 0.35 --> Min für Variable 3 ist 0.05 (max aus 0 und 0.05), Max=0.25 (min aus 0.25 und 0.35)
...

Die Grenzen in den Szenarien 1b, 1c usw. werden aus den empirischen Angaben interpoliert (d.h. wenn die ursprünglichen Bracekts für Variable 2 zb 0 und 0.05 (usw.) waren und jetzt für 0.02 ein Szenario erstellt wird, wird aus den Minimas/Maximas von 0 und 0.05 auf 0.02 interpoliert). Es sollen für Variable 3 wieder 6 Szenarien erstellt werden

Als Ausgabe würde ich hier auf:
Nr, Variable 1, Variable 2, Variable 3
1, 0, 0, 0
2, 0, 0, 0.01
3, 0, 0, 0.02
...
7, 0, 0.05, 0.02
8, 0, 0.05, 0.046
...

Ich hoffe das Problem ist verständlich, in Wahrheit brauche ich "einfach" nur eine Liste der möglichen Verteilungsräume der Variablen unter Vorbedingungen.

Für Hilfe bin ich sehr dankbar!


mfg

Penguin
Antworten PM Alle Chronologisch
 
Melden nicht möglich
.  Re: rekursives program  (zeddicus am 09.09.2014, 14:29:36)
..  Re(2): rekursives program  (Penguin am 09.09.2014, 14:57:56)
..
Re(2): rekursives program
09.09.2014, 15:14:29
mySimulationBoundaries.min =
    [10x4 double]    [10x4 double]    [10x4 double]    [5x4 double]    

d.h. ich hab jede der 4 Variablen in 10 Brackets gebinned (ausser die 4. Variable --> Wochentag, daher nur 5 Bins).

mySimulationBoundaries.min{1} =
untere
Grenze        min           min               min
Bracket       für            für                 für
Variable 1   Variable 2  Variable 3      Variable 4
-0.09           0.1           -0.01               2
-0.01           0.09          -0.01              2
...
0.01           0.11           -0.01              2

mySimulationBoundaries.max{1} =
untere
Grenze        max           max               max
Bracket       für              für                 für
Variable 1   Variable 2   Variable 3      Variable 4
-0.09           0.69          0.01               6
-0.01           0.6            0.01               6
...
0.01           0.75           0.01               6

mySimulationBoundaries.min{2} =
                 untere
min           Grenze        min           min              
für             Bracket       für            für                
Variable 1   Variable 2  Variable 3   Variable 4
-0.04           0.08          0.001         2
-0.02           0.1            0.005         2
...
-0.09           0.29          -0.01         2

mySimulationBoundaries.max{2} =
                 untere
max           Grenze        max          max              
für             Bracket       für            für                
Variable 1   Variable 2  Variable 3   Variable 4
0.01           0.08          0.006          6
0.02           0.1            0.008          6
...
0.1           0.29          0.01            6

Zusammengefasst:
Schritt 1:
wenn Variable 1 -0.01 ist, muss Variable 2 zwischen 0.09 und 0.6 liegen
Schritt 2:
wir erstellen 10 Brackets zwischen 0.09 und 0.6, erster Step: 0.09
Schritt 3:
wenn Variable 2 0.09 ist, muss Variable 3 zwischen max(-0.01, 0.001) = 0.001 und min(0.01,0.006) =0.006 liegen
Schritt 4:
wir erstellen 10 Brackets zwischen 0.001 und 0.006, erster Step 0.001
Schritt 5:
wenn Variable 3 0.001 ist, muss Variable 4 zwischen max(2,2,2) = 2 und min(6,6,6) liegen

mfg

Penguin
Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
.  Re: rekursives program  (Diabolo2000 am 09.09.2014, 15:59:55)
..  Re(2): rekursives program  (Penguin am 09.09.2014, 16:49:59)
...  Re(3): rekursives program  (Diabolo2000 am 09.09.2014, 17:41:18)
....  Re(4): rekursives program  (Penguin am 10.09.2014, 08:58:50)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung