JakubD Temat założony przez niniejszego użytkownika |
Problem komiwojażera. » 2017-06-02 09:36:22 Dzień dobry. Jestem studentem pierwszego roku informatyki, programowania nie mieliśmy w ogóle a nagle dostaliśmy za zadanie coś takiego:
Algorytm symulowanego wyżarzania dla problemu komiwojażera 1. Cel ćwiczenia Celem ćwiczenia jest nauka implementacji algorytmów symulowanego wyżarzania. Algorytm należy zaimplementować w języku C++. Algorytm będzie rozwiązywał problem komiwojażera. 2. Dane wejściowe Algorytm będzie czytał dane ze standardowego wejścia w następującym formacie: n c(1,1) c(1,2) ... c(1,n) c(2,1) c(2,2) ... c(2,n) … c(n,1) c(n,2) ... c(n,n)
Aktualnie mam problem po wczytaniu danych z pliku, wczytuje mi je jako asci. Żeby pojedynczą cyfrę zamienić, skopiowałbym ja do zmiennej int i odjął 48 a jeśli chodzi o podwójną, to nie wiem.. |
|
Anim |
» 2017-06-02 10:03:49 Ja dam Tobie jedną radę - zmień uczelnię. Jeżeli przez rok studiów (bo teraz kończysz pierwszy rok studiów, albo coś kręcisz) na informatyce nie miałeś żadnego programowania, to ktoś ewidentnie Cie okrada :)
Ja też kończę drugi semestr Informatyki i mam za sobą 4-5 przedmiotów, na których należało napisać kilka projektów.
Co do problemu komiwojażera. Czy wejście nie będzie u Ciebie przypadkiem czytane z strumienia wejściowego? a nie bezpośrednio z pliku? Tz. czy przypadkiem nie będziesz miał danych na zasadzie jak na SPOJu?... a druga kwestia: poczytaj o tym problemie albo na algorytmy.org, albo na eduinf.waw
Swoją drogą...jak rozwiążesz problem komiwojażera to firmy na całym świecie Cię ozłocą ^^
A już na serio, wracając do Twojego problemu. Jeżeli jest faktycznie tak jak mówisz, że nigdy nic nie programowałeś, to słabo widzę Twoją szansę na napisanie tego programu w sposób dostatecznie dobry.
Jeśli na wejściu masz dwie dane: numer wierzchołka i sąsiad, oraz waga krawędzi (zgadza się?), to stwórz macierz sąsiedztwa, i macierz wag krawędzi. I zapisuj po kolei raz do jednego, a raz do drugiego :) i tyle. Tak czy inaczej musisz to zapisywać do dużego bufora pamięci, przydzielanego dynamicznie. Bo nie możesz działać na bieżąco, tylko musisz mieć wszystkie dane przed przystąpieniem do rozwiązania.
|
|
JakubD Temat założony przez niniejszego użytkownika |
ojoj » 2017-06-02 10:17:08 Jest niby napisane, że ze standardowego wejścia, ale czy to nie oznacza Także pliku, zdaje mi się, że mówił o pliku z danymi. |
|
JakubD Temat założony przez niniejszego użytkownika |
no to dół » 2017-06-02 10:22:38 kolejne zadanie, dostaliśmy łatwiejsze, problem komiwojażera ale genetycznie lub algorytmem wstaw.. |
|
Anim |
» 2017-06-02 10:26:53 czyli jeśli ze standardowego wejścia, czyli korzystasz z metod:
albo cin oraz getline, i potem cout, lub scanf() oraz fgets() i potem printf.
Plik będzie miał stworzony wykładowca, albo będzie podawał dane z ręki, ale Ciebie to nie interesuje. Dla Ciebie ważne są metody, które podałem wyżej.
Aczkolwiek sposób wczytywania danych to jest najmniejszy problem w tym przypadku :) |
|
JakubD Temat założony przez niniejszego użytkownika |
Macież sąsiedztwa? » 2017-06-02 10:32:11 To taka jednowymiarowa tablica do której wpiszę kolejne miasta? |
|
Anim |
» 2017-06-02 10:33:14 Coś mi się zdaje, że ten temat wyląduje w koszu :(
Powiedz w takim razie z czym masz problem? Rozumiem, że problem komiwojażera jest jasny? Niestety gotowca nikt Tobie nie napisze (zresztą takowe latają po internecie w wielu różnych egzemplarzach). A co do poziomu znajomości przez Ciebie C++: jak w miarę umiesz programować - powiedzmy 10 lekcji z tej strony jest dla Ciebie jasnych i do tego znasz klasę vector i narzędzia STL, to masz wszystkie narzędzia, żeby zrobić to zadanie. |
|
JakubD Temat założony przez niniejszego użytkownika |
» 2017-06-02 10:43:04 Najgorsze jest to, że ja nie chcę kupować gotowca.Na tej stronie zrobiłem pierwsze 2 poziomy kursu. Nie znam tego o czym piszesz. Chwilowy problem zamiana tych wczytanych danych na inny a później poszukam innych problemów;). |
|
« 1 » 2 |