Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ

Podobne dokumenty
Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Podstawy Informatyki. Sprawność algorytmów

Przykłady problemów optymalizacyjnych

Wprowadzenie do złożoności obliczeniowej

Programowanie liniowe

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Ekonometria - ćwiczenia 10

1 Przykładowe klasy zagadnień liniowych

Aproksymacja funkcji a regresja symboliczna

INTERPOLACJA I APROKSYMACJA FUNKCJI

Programowanie celowe #1

5. Rozwiązywanie układów równań liniowych

TEORETYCZNE PODSTAWY INFORMATYKI

Teoria obliczeń i złożoność obliczeniowa

Algorytmika Problemów Trudnych

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Programowanie dynamiczne i algorytmy zachłanne

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Programowanie liniowe

etody programowania całkowitoliczboweg

Teoretyczne podstawy informatyki

Programowanie liniowe

7 zaokr aglamy do liczby 3,6. Bład względny tego przybliżenia jest równy A) 0,8% B) 0,008% C) 8% D) 100

Schemat programowania dynamicznego (ang. dynamic programming)

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Rozdział 1 PROGRAMOWANIE LINIOWE

OPTYMALIZACJA DYSKRETNA

i = n = n 1 + n 2 1 i 2 n 1. n(n + 1)(2n + 1) n (n + 1) =

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji

Wybrane podstawowe rodzaje algorytmów

Układy równań i nierówności liniowych

Wykład z modelowania matematycznego. Zagadnienie transportowe.

) a j x j b; x j binarne (j N) całkowitoliczbowe; przyjmujemy (bez straty ogólności): c j > 0, 0 <a j b (j N), P n

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Zasady analizy algorytmów

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Programowanie liniowe metoda sympleks

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Programowanie liniowe metoda sympleks

Algorytmy i Struktury Danych

Liczby zespolone. x + 2 = 0.

Metody Rozmyte i Algorytmy Ewolucyjne

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2

Tomasz M. Gwizdałła 2012/13

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 4. Równania różniczkowe zwyczajne podstawy teoretyczne

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Wielokryteriowa optymalizacja liniowa

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

Metody przeszukiwania

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Układy liniowo niezależne

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

METODY OPTYMALIZACJI. Tomasz M. Gwizdałła 2018/19

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

Programowanie liniowe całkowitoliczbowe

Informacja o przestrzeniach Sobolewa

Zagadnienie transportowe

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Krzysztof Gniłka. Twierdzenie o rekurencji uniwersalnej

Wykład z Technologii Informacyjnych. Piotr Mika

1 Programowanie całkowitoliczbowe PLC

Złożoność problemów. 1 ruch na sekundę czas wykonania ok lat 1 mln ruchów na sekundę czas wykonania ok.

Wykład 4 Udowodnimy teraz, że jeśli U, W są podprzetrzeniami skończenie wymiarowej przestrzeni V to zachodzi wzór: dim(u + W ) = dim U + dim W dim(u

WYKŁAD 10. kodem pierwotnym krzywej jest ciąg par współrzędnych x, y kolejnych punktów krzywej: (x 1, y 1 ), (x 2, y 2 ),...

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

KRYTERIA OCEN Z MATEMATYKI DLA KLASY VII

Złożoność algorytmów. Wstęp do Informatyki

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Jacek Skorupski pok. 251 tel konsultacje: poniedziałek , sobota zjazdowa

Programowanie liniowe metoda sympleks

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Optymalizacja ciągła

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

Wykład 2. Poprawność algorytmów

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Algorytmy i Struktury Danych.

Heurystyki. Strategie poszukiwań

Matematyczne Podstawy Informatyki

WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą

Układy równań liniowych

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

SZTUCZNA INTELIGENCJA

Transkrypt:

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZŁOŻONOŚĆ OBLICZENIOWA ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ dr hab. Krzysztof SZKATUŁA, prof. PAN Instytut Badań Systemowych PAN Uniwersytet Przyrodniczo-Humanistyczny Zadanie optymalizacyjne Rozważmy zadanie optymalizacyjne (zwane też zadaniem programowania matematycznego) w jednej z dwóch postaci: Z OP T (n) = max Z(X) lub Z OP T (n) = min X F X F Z(X) (1) gdzie Z(X) - funkcja celu, F - zbiór rozwiazań dopuszczalnych. Powszechnie przyjmuje się, że rozwiazanie dopuszczalne X jest wektorem liczb rzeczywistych, X = [x 1, x 2,..., x n ], X R n. Zbiór rozwiazań dopuszczalnych F jest na ogół określany poprzez pewien układ warunków, na przykład nierówności lub równań. Zbiór F można przykładowo zapisać w postaci: F 1 (X) 0 F 2 (X) 0 F m (X) 0.. 1

Postać funkcji Z(X), F 1 (X),..., F m (X), rozstrzyga z jakim zadaniem optymalizacyjnym mamy do czynienia. Często przyjmuje się, że Z(X), F 1 (X),..., F m (X) : R n R. Rozwiazanie dopuszczalne X, X F, dla którego Z(X ) = max Z(X) lub X F Z(X ) = min X F Z(X), nazywamy rozwiazaniem optymalnym, a Z(X ), Z OP T (n) = Z(X ), jego wartościa. Przyjmujac założenie, że funkcja celu i lewe strony ograniczeń sa funkcjami rzeczywistymi zmiennych rzeczywistych możemy sformułować zadania: Programowania (mieszanego) całkowitoliczbowego: { n } z OP T (n) = max c i x i + p h l y l i=1 l=1 (funkcja celu) przy ograniczeniach n a ji x i + p g jl y l b j ; j = 1,..., m, i=1 gdzie x i, y l 0, x i - całkowite, i = 1,..., n, l = 1,..., p, l=1 (2) Programowania binarnego z OP T (n) = max przy ograniczeniach n c i x i i=1 n a ji x i b j (n) i=1 gdzie j = 1,..., m, x i = 0 lub 1, i = 1,..., n. (3) Wielowymiarowe zadanie załadunku, jeżeli w (3) dodatkowo c i, a ji, b j 0. 2

Zadanie szeregowania prac z terminami zakończenia. Dla każdej pracy i sa określone: czas wykonania t i, termin zakończenia d i (n) oraz zysk p i z wykonania pracy w terminie. Zadanie optymalizacyjne polega na maksymalizacji ogólnego zysku z wykonania prac w terminie. Jeżeli d 1 (n) d 2 (n) d n (n) to zadanie możemy zapisać w postaci wielowymiarowego zadania załadunku (3): z OP T (n) = max n p j x j przy ograniczeniach j=1 i t j x j d i (n), j=1 i = 1,..., n gdzie x j = 0 lub 1, j = 1,..., n. Zadanie komiwojażera polega na wyznaczeniu takiej drogi rozpoczynajacej i kończacej się w zadanym wierzchołku grafu ważonego G i zawierajacej każdy wierzchołek grafu dokładnie raz, że łaczna jej długość jest minimalna. e12 4 e6 5 e2 e9 1 e3 e11 e5 e7 6 e1 e8 2 e4 e10 3 Rysunek 1: Graf skierowany 3

Algorytmy optymalizacyjne Powszechnie przyjmuje się, że nadrzędnym celem każdego algorytmu rozwiazu- jacego zadanie optymalizacyjne jest odnalezienie jego rozwiazania optymal- nego X oraz wyznaczenie jego wartości Z OP T (n). Algorytmem optymalizacyjnym, oznaczonym jako A, będziemy nazywać procedurę obliczeniowa, która wyznacza pewne rozwiazanie X zadania (1) z wartościa rozwiazania Z A (n) = Z(X ). Algorytm A, dla którego zawsze X = X oraz Z A (n) = Z OP T (n) będziemy nazywali algorytmem dokładnym. Algorytm A, który wyznacza rozwiazanie zadania: X, gdzie zawsze X F oraz Z A (n) Z OP T (n) lub Z A (n) Z OP T (n), nazywamy algorytmem przybliżonym. Jeżeli dla pewnej stałej ε 0 zachodzi Z A (n) Z OP T (n) ε, albo, gdzie dodatkowo: Z A (n), Z OP T (n) > 0, 0 ε 1, 1 ε Z A(n) Z OP T (n) 1 lub 1 ε Z OP T (n) 1, Z A (n) to będziemy mówić, że algorytm przybliżony ma gwarancję dokładności działania. Inaczej jest on nazywany algorytmem heurystycznym. Moga również występować algorytmy, które nie gwarantuja uzyskania dla wszystkich realizacji danych zadania rozwiazań dopuszczalnych, to znaczy, że moga istnieć X / F. 4

Metody rozwiazywania Metoda podziału i oszacowań, której podstawowym celem jest zawężenie pełnego przegladu zbioru rozwiazań dopuszczalnych przy wykorzystaniu oszacowań wartości rozwiazania optymalnego. Programowanie dynamiczne, gdzie rozwiazanie optymalne zadań o większym rozmiarze jest uzyskiwane poprzez rozwiazania optymalne mniejszych zadań pomocniczych. Metody zachłanne, które maja za zadanie dokonywanie najlepszych lokalnie wyborów. Metody tego typu sa często stosowane w praktyce. W niektórych przypadkach można udowodnić ich optymalność, w innych moga one mieć gwarantowan a dokładność obliczeń. W przypadku dużej części zadań optymalizacji dyskretnej metody zachłanne sa metodami heurystycznymi. Grupa metod lokalnej poprawy, gdzie zasadnicza idea sprowadza się do uzyskiwania w kolejnych iteracjach, w otoczeniu aktualnie rozpatrywanego rozwiazania przybliżonego zadania, innego rozwiazania przybliżonego, o lepszej wartości funkcji celu. Uzyskane rozwiazanie staje się nowym aktualnym rozwiazaniem. Spośród metod lokalnej poprawy w literaturze większa uwagę poświęcono przeszukiwaniu losowemu, symulowanemu wychładzaniu, przeszukiwaniu z zakazami oraz algorytmom genetycznym. Metody programowania liniowego, które sa bardzo użyteczne jako narzędzie pomocnicze w rozwiazywaniu wielu zadań optymalizacji dyskretnej. Na szczególna uwagę zasługuja tutaj różne modyfikacje metody sympleks, algorytm elipsoidalny oraz projekcyjny. 5

Nakład obliczeń Przyjmuj ac, że współczynniki zadań sa zawsze wymiernymi liczbami rzeczywistymi, praktycznie każde zadanie optymalizacyjne może być reprezentowane jako nieskończony zbiór różnych realizacji jego danych {p 1, p 2,..., p i,...}, p i = [β 1, β 2,..., β v ], gdzie β i R, i = 1,..., v. Wymierna liczba rzeczywista c może być zapisana jako dwie liczby całkowite a i b, np. c = a/b (lub c = a.b). Każda liczba całkowita a może zostać w jednoznaczny sposób zapisana w poniższej postaci a = k α i 2 i gdzie α i = 0 lub 1, i = 1,..., k, k log 2 a < k + 1. i=0 Liczba niewymierna może być zapisana z zadana dokładnścia jako liczba wymierna. Oznacza to, że każda liczbę rzeczywista (a więc również wektor liczb rzeczywistych) można przedstawić jako wektor o składowych binarnych. Zatem każda realizacja danych zadania p i może być zapisana w jednoznaczny sposób jako wektor o postaci: p i = [δ 1, δ 2,..., δ li ], gdzie δ j = 0 lub 1, j = 1,..., l i. Rozmiar realizacji danych zdania p i wynosi l i, co oznaczamy l(p i ) = l i. Jeżeli współczynniki β 1, β 2,..., β v, maja ograniczone wartości, np. istnieja stałe γ 0, θ > 0, γ β i θ, to wtedy pojęcie rozmiaru danych zadania można uprościć, wystarczy operować zagregowanymi wielkościami takimi jak np. n (liczba zmiennych) i m (liczba ograniczeń). Niech A będzie algorytmem wyznaczajacym w skończonej liczbie iteracji rozwiazanie dla każdej z realizacji danych zadania p i. Nakład obliczeń wykonywanych przez algorytm A może być wyrażony jako liczba elementarnych działań (takich jak dodawanie, odejmowanie, porównywanie, mnożenie lub dzielenie dwóch liczb) wykonywanych przez algorytm A w celu uzyskania rozwiazania p i. Przyjmijmy, że nakład obliczeń wykonywanych przez algorytm A jest zadany w postaci poniższej funkcji: g A (p i ) : {p 1, p 2,..., p i,...} R +. Naszym celem jest uzyskanie oszacowania nakładu obliczeń wymaganego przez algorytm jako funkcji rozmiaru realizacji danych zadania l i = l(p i ), w taki sposób, aby ocena ta nie zależała od konkretnej postaci p i. Warunek ten spełnia poniższa funkcja : f A (n) = sup{g A (p i ) : l(p i ) = n}. 6

Funkcja f A (n) jest oszacowaniem od góry wymaganego przez algorytm A nakładu obliczeń dla każdej realizacji danych zadania p i, o rozmiarze n, i N. Ocena ta jest ważna dla wszystkich wartości n, n N. Funkcja f A (n) wyznacza złożoność obliczeniowa algorytmu A. Dla dowolnych funkcji f(n), g(n) 0, n N, będziemy oznaczać f(n) = O(g(n)) jeżeli f(n) c g(n), n n ; f(n) = Ω(g(n)) jeżeli c g(n) f(n), n n ; gdzie c, n > 0 oraz c, n > 0 stałe. Ponadto f(n) = Θ(g(n)) jeżeli f(n) = O(g(n)) oraz f(n) = Ω(g(n)). Zgodnie z powyższa notacja dla f(n) = k i=0 a i n i, a k > 0, (funkcji wielomianowej) mamy f(n) = O(n k ), f(n) = Ω(n k ) oraz f(n) = Θ(n k ). Algorytm A dla zadania optymalizacyjnego będziemy nazywać algorytmem o wielomianowej złożoności obliczeniowej, jeżeli f A (n) = O(n k ), gdzie k 1 jest stała. Algorytm A dla zadania optymalizacyjnego będziemy nazywać algorytmem o wykładniczej złożoności obliczeniowej, jeżeli f A (n) = Ω(α n ) oraz f A (n) = O(β n ), gdzie α, β > 1 sa stałymi. W przypadku algorytmów przybliżonych z gwarantowan a dokładnościa ε w ocenie ich złożoności obliczeniowej często oprócz rozmiaru danych zadania, oznaczonego jako n, uwzględniana jest wartość 1/ε. Algorytm przybliżony A uważany jest za efektywny obliczeniowo dla zadanej wartości dokładności ε, jeżeli f A (n) = O(n k ln(δ/ε)), gdzie k 1, δ > 0 sa stałymi. Algorytm przybliżony A nazywamy wielomianowym schematem aproksymujacym, jeżeli dla dowolnego 0 ε 1 uzyskuje on rozwiazanie przybliżone zadania o gwarantowanej dokładności ε oraz f A (n) = O(n k ), gdzie k 1 jest stała. 7

Algorytm przybliżony A nazywamy w pełni wielomianowym schematem aproksymuj acym, jeżeli dla dowolnej wartości 0 ε 1 uzyskuje on rozwiazanie przybliżone zadania o gwarantowanej dokładności ε oraz f A (n) jest ograniczona przez funkcję wielomianow a od n oraz 1/ε. W przypadku algorytmów złożonych, składajacych się w istocie z różnych procedur obliczeniowych, ocenie może podlegać złożoność obliczeniowa każdej ze składowych rozważanego algorytmu. Złożoność zadań optymalizacyjnych Problem rozstrzygalności dla zadania X stanowi para (D, V ) gdzie V D oraz elementy zbioru D sa wektorami binarnymi. Zbiór D będziemy nazywać zbiorem realizacji rozwiazań dla zadania X, natomiast V będziemy nazywać zbiorem dopuszczalnych realizacji rozwiazań dla zadania X. Dla danego d D chcemy znać odpowiedź na pytanie, czy d V. Dla każdego d D odpowiedź brzmi tak lub nie. Pomiędzy zadaniami optymalizacyjnymi i problemami decyzyjnymi istnieje bezpośredni zwiazek. Klasa problemów rozstrzygalności, gdzie dla każdego d V istnieje wielomianowy algorytm rozstrzygajacy fakt, że d V, nazywana jest klasa P. Klasa problemów rozstrzygalności, gdzie dla każdego d V istnieje wielomianowy, niedeterministyczny algorytm rozstrzygajacy fakt, że d V, nazywana jest klasa N P. Klasa CoN P jest to klasa problemów rozstrzygalności X takich, że ich dopełnienia należa do klasy N P, co można zapisać w poniższy sposób: CoN P = {X : X N P}, gdzie X = ( V, D). Problem rozstrzygalności X N P będziemy zazywać N P-zupełnym, jeżeli wszystkie problemy z klasy N P sa wielomianowo sprowadzalne do problemu X. Klasę problemów N P-zupełnych będziemy oznaczać N PC. Jeżeli problem rozstrzygalności odpowiadajacy zadaniu optymalizacyjnemu jest N P-zupełny, to zadanie optymalizacyjne będziemy nazywać N P- trudnym. 8

Algorytm wymagajacy wielomianowego nakładu obliczeniowego przy zastosowaniu unarnego kodowania danych zadania nazywamy algorytmem pseudowielomianowym. Klasę takich zadań będziemy nazywać Pseudo-P. Problemy N P-zupełne, dla których istnienie dokładnych algorytmów pseudowielomianowych oznacza N P = P, będziemy nazywali silnie N P-zupełnymi i oznaczać Silnie N PC. Odpowiadajace im zadania optymalizyjne będziemy nazywać silnie N P-trudnymi. N P Pseud o-p N PC Silnie N PC P CoN P Relacje klas N P, N PC, CoN P, P, Silnie N PC i Pseudo-P Powszechnie uważa się, że w klasie N P istnieja zadania nie należace do klasy P a więc, że P = N P. Natomiast, jeżeli zachodzi relacja N P = P, to wtedy N P = N PC = CoN P = Silnie N PC = P = Pseudo-P. 9

Analiza przypadku średniego Analiza przypadku średniego jest alternatywnym sposobem oceny zadań i algorytmów optymalizacyjnych. Jej przeprowadzenie wymaga przyjęcia założenia, że niektóre dane zadania sa realizacjami pewnych zmiennych losowych. W procesie praktycznego rozwiazywania realizacji danych zadania optymalizacyjnego o rozmiarach n przy wykorzystaniu algorytmu A operujemy, między innymi, wielkościami takimi jak: z OP T (n), z A (n) oraz f A (n). Charakterystyki te staja się realizacjami pewnych zmiennych losowych, których zachowanie może być badane i poddane analizie. Analiza przypadku średniego nosi na ogół charakter asymptotyczny. Zakładamy, że rozmiar zadania, dla ustalenia uwagi oznaczany jako n, wzrasta w sposób niegraniczony, n. Analizowane jest graniczne zachowanie się ciagów zmiennych losowych opisujacych takie wielkości jak np. z OP T (n), z A (n) oraz f A (n) przy n. Zadanie programowania liniowego Do rozwiazywania zadań programowania liniowego powszechnie stosowany jest algorytm sympleks. W sensie analizy przypadku najgorszego ma on wykładnicza złożoność obliczeniowa. Jednym z bardzo istotnych wyników analizy przypadku średniego było wykazanie, że istnieja realizacje algorytmu sympleks majace w średnim przypadku wielomianow a złożoność obliczeniow a. Wynik ten potwierdził wysoka przydatność praktyczna algorytmu sympleks. Algorytm elipsoidalny zaproponowany przez Chacziana ma wielomianowa złożoność obliczeniowa. Ten wynik pozwolił zakwalifikować zadanie programowania liniowego do klasy P. Duża przydatność praktyczna ma algorytm Karmakara i metody pokrewne (metody punktu wewnętrznego). W ogólnym przypadku zadań optymalizcji ciagłej, szczególnie wieloekstremalnych, nie istnieja efektywne obliczeniowo metody dla rozwiazywania wszystkich zadań. Natomiast dla licznych zadań programowania wypukłego istnieja metody efektywne obliczeniowo. Zadanie komiwojażera Zadanie komiwojażera jest N P-trudnym zadaniem optymalizacji dyskretnej. W klasycznej pracy Beardwood, Halton i Hammersley, rozważono nieskierowany graf ważony G, dla którego V = {1,..., n} - zbiór wierzchołków jest zadany 10

jako zbior n punktów w kwadracie o bokach równych 1. Każdy z wierzchołków grafu i V jest zdefiniowany poprzez jego współrzędne (x i, y i ), gdzie 0 x i, y i 1. Dla każdej krawędzi lub łuku e = (i, j) grafu G waga c ij jest zdefiniowana jako najkrótsza odległość pomiędzy wierzchołkami: c ij = (x i x j ) 2 + (y i y j ) 2, gdzie x 1, x 2,..., x n oraz y 1, y 2,..., y n sa realizacjami X 1, X 2,..., X n, Y 1, Y 2,..., Y n - wzajemnie niezależnych zmiennych losowych o rozkładzie równomiernym w przedziale (0, 1]. Wtedy: z OP T (n) lim = β (p.n.), gdzie β stała, β 0, 765. n n 11