Co to jest programowanie liniowe Integer?

Problemy z programowaniem liniowym liczb całkowitych pojawiają się podczas próby rozwiązania systemów liniowych, jednocześnie określając, że wszystkie nieznane zmienne muszą być liczbami całkowitymi lub liczbami całkowitymi. Systemy liniowe są zestawami równań opisujących sytuację, dla której programista próbuje znaleźć rozwiązanie. Zazwyczaj składają się z jednego równania, które należy zmaksymalizować lub zminimalizować, oraz jedno lub więcej równania ograniczającego, które ograniczają nieznane zmienne. Aby system był liniowy, każde ograniczenie musi być równaniem liniowym; Oznacza to, że nie musi zawierać żadnych przypadków nieznanej zmiennej z wykładnikami większymi niż jeden.

Zwykłe systemy liniowe można łatwo rozwiązać za pomocą komputera. Program może zidentyfikować rozwiązanie, znajdując pochodną i ustawiając je równe zero. Może następnie sprawdzić, czy punkt jest maksymalny lub minimalny, sprawdzając jego bezpośrednią okolicę funkcji. Dopóki pochodna jest zdefiniowana w każdym punkcie wzdłuż funkcji, komputer ma tylko ograniczoną liczbę możliwościE rozwiązania do sprawdzenia.

Programowanie liniowe staje się programowaniem liniowym całkowitym z dodaniem ograniczenia liczb całkowitych. Oznacza to, że problem pozostaje taki sam, ale odpowiedź musi składać się z wartości liczb całkowitych dla nieznanych wartości: muszą być liczbami całkowitymi. Czasami oznacza to, że rozwiązanie będzie nieoptymalne w porównaniu z przypadkiem, w którym frakcje są dozwolone; Jest to jednak refleksyjne światowe świat, w którym przedmioty często występują w dyskretnych, niepodzielnych jednostkach. To sprawia, że ​​programowanie liniowe Integer jest ważne dla aplikacji biznesowych, ponieważ firmy chcą maksymalizować zyski jak najwięcej, ale nie mogą sprzedać ułamka produktu.

Po wprowadzeniu ograniczeń liczb całkowitych problem rozwiązania układu liniowego jest NP-komplet. Oznacza to, że czas niezbędny do rozwiązania komputera jest nieokreślony. Z ograniczeniami liczb całkowitych, komputerS nie może użyć narzędzia pochodnej, ponieważ nie ma gwarancji, że zerowy punkt pochodnej spadnie na liczbę całkowitą. Rozwiązaniem będzie liczba całkowita o najwyższej lub najniższej wartości spośród wszystkich liczb całkowitych, więc komputer musiałby je wszystkie sprawdzić - proces, który może zająć nieskończoną ilość czasu.

Programiści opracowali heurystykę lub metody rozwiązywania problemów, aby poradzić sobie ze złożonością tych problemów. Jedną z metod rozwiązywania problemów z programowaniem liniowym jest gałąź i algorytm związany, w którym komputer rozwiązuje serię problemów związanych z oryginalnym, aby zawęzić dostępny zakres wartości do jednego rozwiązania. W przypadku złożonych problemów może to zająć dużo czasu.

INNE JĘZYKI