Muszę przeanalizować pod kątem optymalizacji nastepnujący problem:

Jako pracownik studenckiego biura podróży pomagasz w rozwiązaniu
następującego problemu:
Studenci wybierają się na wycieczkę po Europie. Jako środek transportu
uwzględniają wyłącznie autokar. Ze względu na bezpieczeństwo podróży każdy
autokar jedzie tylko w ciągu dnia i nie może przejechać więcej niż określoną liczbę
kilometrów (np. max 800km). Noc na trasie studenci i kierowcy spędzają w hotelach.
Twoim zadaniem jest zaplanować podróż optymalnie, czyli tak, aby koszt
noclegów w ciągu całej wycieczki był jak najmniejszy.
Studenci podróżują tylko w jedną stronę. Trasa nie ma rozgałęzień. Przez
każdy punkt trasy autokar przejeżdża tylko raz. Pamiętaj, że nie planuje się noclegu
ani na początku ani na końcu trasy. Liczba osób w autobusie nie zmienia się i
wszyscy razem z kierowcą płacą taką samą cenę jednostkową za nocleg w tym
samym hotelu. Pojemność hoteli jest na tyle duża, że wszyscy mogą w nim
zanocować. Zarazem ich sieć jest na tyle gęsta, że na pewno znajdzie się hotel w
zakładanej odległości.
Zaproponuj sposób, by Twoje przedsiębiorstwo osiągnęło jak największy zysk
ze sprzedaży wycieczki, dobierając trasę odpowiedniej długości, określoną liczbę
hoteli oraz ich oferty tak żeby minimalizować koszt noclegów.

Masz do dyspozycji następujące dane:
 dane o lokalizacji hoteli
 koszty noclegów w każdym z hoteli
 punkt początkowy i końcowy wycieczki

Należy określić:
próba przystosowania do algorytmu Branch and Bound: jak zbudować drzewo i zdefiniować ograniczenie?
ile jest wszystkich rozwiązań?
jak zbudować losowe rozwiązanie?
jak heurystycznie zbudować niezłe rozwiązanie?
funkcję oceny rozwiązania – jak je ocenić liczbowo? (albo określić czy jedno rozwiązanie jest lepsze od drugiego)
relację sąsiedztwa – jak wyznaczyć zbiór rozwiązań podobnych do danego tak, żeby można było użyć lokalnego przeszukiwania?

Będę wdzięczny za jakiekolwiek nakierowanie na rozwiązanie tych problemów ;)