worked on readme
This commit is contained in:
78
README.md
78
README.md
@@ -1,20 +1,72 @@
|
|||||||
# Bachelorarbeit Ergebnisse reproduzieren
|
# 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
|
## Setup
|
||||||
Zu erst muss das virtual environment für Python eingerichtet werden. Gehen sie hierfür in das Hauptverzeichnis des Projekts und führen
|
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
|
pipenv install
|
||||||
|
~~~
|
||||||
aus. Anschließend muss noch ein kernel für jupyter erstellt werden, hierzu führen sie
|
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
|
python -m ipykernel install --user --name=BA_Reproduzierbarkeit_Anleitung
|
||||||
|
~~~
|
||||||
aus. Anschließend kann das virtual environment mit
|
aus. Anschließend kann das virtual environment mit
|
||||||
|
~~~bash
|
||||||
pipenv shell
|
pipenv shell
|
||||||
|
~~~
|
||||||
aktiviert werden.
|
aktiviert werden.
|
||||||
|
|
||||||
## Datensatz generieren
|
## 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.
|
||||||
|
|
||||||
|
~~~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
|
||||||
|
}
|
||||||
|
|
||||||
|
number_of_instances = 250
|
||||||
|
|
||||||
|
instance_params = rip.Instance_parameters(42, 5, 3);
|
||||||
|
|
||||||
|
pool = rip.create_random_logistic_pool(logistic_variable_distr_params, 250, instance_params)
|
||||||
|
|
||||||
|
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)
|
||||||
|
~~~
|
Reference in New Issue
Block a user