Browse Source

worked on readme

master
Tom 5 years ago
parent
commit
2800ded11b
1 changed files with 63 additions and 11 deletions
  1. +63
    -11
      README.md

+ 63
- 11
README.md View File

@ -1,20 +1,72 @@
# Bachelorarbeit Ergebnisse reproduzieren
~~~bash
git clone --recursive http://sargas.org:3000/QA_SAT/BA_Reproduzierbarkeit_Anleitung.git
~~~
git clone --recursive http://sargas.org:3000/QA_SAT/BA_Reproduzierbarkeit_Anleitung.git
## Setup
Zu erst muss das virtual environment für Python eingerichtet werden. Gehen sie hierfür in das Hauptverzeichnis des Projekts und führen
pipenv install
Zuerst muss das virtual environment für Python eingerichtet werden. Gehen sie hierfür in das Hauptverzeichnis des Projekts und führen
~~~bash
pipenv install
~~~
aus. Anschließend muss noch ein kernel für jupyter erstellt werden, hierzu führen sie
~~~bash
python -m ipykernel install --user --name=BA_Reproduzierbarkeit_Anleitung
~~~
aus. Anschließend kann das virtual environment mit
~~~bash
pipenv shell
~~~
aktiviert werden.
python -m ipykernel install --user --name=BA_Reproduzierbarkeit_Anleitung
## Datenbanken einrichten
Es werden zwei Datenbanken benötigt, eine MySQL und eine MongoDB Datenbank. In der MongoDB Datenbank werden Objekte wie SAT-Instanzen, QUBOS, oder D-Wave SampleSets gespeichert. Die MySQL Datenbank wird dazu verwendet, um Daten aus diesen Objekten zu extrahieren und diese anschließend zu untersuchen. Damit die Datenbanken genutzt werden können muss im Hauptverzeichnis ein File namens **database.config** angelegt werden, welches folgende Struktur aufzuweisen hat.
aus. Anschließend kann das virtual environment mit
~~~ini
[INSTANCE_POOL]
user = ...
pw = ...
url = ...
port = ...
database = ...
[EXPERIMENT_DB]
user = ...
pw = ...
url = ...
port = ...
database = ...
~~~
Bei **[INSTANCE_POOL]** handelt es sich um die MongoDB Datenbank und bei **[EXPERIMENT_DB]** um die MySQL Datenbank.
## Datensatz generieren
Ein k-SAT-Instanzen Datensatz mit einer fixer Klauselanzahl und logistisch verteilen Variablenanzahlen kann mit folgendem Python script erzeugt werden. Rufen sie hierzu einfach den interaktiven Modus von Python auf
~~~python
from qubo_lab.util import script
from qubo_lab.util import random_instance_pool as rip
instance_db = script.connect_to_instance_pool()
experiment_db = script.connect_to_experimetns_db()
script.create_experiment_scope(instance_db, "my description", "scope_name")
logistic_variable_distr_params =
{
number_of_clauses: 42,
min_variables: 5,
max_variables: 84,
alpha_point_of_interest: 4.2,
steepness: 1.4
}
pipenv shell
number_of_instances = 250
aktiviert werden.
instance_params = rip.Instance_parameters(42, 5, 3);
pool = rip.create_random_logistic_pool(logistic_variable_distr_params, 250, instance_params)
## Datensatz generieren
for instance in pool:
instacne_id = script.write_instance_to_pool_db(instance_db, instance)
script.add_instance_to_experiment_scope(instance_db, "scope_name", instacne_id)
~~~

Loading…
Cancel
Save