List of commits:
Subject Hash Author Date (UTC)
started implementing Simulated annealing 0a646cfa5b69d38aaeeefebc5950955c32340ad6 SF2311 2018-05-09 13:24:39
ready for update 9291ca0919c7344123342da1d1bf613b91e8b885 SF2311 2018-05-09 12:02:25
finished 2-Opt-algorithm 77fe988c5101d80ee3362ee69a6c949f32589edf SF2311 2018-05-05 16:24:59
fixed gui problems 0688b215d9601d49a00aebc0732164216fe4a2f4 SF2311 2018-05-03 10:48:19
improved visualization, added thread safety 89adf0d0bfe610fde9199ec8145c5d8a91fae33f SF2311 2018-05-02 08:48:40
implemented first version of visualization a218089ef758c0fd525d3bbe16163d71eb4c6833 SF2311 2018-04-25 20:32:26
implemented first version of 2-opt-change algorithm 376954bfb1e24116e0935d70263c0ec0c2792b92 SF2311 2018-04-25 16:29:06
just to update 2fa820634306068c8a97315ecb29661604bb34dc SF2311 2018-04-25 14:21:33
Merge branch 'dev' of T:\GIPS\Klassen\2017_GIPS_J1\Informatik JB\ts into dev 0fa550b00774b011f7e87ef1ac5b8fbdb9abb0bc ani.moosb 2018-04-25 13:25:48
prepared data structure ad7e293e1679e05d274ebcacf043522c2f3e8f5c SF2311 2018-04-25 13:21:54
new class Algorythm to implement BrutForce algorithm cd2f3565cc145dd9f14290b727f74ea0281ef2c7 ani.moosb 2018-04-25 13:12:14
prepared data structure 0d55315b39e973974793aadfc188dc9e055ef029 SF2311 2018-04-25 13:10:50
added class City for represnetation of data 057841348e42a9bf916d6b5bf8d8f069a8e4f555 SF2311 2018-04-25 12:42:18
new class Algorythm to implement BrutForce algorithm c0ba57e67447133ed5b2fcde4cc9c6a2c61a1036 ani.moosb 2018-04-25 12:29:31
Fixed menu loading problems 9858b4b11fd912d8b40e681b772bf0ef16678ca6 SF2311 2018-04-20 17:07:20
Added Menu loading 428354d568e6bf97e45ec4c416ce9b3db227eea4 SF2311 2018-04-20 16:12:55
designed main window added launching main window added first menu part in form of gridpane 1f4e52733f4aeb9524fb0f40f8cf7604aaf17898 SF2311 2018-04-19 16:15:30
prepared User interface cfad65413554fbd7a1026f2c8e73e73e996df69d SF2311 2018-04-18 18:51:26
initial commit 272ab94837f2e39f77b768df08a25a78466d52d1 SF2311 2018-04-18 18:43:17
Commit 0a646cfa5b69d38aaeeefebc5950955c32340ad6 - started implementing Simulated annealing
Author: SF2311
Author date (UTC): 2018-05-09 13:24
Committer name: SF2311
Committer date (UTC): 2018-05-09 13:24
Parent(s): d95b871200609253aa623eef22c7c8acfd176fad
Signer:
Signing key:
Signing status: N
Tree: 7588d6e1de6c6dd50d2ffce318d75ce815c68aa7
File Lines added Lines deleted
.idea/libraries/joda_time_2_4.xml 9 0
src/salesman/algorithms/Opt2.java 5 4
src/salesman/algorithms/SimAnn.java 50 0
src/salesman/ui/MenuController/Opt2Controller.java 1 0
File .idea/libraries/joda_time_2_4.xml added (mode: 100644) (index 0000000..e3a8c72)
1 <component name="libraryTable">
2 <library name="joda-time-2.4">
3 <CLASSES>
4 <root url="jar://$PROJECT_DIR$/lib/joda-time-2.4.jar!/" />
5 </CLASSES>
6 <JAVADOC />
7 <SOURCES />
8 </library>
9 </component>
File src/salesman/algorithms/Opt2.java changed (mode: 100644) (index d401461..db68845)
... ... package salesman.algorithms;
3 3
4 4 import javafx.application.Platform; import javafx.application.Platform;
5 5 import org.joda.time.DateTime; import org.joda.time.DateTime;
6 import org.joda.time.Duration;
7 6 import org.joda.time.Period; import org.joda.time.Period;
8 import org.joda.time.format.PeriodFormat;
9 7 import org.joda.time.format.PeriodFormatter; import org.joda.time.format.PeriodFormatter;
10 8 import org.joda.time.format.PeriodFormatterBuilder; import org.joda.time.format.PeriodFormatterBuilder;
11 9 import salesman.data.Order; import salesman.data.Order;
12 10 import salesman.ui.MainWindowController; import salesman.ui.MainWindowController;
13 import salesman.ui.SetDataOnWindow;
14
15 11
16 12 import java.util.Random; import java.util.Random;
17 13
 
... ... public class Opt2 extends Thread {
29 25 int count = 0; int count = 0;
30 26 double cancelCondition= MainWindowController.data.getCities().length*MainWindowController.data.getCities().length-1; double cancelCondition= MainWindowController.data.getCities().length*MainWindowController.data.getCities().length-1;
31 27 currentOrder = Order.getRandomOrder(MainWindowController.data.getCities()); currentOrder = Order.getRandomOrder(MainWindowController.data.getCities());
28
29
32 30 while (count<cancelCondition) { while (count<cancelCondition) {
33 31 if(isInterrupted()){ if(isInterrupted()){
34 32 MainWindowController.data.setAlgorithmRunning(false); MainWindowController.data.setAlgorithmRunning(false);
35 33 return; return;
36 34 } }
35
37 36 currentLength = currentOrder.getTotalLength(); currentLength = currentOrder.getTotalLength();
38 37 int index1 = r.nextInt(currentOrder.getSize()), index2 = r.nextInt(currentOrder.getSize()); int index1 = r.nextInt(currentOrder.getSize()), index2 = r.nextInt(currentOrder.getSize());
39 38 currentOrder.swapValues(index1, index2); currentOrder.swapValues(index1, index2);
40 39 MainWindowController.data.getCurrentOrder().setOrder(currentOrder.getOrder()); MainWindowController.data.getCurrentOrder().setOrder(currentOrder.getOrder());
40
41 41 System.out.println("change: "+System.currentTimeMillis()); System.out.println("change: "+System.currentTimeMillis());
42
42 43 if (currentOrder.getTotalLength() < currentLength) { if (currentOrder.getTotalLength() < currentLength) {
43 44 MainWindowController.data.setBestEver(currentOrder); MainWindowController.data.setBestEver(currentOrder);
44 45 count =0; count =0;
File src/salesman/algorithms/SimAnn.java added (mode: 100644) (index 0000000..0d96966)
1 package salesman.algorithms;
2
3 import org.joda.time.DateTime;
4 import salesman.data.Order;
5 import salesman.ui.MainWindowController;
6
7 import java.util.Random;
8
9 public class SimAnn extends Thread {
10 private Order currentOrder = Order.getRandomOrder(MainWindowController.data.getCities());
11 private Random r = new Random();
12 private int bestLength =currentOrder.getTotalLength();
13 private double sigma = 1000000;
14
15 @Override
16 public void run(){
17
18 boolean running = true;
19
20 MainWindowController.data.setAlgorithmRunning(true);
21 DateTime start =new DateTime();
22
23 while(running) {
24
25 sigma-=sigma*0.01;
26 int a = r.nextInt(currentOrder.getSize() - 1);
27 int b = r.nextInt(currentOrder.getSize() - 1);
28
29
30 currentOrder.swapValues(a, b);
31 MainWindowController.data.getCurrentOrder().setOrder(currentOrder.getOrder());
32 if (currentOrder.getTotalLength() < bestLength) {
33 MainWindowController.data.setBestEver(currentOrder);
34 } else {
35 //TODO implement probability decision
36 }
37
38 if (!MainWindowController.data.isAlgorithmRunning()) {
39 try {
40 Thread.sleep(10);
41 } catch (InterruptedException e) {
42 e.printStackTrace();
43 }
44 }
45
46 }
47 DateTime end = new DateTime();
48 MainWindowController.data.setAlgorithmRunning(false);
49 }
50 }
File src/salesman/ui/MenuController/Opt2Controller.java changed (mode: 100644) (index 34ccf78..4a3e6d4)
... ... public class Opt2Controller {
12 12 @FXML @FXML
13 13 private void onAction(){ private void onAction(){
14 14 currentlyRunning= new Opt2(); currentlyRunning= new Opt2();
15 currentlyRunning.setDaemon(true);
15 16 currentlyRunning.start(); currentlyRunning.start();
16 17 } }
17 18 @FXML @FXML
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/SF2311/travelling-salesman

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/SF2311/travelling-salesman

Clone this repository using git:
git clone git://git.rocketgit.com/user/SF2311/travelling-salesman

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main