home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
apps
/
spread
/
orspread
/
doc
/
orspread.doc
next >
Wrap
Text File
|
1986-02-03
|
26KB
|
524 lines
=======================================
Dokumentation zu ORSpread (Version 2.0)
=======================================
Inhalt : 1. Einführung
2. Implementationsbeschreibung u. -beschränkungen
3. Problemtypen
3.1 Linearoptimierung
3.1.1 Beispiel (aus Müller-Merbach : "Operations Re-
search)
3.2 Netzpläne
3.3 Kürzeste Wege
4. ORSpread Benutzung
4.1 Menüs
4.2 Tastatur und Maus
1 Einführung
=============
ORSpread (Operations Research Spread Sheet) ist ein Programm,
dessen Benutzeroberfläche sich an Spread Sheet-Programmen orientiert,
dessen Fähigkeit aber nicht in der Kalkulation sondern in der Lösung
von Standard-OR-Problemen liegt.
Es werden Lösungsmodule für 3 verschiedene Standard-OR-Probleme
angeboten :
a. Lösung von Linearoptimierungsproblemen durch die Simplexme-
thode. Damit auch implizit zur Lösung linearer Gleichungs-
systeme geeignet.
b. Berechnung von Netzplänen mit der Critical-Path-Method.
c. Berechnung der kürzesten Entfernungen und Wege zwischen allen
Knoten eines bewerteten Graphen mit dem Tripelalgorithmus.
2 Implementationsbeschreibung u. -beschränkungen
=================================================
a. Rechengenauigkeit und Zahlenbereich
Es werden 8-Byte-LONGREALs mit einer 16-stelligen Genauig-
keit verwendet. Der Zahlenbereich ist damit ausreichend groß
auf [-1.0E+305,1.0E+305] dimensioniert. Alle Zahlen im Bereich
[-1.0E-13,1.0E-13] werden als 0 interpretiert.
b. Tabellengröße und Speicherverwaltung
Der Speicherplatz für die Matrix wird dynamisch verwaltet.
Lediglich die Vektoren B, C, Lsg, T, FrB, SpB, FrE, SpE und die
Spaltennamen, Relationszeichen und Bemerkungen werden in sta-
tischen Strukturen gespeichert.
Zur Zeit werden Matrizen bis zu einer Größe von 500x500
akzeptiert, wobei aber nicht unbedingt alle theoretisch verfüg-
baren 500 * 500 = 250000 Tabellenfelder, sondern - bei einem 1
MegaByte-Rechner - nur ca. 30000 Felder tatsächlich genutzt
werden können. Bei solch großen Problemen sind die Matrizen
allerdings ohnehin nur sehr spärlich besetzt (< 10%), so daß der
Speicherplatz kein Engpaß werden sollte.
3 Problemtypen
===============
Diese kleine Dokumentation kann natürlich keinesfalls ein OR-
Lehrbuch ersetzen. Es werden lediglich die wichtigsten Stichworte kurz
angerissen und ein erklärendes Linearoptimierungs-Beispiel gegeben.
Für ausführlichere Informationen muß an dieser Stelle auf die
Literatur (z.B. Müller-Merbach : "Operations Research") verwiesen
werden.
3.1 Linearoptimierung
----------------------
Linearoptimierungsprobleme sind durch eine, unter gewissen linearen
Nebenbedingungen (NB) zu optimierende (maximierende bzw. minimier-
ende), Zielfunktion (ZF) charakterisiert.
Die NB und die ZF sind hierbei Funktionen in den Strukturvariablen,
an deren optimalen Werten der Benutzer hauptsächlich interessiert ist.
Man unterscheidet hierbei zwischen Variablen, die der Nichtnegativi-
tätsbedingung (NNB) unterworfen sind, und solchen, die auch negativ
werden dürfen also bezüglich des Vorzeichens frei sind (freie Va-
riable). Restriktionen der Form Xi >= 0 werden also nicht explizit
eingeführt, sondern auf Grund des Variablentyps implizit definiert.
Neben diesen vom Benutzer eingeführten Strukturvariablen existieren
weitere - durch den Lösungsalgorithmus bedingte - Schlupfvariablen,
deren Optimalwerte im Rahmen der Berechnung ebenfalls bestimmt werden
und so (für den versierteren Anwender) zusätzliche Informationen
liefern.
ORSpread erlaubt die Formulierung solcher Probleme in der benutz-
erfreundlichen (Un)gleichungsschreibweise (anstatt in der fehleranfäl-
ligeren Simplextableauform, bei der der Anwender häufig im Zweifel
ist, welches Vorzeichen die Koeffizienten nun haben müssen).
Hierbei wird für jede Variable eine Spalte und für jede Restriktion
(NB) eine Zeile zur Verfügung gestellt. Zwei weitere Spalten (B und
Rel) enthalten die absoluten Glieder bzw. die Relationszeichen der
(Un)gleichungen.
Außerdem kann zu jeder Restriktion eine Bemerkung - bei größeren
Problemen unverzichtbar - gespeichert werden, die gleichzeitig als
Name für die zugehörige Schlupfvariable interpretiert werden kann. Die
C-Zeile schließlich repräsentiert die Koeffizienten der ZF.
Nachdem die Berechnung erfolgt ist, wird die Lösungszeile an das
Tableau angehängt. Fette Werte stehen für die Optimalwerte der
Basisvariablen (BV), helle Werte für die Schattenpreise der Nichtba-
sisvariablen (NBV).
Allerdings darf das so entstandene Tableau NICHT mehr als Ungleich-
ungssystem in den Strukturvariablen aufgefaßt werden. Vielmehr enthält
es nun die Koeffizienten des Simplextableaus. Die Ränderung dieses
Tableaus (Spalten- und Zeilenbezeichnungen) ist aber aufgrund der
vielen Positionsvertauschungen von Variablen (Basis/Nichtbasis-Tausch)
während der Optimierung nicht mehr zutreffend. Diese Darstellungsform
wurde dennoch gewählt, um es dem Benutzer zu erleichtern, die vorher
in einer bestimmten Reihenfolge definierten Variablen mit deren
Optimalwerten leicht wiederzufinden. Überdies sind die Koeffizienten
der Lösungsatrix für den Anwender nicht übermäßig interessant.
Über die Option Lösung drucken erhält man neben den Werten für die
Strukturvariablen auch die Werte der Schlupfvariablen, die für die
Interpretation der Lösung sehr hilfreich seien können.
Wenn man nur wissen möchte ob und wie ein (Un)gleichungssystem
lösbar ist, ohne jedoch eine ZF optimieren zu wollen, so kann man die
ZF einfach ignorieren (alle Koeffizienten in der C-Zeile auf 0 be-
lassen).
Für reine lineare Gleichungsysteme sind alle Variablen als frei zu
deklarieren und alle Relationszeichen auf "=" zu setzen. Die Zielfunk-
tion wird hier ebenfalls ignoriert.
Es kann natürlich auch vorkommen, daß das (Un)gleichungsystem
widersprüchlich ist, redundante Gleichungen existieren, nicht genügend
Restriktionen (z.B. unterbestimmtes Gleichungssystem) vorhanden sind
oder die Zielfunktion unbeschränkt ist. In diesen Fällen muß der
Lösungsversuch vorzeitig abgebrochen werden. Aus dem letzten Zwischen-
tableau ist es aber eventuell für den geübten Anwender möglich
herauszufinden, warum keine zulässige (und schon gar keine optimale)
Lösung gefunden werden konnte.
3.1.1 Beispiel
---------------
Ein Betrieb fertigt zwei Produkte P1 und P2, die beim Verkauf (pro
Stück) einen Deckungsbeitrag (Erlös - Kosten) von 300 DM bzw. 500 DM
erbringen. Allerdings fallen auch Fixkosten in Höhe von 36000 DM an.
Für die Produktion stehen drei Maschinen A, B und C zur Verfügung.
Um ein Stück vom Typ P1 herzustellen, müssen A und B je eine Stunde
benutzt werden. Zur Fertigung eines Stücks vom Typ P2 sind auf A : 2
Stunden, B : 1 Stunde und C : 3 Stunden nötig.
Die Maschinenlaufzeiten sind allerdings begrenzt und zwar auf : A :
170 Stunden, B : 150 Stunden und C : 180 Stunden. Gesucht ist das
gewinnmaximale Produktionsprogramm.
Formulierung als Ungleichungssystem in den Strukturvariablen P1, P2
deren Optimalwerte (optimale Ausbringungsmenge der Produkttypen)
gesucht werden, wobei sich als Zielwert der Gesamtgewinn aus dem
Verkauf dieser gefertigten Produkte ergibt :
1 * P1 + 2 * P2 <= 170 (Bem.: Maschine A)
1 * P1 + 1 * P2 <= 150 (Bem.: Maschine B)
0 * P1 + 3 * P2 <= 180 (Bem.: Maschine C)
300 * P1 + 500 * P2 - 36000 --> max (Bem.: ZF = Gewinn)
P1 >= 0 (Bem.: implizite NNB)
P2 >= 0 (Bem.: implizite NNB)
Neben P1 und P2 entsteht pro NB eine Schlupfvariable, also die
Schlupfvariablen A, B und C mit der folgenden Semantik. Die Werte von
A, B und C geben die Leerlaufzeit (Stillstandzeit) der jeweiligen
Maschinen an. Ist die Stillstandzeit = 0, so wird die Maschine voll
ausgelastet.
Lösung des Problems :
Struktur/[Schlupf]-Variable | optimaler Wert | Schattenpreis
------------------------------+------------------+------------------
P1 | 130.00000000 |
P2 | 20.00000000 |
[ 1] A | | -200.00000000
[ 2] B | | -100.00000000
[ 3] C | 120.00000000 |
Zielwert | 13000.00000000 |
Wenn 130 Stück vom Typ 1 und 20 Stück vom Typ 2 hergestellt werden,
so erzielen wir einen (optimalen = maximalen) Gewinn von 13000 DM.
Hierbei werden die Maschinen A und B voll ausgelastet (Wert = 0).
Lediglich die Maschine C steht 120 von 180 Stunden still. Die
Schattenpreise sagen aus, daß sich der Gewinn für jede Stunde, die A
(B) weniger läuft, um 200 DM (100 DM) verringert (negatives Vorzeichen
der Schattenpreise). Für jede zusätzliche Fertigungsstunde auf A (B)
[z.B. durch Überstunden] würde sich der Gewinn dagegen um 200 DM (100
DM) erhöhen.
3.2 Netzpläne
--------------
Netzpläne sind Graphen, deren Knoten mit der Dauer der assoziierten
Tätigkeit (Job) beschriftet sind, deren Kanten aber keine Beschrif-
tung tragen, sondern nur wichtig ist ob eine Kante existiert oder
nicht. Hierbei bedeutet eine Kante vom Knoten v zum Knoten w, daß der
Job v vor dem Job w ausgeführt werden muß oder anders ausgedrückt : w
kann erst dann begonnen werden wenn v beendet ist. Man ist nun an der
kürzesten Gesamtprojektdauer (unter Ausnutzung einer möglichst großen
Parallelität der Jobausführungen) sowie der dafür notwendigen bzw.
ausreichenden Anfangszeitpunkte der einzelnen Jobs interessiert.
In ORSpread wird für jeden Knoten eine Zeile und eine Spalte (mit
der gleichen Nummer) reserviert. So erhält man also eine Adjazenzma-
trix, in der die i-te Zeile die Adjazenzliste und die i-te Spalte die
Inzidenzliste des i-ten Knotens darstellt. Ein Kante von i nach j wird
also in das Feld [i,j], ein Kante von j nach i in das Feld [j,i]
eingetragen. Einträge in der Hauptdiagonalen (Kante von i nach i)
werden nicht zugelassen, da diese einen Widerspruch bedeuten und zur
Unlösbarkeit des Problems führen. Größere Zykel (z.B.: i --> j --> k -
-> i) werden erst während der Berechnung erkannt (und führen zum
Abbruch derselben).
In der T-Zeile werden die Jobdauern notiert.
Nach erfolgreicher Beendigung der Rechnung werden die gesuchten
Lösungsspalten an das Tableau angehängt.
3.3 Kürzeste Wege
------------------
Für einen gerichteten/ungerichteten/gemischten Graphen, dessen Kan-
ten mit ihrer jeweiligen Länge beschriftet sind, werden alle kürzesten
Wege (von jedem Knoten i zu jedem anderen Knoten j) gesucht. Hierbei
wird unterstellt daß alle Kanten der Form i --> i Länge 0 haben (bzw.
diese Kanten nicht existieren).
Wie bei den Netzplänen wird auch hier die Adjazenzmatrixdarstellung
benutzt. Ein Eintrag von 17.42 in der i-ten Zeile und j-ten Spalte
bedeutet also, daß eine Kante vom Knoten i zum Knoten j mit Länge
17.42 existiert.
Nach Berechnung der kürzesten Wege stellen die Matrixeinträge die
Länge dieser gefundenen Wege dar. Da diese Wege jedoch i.a. über einen
oder mehrere Zwischenknoten verlaufen, können sie in der Matrix nicht
repräsentiert werden, sondern müssen mit Hilfe einer gesonderten
Ausgaberoutine ('Lösung drucken') dargestellt werden. Hierbei werden
der Start- und Ziel-Knoten mit der Gesamtentfernung sowie alle auf dem
kürzesten Weg liegenden Pfad-(Zwischen)-Knoten mit den Einzelentfer-
nungen aufgelistet.
Enthält der Graph mindestens einen Zykls negativer Länge, so ist
die Fragestellung nach kürzesten Wegen nicht mehr sinnvoll. In diesem
Fall muß die Rechnung vorzeitig abgebrochen werden.
4 ORSpread Benutzung
=====================
4.1 Menüs
----------
DESK
ORSPREAD-INFO
Informationen über den Autor, die Programmversion, die
Matrixbelegung und Matrixrestkapazität sowie über den aktuellen
Filenamen und die zuletzt ausgeführte Sicherungsoperation.
[Bem.: Es können höchstens Belegungen bis zu 65536 Matrixfel-
dern angezeigt werden. Alle weiteren Eintragungen in die Matrix
werden zwar (genug RAM vorrausgesetzt) ordnungsgemäß durchge-
führt, aber diese Informationszahl wird sich nicht erhöhen].
DATEI
LADEN
ORSpread-Datei in den Arbeitsspeicher laden, wobei der bishe-
rige Tableauinhalt verloren geht (eventuell erst nach Bestäti-
gung). Der Problemtyp bzw. ein falsches Dateiformat werden
automatisch erkannt.
SPEICHERN
Speichern des Tabelleninhaltes unter dem aktuellen Problemna-
men (falls dieser bekannt ist; Ansonsten wie SPEICHERN ALS).
SPEICHERN ALS
Speichern des Tabelleninhaltes nach Auswahl des Dateinamens
mit der Fileselektorbox.
PROGRAMM BEENDEN
Beenden von ORSpread (eventuell erst nach Bestätigung).
PROBLEM
Bei den 3 folgenden Unterpunkten wird (eventuell erst nach
Bestätigung) der Tableauinhalt gelöscht und anschließend ein neues
(leeres) Problemtableau des gewählten Problemtyps initialisiert.
Hierbei richten sich :
-) die Tableaugröße
-) das Tableauformat (globale Spaltenbreite, Nachkommastellen)
-) die Relationszeichen (bei der Linearoptimierung)
und
-) die Variablen-/Knotennamen
nach den in FORMAT INSTALLATION gemachten Angaben.
LINEAROPTIMIERUNG
Linearoptimierungsproblem.
KÜRZESTE WEGE
Kürzeste Wege zwischen allen Graphknoten.
NETZPLAN
Netzplanaufgabe.
BERECHNUNG STARTEN
Es wir versucht das aktuell editierte Problem zu lösen. Zuvor
wird der Benutzer allerdings gezwungen (nur zu seinem Besten)
das Tableau abzuspeichern [Ausnahme: Seit der letzten Speicher-
ung wurden keine Veränderungen durchgeführt], da die Feldinhalte
im Laufe der Rechnung i.a. überschrieben werden und für nach-
trägliche Änderungen nicht mehr zur Verfügung stünden.
EDIT
TABLEAUGRÖßE
Nach Angabe der Zeilen- und Spaltenanzahl bzw. der Graphkno-
tenanzahl wird die aktuelle Tabelle am rechten bzw. unteren Rand
erweitert bzw. gekürzt.
[Bem.: Netzpläne und Kürzeste Wege-Probleme stellen (s.o.)
Graphen dar und werden stets in einer quadratischen Adjazenz-
matrix repräsentiert. Deshalb kann und darf der Benutzer die
Zeilen- und Spaltenanzahl nicht getrennt spezifizieren.]
Je nach denen, in FORMAT INSTALLATION gemachten Angaben über
die Variablennamen und das Defaultrelationszeichen (für die
Linearoptimierung) werden die Namen und Relationszeichen bei
einer Erweiterung des Tableaus entsprechend automatisch gesetzt.
Somit kann man z.B. ein Linearoptimierungstableau (mit 17 ≤-NB,
11 ≥-NB und 9 Gleichungen schrittweise aufbauen und muß die
Relationszeichen nicht per Hand eintragen.
Die 6 folgenden Operationen sind vorwiegend für Linearoptimier-
ungsprobleme vorgesehen. Bei Auswahl dieser Menüpunkte in einer der
beiden anderen Problemstellungen kann es zu überraschenden - auf
den ersten Blick vermutet man wohl einen Programmfehler, den ich
aber mit gutem Gewissen abstreiten kann - Ergebnissen kommen. Dafür
gibt es verschiedene Gründe :
Bei der Linearoptimierung haben Zeilen und Spalten völlig
unterschiedliche Bedeutungen. Bei den anderen beiden Problemen
gehören jedoch je eine Zeile und eine Spalte (mit gleicher Nummer)
logisch zusammen, da sie die Adjazenz- und Inzidenzliste des zugh.
Knotens darstellen. Während man bei der Linearoptimierung z.B. zwei
Zeilen (Spalten) vertauschen kann ohne die Semantik des Tableaus zu
verändern, hätte dies bei den Adjazenzmatrizen der Graphen nur
schwer nachvollziehbare (und sicherlich vom Benutzer auch nicht
gewollte) Konsequenzen.
Grundsätzlich werden deshalb alle Operationen, die bei der
Linearoptimierung die Wahl zwischen Zeile und Spalte lassen, bei
den Graphproblemen sowohl auf die zugh. Zeile als auch die zugh.
Spalte ausgeführt (eine unnötige Aufblähung des RSC-Files
[unterschiedliche Dialogboxen für die verschiedenen Probleme] habe
ich mir erspart und setze stattdessen die Kenntnis des Benutzers
über diese Vereinbarung vorraus)
Aber - wie schon gesagt - kann selbst diese Art der Befehlsaus-
führung zu überraschenden Ergebnissen führen.
Auch die Einschränkung, daß die Hauptdiagonale bei Adjazenzma-
trizen leer bleibt, kann z.B. bei den Blockoperationen zu Verwir-
rungen und sogar Datenverlusten führen, da Einfügebefehle in der
Hauptdiagonalen einfach ignoriert werden.
ZEILE/SPALTE EINFÜGEN
Nach Angabe der Einfügeposition wird bei der Linearoptimier-
ung die entsprechende Zeile/Spalte - bei den anderen beiden
Problemen sowohl die Zeile als auch die Spalte - eingefügt.
ZEILE/SPALTE LÖSCHEN
Analoge Operation zu ZEILE/SPALTE EINFÜGEN.
BLOCK KOPIEREN
Nach Definition des rechteckigen Quell- und Zielbereichs wird
der Inhalt der Quelle nach Ziel kopiert. Ein Überlappen der
Bereiche ist hierbei nicht erlaubt, da der Benutzer einen Block
duplizieren möchte und sich nicht ungewollt einen Teil des
Blocks überschreiben will.
BLOCK VERSCHIEBEN
Analogr Operation zu BLOCK KOPIEREN, wobei die Quelle nicht
kopiert sondern verschoben wird und außerdem Überlappungen
der beiden Blöcke erlaubt sind.
BLOCK FÜLLEN
Füllen eines rechteckigen Bereichs mit einer reellen Zahl.
ZEILE/SPALTE TAUSCHEN
Nach Angabe der beiden Nummern wird der Inhalt der beiden
Zeilen bzw. Spalten (bzw. sowohl Zeilen als auch Spalten bei den
Graphproblemen) ausgetauscht.
VARIABLEN BENENNEN
Hiermit wird der Editiermodus gewechselt. Der Cursor springt
in die Zeile der Variablennamen, die dann - wie alle anderen
Tableaufelder auch - editiert werden können. Allerdings sind
einige (im "normalen" Tableaueditiermodus zugängliche) Funktio-
nen, die bei der Editierung von Variablennamen unsinnig wären
(z.B.: Block mit reeller Zahl füllen), ausgeschaltet.
FORMAT
GLOBAL
Festlegung des globalen Spaltenformates :
-) Spaltenbreite
-) Nachkommastellenanzahl (die höchstens so groß wie MIN
{13,Spaltenbreite-2} sein darf)
LOKAL
Lokales Format für die Spalte in der der Cursor steht.
SPEZIELL
-) Editiererleichterung für Kürzeste-Wege-Graphen. Alle nach-
folgend eingetragenen Kanten werden als gerichtet bzw. ungerich-
tet aufgefaßt. Lediglich Kanten mit negativer Entfernungsangabe
werden in jedem Fall als gerichtet aufgefaßt, da eine entsprech-
ende ungerichtete Kante zu einem Zyklus negativer Länge und
somit zur Unlösbarkeit des Problems führen würde.
-) Festlegung der Netzplanzeitensemantik. Das Programm
akzeptiert entweder abstrakte reellwertige Zeiteinheiten (ZE)
oder echte ZE im Format W:T:H:M:S (d.h.: Wochen : Tage : Stunden
: Minuten : Sekunden), wobei jederzeit zwischen diesen beiden ZE
hin- und hergeschaltet werden kann [allerdings geht der Nach-
kommaanteil der abstrakten Werte bei der Umwandlung verloren].
Bei den echten ZE werden Eingaben bis zu echt weniger als
1000 Wochen akzeptiert.
DARSTELLUNG
Festlegung der Zeichendarstellungsgröße, wobei Werte im Be-
reich [4-12] zu flachen (aber relativ breiten) Zeichen, Werte im
Bereich [13-20] zu hohen (aber relativ schmalen) Zeichen führen.
INSTALLATION
Spezifikation einiger Parameter, die für neue Probleme (vgl.
PROBLEM) bzw. bei Tableauerweiterungen (vgl. EDIT, ZEILE/SPALTE
EINFÜGEN) als Defaultwerte dienen. Diese Werte können auch in
der Datei ORDEFAUL.INS gespeichert werden.
DRUCKEN
TABLEAU-HARDCOPY
Die gesamte Tabelle wird (in der aktuellen Darstellungsgröße)
durch Hardcopies (zwei Stück pro Druckerseite) zu Papier
gebracht. Diese Hardcopies können z.B. anschließend zu einer
großen Tabelle zusammengeklebt werden.
BILDSCHIRM-HARDCOPY
Es wird nur eine Hardcopy des aktuellen Bildschirminhaltes
angefertigt.
LÖSUNG DRUCKEN
Ausgabe der Lösung auf Drucker, Diskette oder Bildschirm.
Hierbei gibt es für Linearoptimierungs- und Kürzeste-Wege-
Probleme mehr Informationen, als in der Tableaudarstellung
angezeigt werden können.
DIALOG
ERKLÄRENDE MELDUNGEN
Ein Schalter, der die Anzeige von erklärenden Meldungen an-
und ausschaltet.
WARNUNGEN
Ein Schalter, der die Anzeige von Warnungen (vgl. PROGRAMM-
ENDE, PROBLEM, TABLEAUGRÖßE etc.) an- und ausschaltet.
FUNKTIONSTASTEN
Es erscheint eine Dialogbox, in der die Belegung der Funk-
tionstasten F1,..,F9 geändert werden kann.
SOFORT EINFÜGEN
Ein Schalter, der den Dialog-Editier-Modus steuert. Bei
eingeschaltetem Schalter wird die Editierung eines Feldes sofort
nach Drücken einer zulässigen Taste gestartet und kann sowohl
mit den Cursor-Tasten, als auch mit 'Return' oder 'Enter'
beendet werden. Nur in diesem Modus ist eine Editierung mit
Hilfe der Funktionstasten möglich.
Im anderen Fall muß man den Editierwunsch durch Drücken von
'Return' oder 'Enter' äußern und kann auch nur mit diesen beiden
Tasten wieder enden, wobei die Cursor-Tasten jetzt zum Laufen
innerhalb des Editierstrings dienen.
Weitere Editier-Sondertasten sind
-) 'Esc' = leere den Eingabestring und setze den Cursor an
den Anfang
-) 'Undo' = hole den ursprünglichen Inhalt wieder zurück
-) 'Insert' = füge eine Leerstelle ein
-) 'Delete' = lösche ein Zeichen unter dem Cursor
-) 'Backspace' = lösche das Zeichen links vom Cursor
-) 'Clr/Home' = gehe zum Anfang der Eingabe ohne den Inhalt zu
verändern
HILFE
Erklärung der wichtigsten Programmeigenschaften nach TASTATUR,
ALLGEMEINES, LINEAROPTIMIERUNG, KÜRZESTE WEGE und NETZPLAN geglie-
dert.
4.2 Tastatur und Maus
----------------------
Die Maus dient nicht nur als Zeiger um die Pull-Down-Menüs zu
öffnen, sondern mit einem Maus-Linksclick läßt sich der Cursor frei
auf dem Bildschirm positionieren.
Die Tastatur hat ebenfalls vorwiegend Cursorsteuerungsaufgaben.
Hierbei gilt folgende Belegung :
-) Cursortasten : Bewege Cursor um ein Feld weiter
-) Shift+Cursortaste : Scrolle eine Seite
[Bem : Die folgenden Tasten sind bei der Editierung der
Namensfelder ausgeschaltet]
-) Esc : Springe zu einer bestimmten Position
-) Clr/Home : Springe zum Feld [1,1]
-) Tab : Springe zum nächsten belegten Matrixfeld in
der aktuellen Zeile (sehr nützlicher Befehl
um bei großen Tableaus sicherzustellen, daß
keine ungewollten Matrixeintragungen mehr
in dieser Zeile existieren)
-) Ctrl M : Setzen und Anspringen von bis zu 9 Marken.
Das Setzen wird mit einem akustischen Sig-
nal bestätigt.
Außerdem gibt es noch die Möglichkeit die Quell- und Zielblöcke der
Blockoperationen im voraus zu markieren (bei Namenseditierung eben-
falls ausgeschaltet). Ist die Markierung erfolgt ertönt eine akusti-
sche Bestätigung :
-) Ctrl B : Nordwestecke des Quellblocks
-) Ctrl K : Südostecke des Quellblocks
-) Ctrl Z : Nordwestecke des Zielblocks
Mit Hilfe des Funktionstasten F1 bis F9 können darüberhinaus häufig
einzutragende Zahlwerte oder Namen bzw. Bemerkungen mit einem Tasten-
druck eingefügt werden.
======================
Ende der Dokumentation
======================