Tijden optellen-->matrixprobleem?

Het forum voor overige vragen betreffende wiskunde uit het hoger onderwijs.
Plaats reactie
superlode
Nieuw lid
Nieuw lid
Berichten: 2
Lid geworden op: 23 jul 2009, 14:44

Tijden optellen-->matrixprobleem?

Bericht door superlode » 23 jul 2009, 15:44

Hoi allemaal,

Dit is niet voor 't school, het betreft hier meer een vraagstuk dat ik nergens anders op de site kwijtkon:
-Ik moet verschillende tijden optellen, bvb. voor een proces. Er zijn 3 machines die onafhankelijk van elkaar werken. Soms ligt er ene stil. Alle tijden worden opgenomen, en na een bepaalde tijd willen we de data bestuderen.
Zie hieronder twee voorbeelden. - = machine stil, o = machine draait, A,B,C = identiteit machine.
Resultaat = de totale tijd per voorbeeld dat er minimum één machine draaide
Ik ken het startmoment en het stopmoment van elke cyclus voor elke machine.

vb1.
A ---oooooooo----------------------
B -----------ooo---------------------
C ------------------ooooooooooo---

result:
---ooooooooo---ooooooooooo---- (som van de bolletjes = een getal dat de tijd voorstelt dat er minimum één machine draait)

vb2.
A ----ooooo-------------------------
B -------oooooooooooooo---------
C --ooooo-----------ooooooooo---

Echter, ik wil dit niet met potlood en papier uitrekenen. Dit moet automatisch gaan dacht ik. Dus probeerde ik met excel te rekenen. Dit analyseren lukt netjes tot twee machines, A en B.

vb3:
A----oooo---------
B-------------ooo--
resultaat= stopuurA-startuurA + stopuurB-startuurB = tA + tB

of
vb4:
A ---oooooo---------
B --------oooooo----
resultaat = stopuurB-startuurA

we weten wanneer er een overlap is van de machines wanneer het "laatste stopuur - het eerste startuur" van twee machines een kleiner resultaat geeft dan het optellen van de uren van de machines afzonderlijk.

de tijd van overlap tussen machine A en B noemen we tAB. (tAB = 0 bij vb3 en 3 o'tjes bij vb4).


Wanneer we nu tA +tB -tAB doen, klopt het resultaat altijd.

------
Voor drie machines A,B,C:
empirisch:
tA + tB + tC - tAB - tAC - tBC + tABC = resultaat. (waar tABC de tijd is waarbij de 3 machines terzelfdertijd werken.)

dus: 3 enkele termen (A,B,C), 3 dubbele (AB, AC en BC) en 1 enkele (ABC)
-----
Voor vier machines A,B,C,D:

hier blijkt dat ik
4 enkele termen, 6 dubbele, 4 triples, en 1 quatrootje (hmmm hoe noem ik dat) zijnde tABCD


dit kan ik opschalen, en kijk, ik krijg die beroemde driehoek van Pascal:
enkele dubbele triple kwartet quintet sextet
1 machine: 1
2 machines: 2 , 1
3 machines: 3 3 1
4 machines: 4 6 4 1
5 machines: 5 10 10 5 1
6 machines: 6 15 20 15 6 1

waarbij opgemerkt moet worden dat in de driehoek er ook overal in het begin een 1 staat (de nulterm ?!)

Nu voel ik aan mijn botten dat hier iets met matrices te doen moet zijn....

voor 2 machins:
[A tAB]
[ 0 B ]
voor 3 machines:
[A tAB tAC ]
[ B tBC ]
[ C ] maar mijn tABC-term past hier niet meer in... en toch moet het mogelijk zijn.

Nu heb ik het in excel gepropt, het gaat over windturbines, voor 3 toestellen is het nog mogelijk om het aantal cellen beheersbaar te houden, maar vanaf vier of vijf moet dit theoretisch op te lossen zijn.
Helaas, mijn wiskundekennis die ik nog bezit is hier neergeschreven, ik voel de matrixtermen niet meer genoeg aan om geholpen te worden door internet.
Ziet er iemand de theoretische oplossing? Ik vermoed dat dit eigenlijk een standaardprobleempje is...

Groetjes,
Lode

tsagld
Vergevorderde
Vergevorderde
Berichten: 341
Lid geworden op: 23 mar 2009, 12:07
Contacteer:

Re: Tijden optellen-->matrixprobleem?

Bericht door tsagld » 23 jul 2009, 15:56

Ik heb niet je volledige verhaal gelezen, maar bovenin zeg je dat het resultaat moet zijn: de periode dat er tenminste één machine draait.

Dit klinkt meer als een logisch probleem, en niet zozeer wiskundig.
Een machine draait niet: 0
Een machine draait wel: 1

vb:
A: 00110101000111001001011100100101
B: 11001001110010011001110011100101
C: 01011010100101001101010010010011

De tijdseenheden waar tenminste één machine draait zijn die tijdsspannes waar ten minste één 1 in de kolom staat. Het resultaat krijg je door een logische OR uit te voeren op de waardes:
00110101000111001001011100100101
11001001110010011001110011100101
01011010100101001101010010010011 OR
---------------------------------------------
11111111110111011101111111110111

Kortom, maak er binaire getallen van en je kunt met elke scripttaal de ge-OR-de waarde berekenen, onafhankelijk van het aantal machines.

Is dit wat je bedoelde?

superlode
Nieuw lid
Nieuw lid
Berichten: 2
Lid geworden op: 23 jul 2009, 14:44

Re: Tijden optellen-->matrixprobleem?

Bericht door superlode » 23 jul 2009, 16:15

Ja, dat klopt natuurlijk helemaal (bij het typen van mijn voorbeeldjes was ik continu aan het or'en),
we spreken hier wel op jaarbasis met een resolutie van één minuut. Dat is zeker doenbaar met excel, maar het oogt gewoon niet mooi. Ik voel aan dat dit theoretisch kan opgelost worden.
Ik zou kunnen een enorme tool maken, die dit helemaal aankan, maar ik moet zeggen dat ik zelf wel van vraagstukjes houd en ik vroeg me af of er geen esthetischere oplossing bestaat (ik heb die Pascal-driehoek gezien, en toen dacht ik "hola!").

Alleszins al bedankt voor de enorme snelle reactie!
Lode

tsagld
Vergevorderde
Vergevorderde
Berichten: 341
Lid geworden op: 23 mar 2009, 12:07
Contacteer:

Re: Tijden optellen-->matrixprobleem?

Bericht door tsagld » 24 jul 2009, 09:37

Op jaarbasis met een resolutie van één minuut betekent een benodige memory block van iets meer dan 64Kb per machine. Da's niet veel.
Ook als je niet kunt programmeren kun je dit met een scripttaaltje makkelijk voor elkaar krijgen.

Persoonlijk vind ik dat het erg mooi oogt :wink:
Geen veeltermen of Pascal-driehoeken. Bij n machines heb je n-1 OR-operaties nodig. Hoe mooi wil je het hebben?

Plaats reactie