20.11.2013 Views

APL-Journal - APL Germany e. V.

APL-Journal - APL Germany e. V.

APL-Journal - APL Germany e. V.

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>APL</strong>-<strong>Journal</strong><br />

Das Ergebnis der Verarbeitung mit demProgramm<br />

ALUAPPL_MATMULT ist<br />

·ALU_PM[Ó]·<br />

[0] ALU_PM<br />

[1] RC½ALU3_INIT<br />

[2] RC½ALUAPPL_PRODUKTIONSMATRIX<br />

·<br />

Bei der Lösung des Problems mit <strong>APL</strong> ist besonders interessant,<br />

dass die Matrizenmultiplikation unmittelbar mit einer<br />

eingebauten Funktion lösbar ist (Zeile 14).<br />

Produktionsmatrizen<br />

In diesem Teil geht es um das Verarbeiten von drei Arrays.<br />

Es wird als Beispiel das Verarbeiten von Produktionsmatrizen<br />

behandelt. Dabei soll bei bekannten Beziehungen<br />

zwischen Rohstoffen und Zwischenprodukten sowie der<br />

Beziehung von Zwischenprodukten zu Endprodukten bei<br />

gegebenen Endproduktmengen die Mengen der jeweiligen<br />

Rohstoffe ermittelt werden. Das Problem ist:<br />

Problem: Produktionsmatrix auswerten<br />

Gegeben:<br />

● Beziehung zwischen Rohstoffen und Zwischenprodukten<br />

Datei matrix-r2z.txt<br />

● Beziehung von Zwischen- zu Endprodukten<br />

Datei matrix-z2e.txt<br />

● Vektor an zu erzeugenden Endprodukten<br />

Datei vektor-ep.txt<br />

·ALUAPPL_PRODUKTIONSMATRIX[Œ]·<br />

[0] RC½ALUAPPL_PRODUKTIONSMATRIX;M1;M2;M3;RES;R;G_ERROR<br />

[1] G_ERROR½RC½0 ä INIT GLOBAL ERROR SIGNAL<br />

...<br />

[5] M1½READMAT 'matrix-r2z.txt' ä READ FROM FILE<br />

[6] ¸(0ôG_ERROR)/ER01 ä I/O ERROR<br />

[7] M2½READMAT 'matrix-z2e.txt' ä READ FROM FILE<br />

[8] ¸(0ôG_ERROR)/ER01 ä I/O ERROR<br />

[9] M3½,READMAT 'vektor-ep.txt' ä READ FROM FILE<br />

[10] ¸(0ôG_ERROR)/ER01 ä I/O ERROR<br />

[11] M3½((æM3),1)æM3<br />

[12] ¸((ý1ÆæM1)ô1ÆæM2)/ER02 ä CHECK PROPER RANK OF MATRICES<br />

[13] ¸((ý1ÆæM2)ô1ÆæM3)/ER02 ä CHECK PROPER RANK OF MATRICES<br />

[14] RES½M1+.õM2+.õM3 ä PRODUCTION MATRIX<br />

[15] 'prodmat.txt' ALUWRITEMAT RES<br />

[16] ¸(0ôG_ERROR)/ER04 ä PROBLEMS WRITING INVERTED MATRIX<br />

[17] HOST ALUSYSPATH,G_DIRSEP,'alu3-sigok.bat' ä TELL RESULT<br />

[18] ¸0<br />

...<br />

[27] ¸0<br />

·<br />

Ein Beispielablauf dazu:<br />

Gegeben sei die Beziehung Rohstoffe zu Zwischenprodukten<br />

in der Datei „matrix-a2z.txt“:<br />

Gesucht:<br />

● Menge der benötigten Rohstoffe<br />

Datei prodmat.txt<br />

Es werden hier also drei Arrays (zwei Matrizen und ein<br />

Vektor) verarbeitet. Da diese in einer beliebigen Reihenfolge<br />

gespeichert werden können, wird an dieser Stelle wieder deutlich,<br />

dass es eine wesentliche Vereinfachung ist, den Start der<br />

Verarbeitung an das Vorhandensein einer Triggerdatei zu<br />

binden. In der Funktion ALU_PM wird wieder zunächst das<br />

allgemeine Umfeld für die Verarbeitung ermittelt<br />

(ALU3_INIT). Der anwendungsbezogene Teil,<br />

● das Einlesen der Daten aus den Dateien „matrix-r2z.txt“,<br />

„matrix-z2e.txt“ und “vektor-ep.txt“,<br />

● die Verarbeitung und<br />

● das Bereitstellen des Ergebnisses in der Datei<br />

„prodmat.txt“<br />

geschieht in der Funktion ALUAPPL_MATMULT.<br />

die Beziehung von Zwischenprodukten zu Endprodukten<br />

in der Datei „matrix-z2e.txt:<br />

8 <strong>APL</strong> - <strong>Journal</strong> 2006, 25. Jg., Heft 1/2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!