Proc optmodel opcje binarne


Oświadczenie PROC OPTMODEL Instrukcja PROC OPTMODEL wywołuje procedurę OPTMODEL. Możesz określić opcje, aby kontrolować sposób przetwarzania modelu optymalizacji i sposób wyświetlania wyników. Oto składnia: Poniższe opcje mogą pojawić się w instrukcji PROC OPTMODEL (te opcje można również określić za pomocą instrukcji RESET). Liczba CDIGITS określa oczekiwaną liczbę cyfr dziesiętnych dokładności dla nieliniowych ograniczeń. Wartość może być ułamkowa. PROC OPTMODEL używa tej opcji, aby wybrać długość kroku, gdy numeryczne aproksymacje pochodne są wymagane do oceny jakobian nieliniowych ograniczeń. Domyślna wartość zależy od środowiska operacyjnego. Zakłada się, że wartości ograniczeń są dokładne do granic precyzji maszyny. Aby uzyskać więcej informacji na temat numerycznych przybliżeń pochodnych, zobacz sekcję Automatyczne różnicowanie. FDFORWARDCENTRAL wybiera metodę używaną do przybliżania numerycznych pochodnych, gdy pochodne analityczne są niedostępne. Większość solverów wymaga pochodnych celu i ograniczeń. Dostępne metody są następujące: FDFORWARD użyj różnic między forwardami FDCENTRAL użyj różnic centralnych Wartością domyślną jest FORWARD. Aby uzyskać więcej informacji na temat numerycznych przybliżeń pochodnych, zobacz sekcję Automatyczne różnicowanie. Liczba FDIGITS określa oczekiwaną liczbę cyfr dziesiętnych dokładności dla funkcji celu. Wartość może być ułamkowa. PROC OPTMODEL używa tej wartości do wyboru długości kroku, gdy wymagane są pochodne numeryczne. Domyślna wartość zależy od środowiska operacyjnego. Zakłada się, że wartości funkcji celu są dokładne do granic precyzji maszyny. Aby uzyskać więcej informacji na temat numerycznych przybliżeń pochodnych, zobacz sekcję Automatyczne różnicowanie. INITVAR NOINITVAR wybiera, czy przekazywać wartości początkowe dla zmiennych do solwera, gdy wykonywana jest instrukcja SOLVE. INITVAR umożliwia przekazanie bieżących wartości zmiennych. NOINITVAR powoduje, że solver jest wywoływany bez żadnych specyficznych wartości początkowych dla zmiennych. Opcja INITVAR jest domyślna. Zauważ, że rozwiązania LP i QP zawsze ignorują wartości początkowe. Rozwiązania NLPU, NLPC, SQP i IPNLP próbują użyć określonych wartości początkowych. Solver MILP używa wartości początkowych tylko wtedy, gdy podano opcję PRIMALIN. Wartość INTFUZZ określa tolerancję zaokrąglania granic dla zmiennych całkowitych i binarnych do wartości całkowitych. Granice, które różnią się od liczby całkowitej najwyżej liczbą są zaokrąglane do tej liczby całkowitej. W przeciwnym razie dolne granice są zaokrąglane w górę do następnej większej liczby całkowitej, a górne granice są zaokrąglane w dół do następnej mniejszej liczby całkowitej. Wartość num może wynosić od 0 do 0,5. Domyślna wartość to 0,00001. MAXLABLEN liczba określa maksymalną długość dla wierszy i etykiet kolumn MPS. Dozwolony zakres wynosi od 8 do 256, a 32 domyślnie. Ta opcja może być również używana do kontrolowania długości nazw wierszy i kolumn wyświetlanych przez solwery, takich jak te znalezione w dzienniku iteracji solwerów LP. MISSCHECK NOMISSCHECK umożliwia szczegółowe sprawdzenie brakujących wartości w wyrażeniach. MISSCHECK żąda, aby komunikat był generowany za każdym razem, gdy PROC OPTMODEL oceni operację arytmetyczną lub wbudowaną funkcję, która ma argumenty z brakującymi wartościami (z wyjątkiem sytuacji, gdy operacja lub funkcja specjalnie obsługuje brakujące wartości). Opcja MISSCHECK może wydłużyć czas przetwarzania. NOMISSCHECK wyłącza tę szczegółową sprawozdawczość. NOMISSCHECK jest ustawieniem domyślnym. Żądania liczby PDIGITS, dla których w instrukcji PRINT wyświetlane są cyfry znaczące liczbowe dla kolumn numerycznych, dla których nie określono formatu. Wartość może być w zakresie od 1 do 9. Wartość domyślna to 5. PMATRIX num dostosowuje ocenę gęstości dwuwymiarowej tablicy, aby wpłynąć na sposób jej wyświetlania. Wartość num skaluje całkowitą liczbę niepustych elementów tablicy i jest używana przez instrukcję PRINT do oceny, czy tablica dwuwymiarowa jest rzadka czy gęsta. Tabele zawierające pojedynczą tablicę dwuwymiarową są drukowane w postaci listy, jeśli są one rzadkie i w postaci macierzowej, jeśli są gęste. Dowolna wartość nieujemna może być przypisana do liczby domyślnej wartości 1. Określenie wartości dla opcji PMATRIX mniejszej niż 1 powoduje, że formularz listy ma być używany w większej liczbie przypadków, natomiast podanie wartości większych niż 1 powoduje, że formularz matrycy może być używany w większej liczbie przypadków . Jeśli wartość wynosi 0, to zawsze używana jest forma listy. Więcej informacji znajduje się w sekcji PRINT Statement. Opcja PRESOLVER PRESOLVER liczba określa opcję presolve lub odpowiadającą jej wartość num. zgodnie z tabelą 6.6. Tabela 6.6: Wartości opcji PRESOLVER Zastosuj najwyższy poziom przetwarzania wstępnego. Presolver OPTMODEL napina zmienne ograniczenia i eliminuje zbędne ograniczenia. Zasadniczo poprawia to wydajność dowolnego rozwiązania. Opcja AUTOMATYCZNA jest pośrednia pomiędzy poziomami MODERATE i AGGRESSIVE. PRESTOL num zapewnia tolerancję, dzięki czemu można wyeliminować nieznacznie nieobowiązkowe ograniczenia przez presostat OPTMODEL. Jeśli wielkość nieefektywności nie jest większa niż, gdzie X jest wartością pierwotnego powiązania, to puste ograniczenie jest usuwane z rozwiązanego problemu. Presolver OPTMODEL nie drukuje wiadomości o niemożliwych do spełnienia ograniczeniach i zmiennych granicach, gdy infekcja mieści się w granicach tolerancji PRESTOL. Wartość PRESTOL może wynosić od 0 do 0,1, a domyślna wartość to 1E-12. PRINTLEVEL num kontroluje poziom wyświetlania listy podczas polecenia SOLVE. Tabele wyjściowego systemu dostarczania (ODS) drukowane na każdym poziomie są wymienione w tabeli 6.7. Niektóre solwery mogą tworzyć dodatkowe tabele, aby uzyskać więcej informacji w poszczególnych rozdziałach solver. Tabela 6.7: Wartości dla opcji PRINTLEVEL Opcja Wyłącz wszystkie tabele. Wydrukuj podsumowanie problemów i podsumowanie rozwiązań. Drukuj podsumowanie problemu, podsumowanie rozwiązania, metody obliczania pochodnych (dla solverów NLP), opcje Solvera, statystyki optymalizacji i tabele ODS specyficzne dla solvera. Więcej szczegółowych informacji na temat tabel ODS produkowanych przez PROC OPTMODEL zawiera sekcja Tabela ODS i nazwy zmiennych. Parametr PWIDTH określa szerokość używaną przez instrukcję PRINT do wyświetlania kolumn numerycznych, gdy nie określono żadnego formatu. Najmniejszą możliwą wartością jest wartość opcji PDIGITS plus 7, największa wartość jaką można uzyskać, to 16. Domyślna wartość jest równa wartości opcji PDIGITS plus 7. Liczba VARFUZZ określa najmniejszą różnicę dozwoloną przez Presostat OPTMODEL pomiędzy górnym i dolnym ograniczeniem nieutrwalonej zmiennej. Jeśli różnica jest mniejsza niż liczba mnoga. następnie zmienna jest ustalana na średnią górnej i dolnej granicy, zanim zostanie przedstawiona solverowi. Każdej nieujemnej wartości można przypisać wartość num, a wartość domyślna to 0. Deklaracje deklaracji definiują parametry, zmienne, ograniczenia i cele opisujące model optymalizacji PROC OPTMODEL. Deklaracje na wejściu PROC OPTMODEL są zapisywane do późniejszego wykorzystania. W przeciwieństwie do instrukcji programowania deklaracje nie mogą być zagnieżdżane w innych instrukcjach. Deklaracje są kończone średnikiem. Wiele atrybutów deklaracji, takich jak zmienne ograniczenia, definiuje się za pomocą wyrażeń. Wyrażenia w deklaracjach są traktowane symbolicznie i rozwiązywane w razie potrzeby. W szczególności wyrażenia są zwykle ponownie oceniane, gdy zmieniono jedną z wartości parametrów, których używają. CONSTRAINT Deklaracja ograniczenia CONSTRAINT. ograniczenie CON ograniczenia. constraint Deklaracja ograniczenia definiuje jedno lub więcej ograniczeń dla wyrażeń pod względem zmiennych optymalizacyjnych. Można podać wiele instrukcji deklaracji ograniczeń. Ograniczenia mogą mieć górną granicę, dolną granicę lub oba ograniczenia. Dopuszczalne formularze są następujące: imię i nazwisko. wyrażenie ekspresji deklaruje ograniczenie równości lub, gdy określony jest zestaw indeksów, rodzinę ograniczeń równości. Solver próbuje przypisać wartości do zmiennych optymalizacyjnych, aby oba wyrażenia były równe. imię . wyrażenie relacji wyrażenie deklaruje ograniczenie nierówności, które ma jedną górną lub dolną granicę. Po określeniu zestawu indeksów deklaruje to rodzinę ograniczeń nierówności. Relacja to lt lub operator. Solver próbuje przypisać wartości zmiennych optymalizacji, tak aby lewe wyrażenie miało wartość mniejszą lub równą (odpowiednio większą lub równą) prawą wartość wyrażenia. imię . powiązana relacja relacji ciało granica ogranicza ograniczenie nierówności, które jest ograniczone po obu stronach lub ograniczenie zakresu. Po określeniu zestawu indeksów deklaruje rodzinę ograniczeń zakresu. Relacja to lt lub operator. Ten sam operator musi być użyty w obu pozycjach. Pierwsze powiązane wyrażenie definiuje dolną granicę (odpowiednio górna granica). Drugie powiązane wyrażenie definiuje górną granicę (odpowiednio, dolna granica). Solver próbuje przypisać zmienne optymalizacyjne, aby wartość wyrażenia ciała znajdowała się w zakresie pomiędzy górnym i dolnym ograniczeniem. Nazwa definiuje nazwę ograniczenia. Użyj tej nazwy, aby odwoływać się do atrybutów ograniczeń, takich jak granice, w innym miejscu w modelu PROC OPTMODEL. Jeśli nie podano nazwy, tworzona jest domyślna nazwa formularza ACON. gdzie jest liczbą całkowitą. Aby uzyskać więcej informacji, zobacz sekcję Ograniczenia. Oto prosty przykład, który definiuje ograniczenie z dolną granicą: Poniższy przykład dodaje górną granicę: Indeksowane rodziny ograniczeń można zdefiniować, określając zestaw indeksów po nazwie. Wszystkie parametry dummy, które są zadeklarowane w zestawie indeksów, można odwoływać się w wyrażeniach definiujących ograniczenie. Określonego członka zindeksowanej rodziny można określić za pomocą wyrażenia identyfikacyjnego z listą indeksu w nawiasach, w taki sam sposób, jak parametry tablicy i zmienne. Na przykład poniższe instrukcje tworzą indeksowaną rodzinę ograniczeń o nazwie incr. Instrukcja CON w przykładzie tworzy więzy incr1 do incr 1. Wyrażeń ograniczeń nie można zdefiniować za pomocą funkcji, które zwracają różne wartości za każdym razem, gdy są wywoływane. Szczegółowe informacje znajdują się w części Indeksowanie. IMPVAR Deklaracja IMPVAR impvar-decl. impvar-decl Instrukcja IMPVAR deklaruje jedną lub więcej nazw odnoszących się do wyrażeń optymalizacji w modelu. Zadeklarowana nazwa jest nazywana zmienną niejawną. Niejawna zmienna jest przydatna przy modelowaniu modeli, tak że złożone wyrażenia nie muszą być powtarzane za każdym razem, gdy są używane. Wartość niejawnej zmiennej musi być obliczona tylko jeden raz zamiast w każdym miejscu, w którym używane jest oryginalne wyrażenie, co pomaga zmniejszyć obciążenie obliczeniowe. Zmienne domyślne są oceniane bez interwencji ze strony solwera. Dozwolonych jest wiele instrukcji IMPVAR. Nazwy zmiennych niejawnych muszą być różne od innych deklaracji modelu, takich jak zmienne i ograniczenia. Zmienne niejawne mogą być używane w wyrażeniach modeli w tych samych miejscach, w których dozwolone są zmienne zwykłe. To jest składnia dla impvr-decl. Każda impvar-decl deklaruje nazwę dla zmiennej niejawnej. Po nazwie można podać specyfikację zestawu indeksów, aby zadeklarować rodzinę zmiennych niejawnych. Wyrażenie określone przez nazwę następuje. W wyrażeniu można użyć parametrów dummy zadeklarowanych w specyfikacji zestawu indeksów. Wyrażenie może odwoływać się do innych komponentów modelu, w tym zmiennych i innych zmiennych niejawnych. Jako przykład w poniższych instrukcjach modelowych niejawna zmienna masa całkowita jest używana w wielu wiązaniach, aby ustawić limit różnych ilości produktów, reprezentowanych przez lokalizacje w tablicy x. MAX i MIN Deklaracje celu MAX wyrażenie nazwy MIN wyrażenie nazwy Deklaracja MAX lub MIN określa cel dla solwera. Nazwa nazywa funkcję celu do późniejszego odniesienia. Solver maksymalizuje cel określony za pomocą słowa kluczowego MAX i minimalizuje cel określony za pomocą słowa kluczowego MIN. Cel nie może mieć tej samej nazwy co parametr lub zmienna. Wiele celów jest dozwolone, ale solver przetwarza tylko jeden cel na raz. Wyrażenie określa numeryczną funkcję maksymalizacji lub minimalizacji pod względem zmiennych optymalizacyjnych. Określ zestaw indeksów, aby zadeklarować rodzinę celów. Parametry dummy zadeklarowane w specyfikacji zestawu rekordów mogą być użyte w następującym wyrażeniu. Cele mogą być również używane jako zmienne niejawne. W przypadku użycia w wyrażeniu, nazwa celu odnosi się do bieżącej wartości nazwanej funkcji celu. Wartość niezamkniętej nazwy celu może zależeć od wartości zmiennych optymalizacyjnych, więc nazw obiektywnych nie można używać w wyrażeniach stałych, takich jak zmienne granice. Możesz odwoływać się do nazw celów w wyrażeniach obiektywnych lub ograniczających. Na przykład poniższe zdania deklarują dwie obiektywne nazwy, q i l. które są natychmiast przywoływane w deklaracji obiektywnej Z i deklaracjach ograniczeń. Nie można zdefiniować celów za pomocą funkcji, które zwracają różne wartości za każdym razem, gdy są wywoływane. Szczegółowe informacje znajdują się w części Indeksowanie. NUMBER, STRING i SET Deklaracje parametrów NUMBER parametr-decl. parametr-decl STRING parametr-decl. parametr-decl USTAW typ ltscalar. parametr-decl typu skalarnego. parametr-decl Parametry zawierają nazwy stałych. Parametry są deklarowane poprzez określenie typu parametru, po którym następuje lista nazw parametrów. Deklaracje parametrów o typach NUMBER lub STRING rozpoczynają się od specyfikacji typu skalarnego: NUMBER NUM STRING STR Słowa kluczowe NUM i STR są skrótami odpowiednio dla słów kluczowych NUMBER i STRING. Deklaracja parametru, który ma ustawiony typ, zaczyna się od specyfikacji typu set: SET ltscalar-type. typ skalarny W deklaracji typu zestawu po słowie kluczowym SET występuje lista elementów typu skalarnego, które określają typ elementu. Zestaw z elementami skalarnymi jest określony za pomocą pojedynczego elementu typu skalarnego. Zestaw z elementami krotkowymi ma element skalarny dla każdego elementu krotki. Elementy typu skalarnego określają typy elementów w każdej pozycji krotki. Jeśli po słowie kluczowym SET nie występuje lista elementów typu skalarnego, typ zestawu jest określany na podstawie typu wyrażenia inicjującego. Zadeklarowany typ przyjmuje wartość SETLtNUMBER, jeśli nie podano żadnego wyrażenia inicjalizacyjnego lub nie można określić typu wyrażenia. Dla dowolnego typu parametru po deklaracji typu znajduje się lista elementów declstrujących parametry, które określają nazwy deklarowanych parametrów. W pozycji parametr-decl po nazwie parametru może następować opcjonalna specyfikacja indeksu i wszelkie niezbędne opcje, jak następuje: Po nazwie parametru i zestawie indeksów może znajdować się lista opcji parametrów. Parametry dummy zadeklarowane w zestawie indeksów mogą być użyte w parametrach-opcjach. Opcje parametrów można określić za pomocą następujących formularzy: Ta opcja zapewnia jawną wartość dla każdej lokalizacji parametru. W takim przypadku parametr działa jak alias dla wartości wyrażenia. Ta opcja określa domyślną wartość, która jest używana, gdy wymagana jest wartość parametru, ale nie podano innej wartości. Na przykład: PROC OPTMODEL oblicza wyrażenie dla każdej lokalizacji parametru za pierwszym razem, gdy parametr ma zostać rozwiązany. Wyrażenie nie jest używane, gdy parametr ma już wartość. Ta opcja zapewnia zwarty sposób definiowania wartości dla tablicy, w której każda wartość lokalizacji macierzy może być indywidualnie określona przez inicjalizatory. Ta opcja zapewnia zwarty sposób definiowania wielu wartości domyślnych dla tablicy. Każda wartość lokalizacji macierzy może być indywidualnie określona przez inicjalizatory. Za pomocą tej opcji wartości tablicowe można nadal aktualizować poza deklaracją. Opcja parametru wyrażenia definiuje wartość parametru za pomocą formuły. Formuła może odnosić się do innych parametrów. Wartość parametru jest aktualizowana, gdy zmieniają się parametry odniesienia. Poniższy przykład pokazuje efekty aktualizacji: W poprzednim przykładzie wartość zestawu s jest rozwiązywana dla każdego użycia tablicy a, która ma indeks. Do pierwszego użycia a7. wartość 7 nie jest członkiem zbioru s. Jednak wartość 7 jest członkiem s przy drugim użyciu a7. Opcja parametru wyrażenia INIT określa domyślną wartość parametru. Poniższy przykład pokazuje użycie tej opcji: Gdy wartość parametru jest potrzebna, ale nie podano innej wartości, używana jest wartość domyślna określona przez wyrażenie INIT, jak pokazano na rysunku 8.8. Rysunek 8.8 Opcja INIT: Wyjście Każdy inicjalizator przyjmuje następującą formę: Wartość określa wartość położenia tablicy i może być stałą numeryczną lub łańcuchową, literałem. lub wyrażenie zamknięte w nawiasach. W inicjatorach tablicowych stałe łańcuchowe mogą być określone za pomocą ciągów cytowanych. Gdy tekst ciągu jest zgodny z regułami nazwy SAS, tekst można również podać bez cudzysłowów. Stałe ciągów, które zaczynają się cyfrą, zawierają spacje lub zawierają inne znaki specjalne, muszą być określone za pomocą cytowanego ciągu. Przykład: poniższy kod definiuje parametr tablicy, który można wykorzystać do odwzorowania numerycznych dni tygodnia na ciągi tekstowe: Opcjonalny indeks w nawiasach kwadratowych określa indeks lokalizacji macierzy do zainicjowania. Indeks określa jeden lub więcej indeksu dolnego lub ciągowego. Indeksy dolne dopuszczają te same formularze składniowe, co elementy wartości. Przecinki mogą być używane do oddzielania indeksu indeksów. Na przykład, położenie a1, abc tablicy a można określić za pomocą indeksu 1 abc. Poniższy przykład inicjuje tylko przekątne w kwadratowej tablicy: Indeks nie musi określać wszystkich indeksów położenia tablicy. Jeśli indeks zaczyna się przecinkiem, należy podać tylko prawe dolne indeksy indeksu. Poprzednie indeksy dolne są dostarczane z indeksu używanego przez poprzedni inicjator. Może to uprościć inicjowanie tablic indeksowanych wieloma indeksami dolnymi. Na przykład możesz dodać nowe wpisy do macierzy poprzedniego przykładu, używając następujących instrukcji: Odstępy pokazują układ przykładowej tablicy. Poprzedni przykład został zaktualizowany poprzez zainicjowanie dwóch kolejnych wartości na m1,3 i m2,3. Jeśli indeks zostanie pominięty, inicjowana jest kolejna lokalizacja w kolejności ustawionej w indeksie tablic. Jeśli zestaw indeksu ma wiele pozycji zestawu indeksu. następnie indeksy po prawej stronie są aktualizowane przed zaktualizowaniem indeksów po lewej stronie. Na początku listy inicjatora indeks po prawej stronie jest pierwszym elementem zestawu indeksu. Zestaw indeksu musi używać wyrażenia zakresu, aby uniknąć nieprzewidywalnych wyników, gdy wartość indeksu zostanie pominięta. Po inicjalizatorach mogą następować przecinki. Użycie przecinków nie ma wpływu na inicjalizację. Przecinek można wykorzystać do wyjaśnienia układu. Na przykład przecinek może oddzielać wiersze w macierzy. Nie każda lokalizacja tablicy musi zostać zainicjalizowana. Lokalizacje bez jawnego inicjalizatora są ustawione na zero dla tablic numerycznych, ustawione na pusty ciąg dla tablic ciągów i ustawione na pusty zbiór dla ustawionych tablic. Uwaga: Lokalizacja macierzy nie może być inicjowana więcej niż jeden raz podczas przetwarzania listy inicjalizatora. PROBLEM Deklaracja Problemy są zadeklarowane w deklaracji PROBLEM. Deklaracje problemów śledzą cel, zestaw zawartych zmiennych i ograniczeń oraz niektóre informacje o stanie, które są powiązane ze zmiennymi i ograniczeniami. Po nazwie problemu można opcjonalnie wykonać zestaw indeksu, aby utworzyć rodzinę problemów. Po pierwszym użyciu problemu (za pomocą instrukcji USE PROBLEM) specyfikacje z opcjonalnych klauzul FROM i INCLUDE tworzą początkowy zestaw zawartych zmiennych, ograniczeń i celu problemu. Pusty problem zostanie utworzony, jeśli nie zostanie podana żadna z klauzul. Klauzule są stosowane tylko wtedy, gdy problem jest używany po raz pierwszy z instrukcją PROBLEM USE. Klauzula FROM określa istniejący problem, z którego należy skopiować dołączone symbole. Identyfikator problemu jest wyrażeniem identyfikatora. Usuwany i ustalony status tych symboli w określonym problemie jest również kopiowany. Klauzula INCLUDE określa listę zmiennych, ograniczeń i celów do uwzględnienia w problemie. Pozycje te są dołączone do statusu domyślnego (niezmodyfikowane i nieskropulowane), co zastępuje status z klauzuli FROM, jeśli istnieje. Każda pozycja jest określona za pomocą jednej z następujących form: zawiera określone elementy w problemie. Wyrażenie-identyfikator może być nazwą symbolu lub symbolem tablicy z jawnym indeksem. Jeśli symbol tablicy jest używany bez indeksu, uwzględniane są wszystkie elementy tablicy. obejmuje określony podzbiór elementów w problemie. Element określony przez wyrażenie-identyfikator jest dodawany do problemu dla każdego elementu zestawu indeksu. Parametry fikcyjne z zestawu indeksu mogą być używane w indeksowaniu wyrażenia identyfikatora. Jeśli wyrażenie-identyfikator jest symbolem tablicy bez indeksowania, to zestaw indeksu dostarcza indeksów dla zawartych lokalizacji. Poniższe stwierdzenia zgłaszają pewne problemy ze zmienną x i różnymi celami, aby zilustrować niektóre sposoby włączania komponentów modelu. Zwróć uwagę, że instrukcje używają wstępnie zadeklarowanego problemu START, aby uniknąć resetowania celu w prob2, gdy zadeklarowano cel z3. Aby uzyskać więcej szczegółowych informacji na temat przetwarzania problemów, zobacz sekcję Wiele podlepek. Deklaracja VAR VAR var-decl. var-decl Instrukcja VAR deklaruje jedną lub więcej zmiennych optymalizacyjnych. Dozwolonych jest wiele instrukcji VAR. Zmienna nie może mieć tej samej nazwy co parametr lub ograniczenie. Każdy plik var-decl określa nazwę zmiennej. Po nazwie może następować specyfikacja zestawu tablic, a następnie zmienne opcje. Parametry manekina zadeklarowane w specyfikacji zestawu indeksów mogą być używane w następujących opcjach zmiennych. Oto składnia dla var-decl. Na przykład poniższy kod deklaruje grupę 100 zmiennych, x1 x100. Oto dostępne opcje zmiennych: ustawia wartość początkową dla zmiennej. Wyrażenie jest używane tylko za pierwszym razem, gdy wymagana jest wartość. Jeśli nie podano wartości początkowej, domyślnie używana jest wartość 0. ustawia dolną granicę dla wartości zmiennej. Domyślna dolna granica to. ustawia górną granicę dla wartości zmiennej. Domyślna górna granica to. żąda, aby solver przypisać zmiennej wartość całkowitą. żąda, aby solwer przypisać zmiennej wartość 0 lub 1. Na przykład poniższy kod deklaruje zmienną, która ma wartość początkową równą 0,5. Zmienna jest ograniczona między 0 a 1: Wartości granic można określić później za pomocą przyrostków odniesień do zmiennej. Na przykład górna granica dla zmiennej x może być określana jako x. ub. Ponadto opcje granic można przesłonić przez jawne przypisanie do nazwy zmiennej z przyrostkiem. Sufiksy są opisane dalej w sekcji Przyrosty. W przypadku użycia w wyrażeniu nieprzyłączona nazwa zmiennej odnosi się do bieżącej wartości zmiennej. Zmienne niedostosowane nie są dozwolone w wyrażeniach dla opcji, które definiują zmienne ograniczenia lub wartości początkowe. Wyrażenia takie mają wartości, które muszą być ustalone podczas wykonywania solvera. Każde środowisko operacyjne ma swój własny typ ograniczników rekordów w plikach zewnętrznych. Ograniczniki rekordów są niezgodne między środowiskami operacyjnymi. Dlatego ograniczniki rekordów odpowiednie do środowiska docelowego są dodawane do skopiowanego pliku przy użyciu procedury POBIERZ. Hosty CMS i OS390 używają zestawu znaków EBCDIC w innych środowiskach operacyjnych używają zestawu znaków ASCII. W konsekwencji, jeśli pliki są pobierane z systemu CMS lub OS390 do systemu opartego na ASCII bez translacji znaków, pobrane pliki nie mogą być interpretowane przez środowisko docelowe. SASCONNECT rozwiązuje problem EBCDICASCII, automatycznie konwertując pliki. Procedura DOWNLOAD konwertuje tekst do formatu lokalnego hosta. Są chwile, kiedy te konwersje plików nie są pożądane. Na przykład może być konieczne przesłanie plików wykonywalnych z lokalnego hosta do zdalnego hosta, a następnie pobranie ich na ten sam lub inny host lokalny. Możesz to zrobić w celu tworzenia kopii zapasowych lub wysyłania plików do innych użytkowników. Jeśli nie chcesz, aby plik został przetłumaczony na inny zestaw znaków lub wstawiono separatory rekordów, możesz użyć opcji BINARY, aby zapobiec automatycznej konwersji. Po określeniu opcji BINARY w instrukcji PROC DOWNLOAD, SASCONNECT przesyła plik w postaci obrazu binarnego (stąd słowo kluczowe BINARY). Przykład opcji BINARY W tym przykładzie użyto instrukcji PROC DOWNLOAD do pobrania zewnętrznego pliku ze zdalnego hosta do lokalnego hosta. Zwróć uwagę, że włączono opcję BINARY, aby pominąć tłumaczenie zestawu znaków i aby zapobiec wstawianiu separatora rekordów:

Comments