Strange
Strange - бібліотека для емуляції квантових обчислень на Java. Бібліотека також дозволяє досить просто візуалізувати написану квантову програму за допомогою JavaFX.
Підключення бібліотеки
При використанні Maven це можна зробити, додавши залежність:
Написання простої програми
Приклад простої програми, код можна помістити прямо в метод main():
Program program = new Program(3);
Step s0 = new Step();
s0.addGate(new X(0));
Step s1 =new Step();
s1.addGate(new Hadamard(2));
program.addStep(s0);
program.addStep(s1);
QuantumExecutionEnvironment qee =
new SimpleQuantumExecutionEnvironment();
Result result = qee.runProgram(program);
Qubit[] qubits = result.getQubits();
for (Qubit qubit:qubits){
System.out.println(qubit.measure());
}
Після запуску програма має видати результат
1
0
0
або
1
0
1
Пояснення програми
Створення програми, що буде оперувати 3-ма кубітами:
Program program = new Program(3);
Створення "кроку" програми, додавання в нього оператору (гейту) Х. Х - це квантовий аналог оператора заперечення (NOT) в звичайному програмуванні. Параметр конструктора X() вказує, до якого саме кубіту буде застосований цей оператор. В нашому випадку - до нульового.
Step s0 = new Step();
s0.addGate(new X(0));
Аналогічно додаємо ще один крок. В цьому випадку буде використовуватися оператор Адамара. Цей оператор переводить кубіт в стан суперпозиції. Оператор застосовується до кубіта номер 2.
Step s1 =new Step();
s1.addGate(new Hadamard(2));
Додаємо наші "кроки" до програми:
program.addStep(s0);
program.addStep(s1);
Створюємо емулятор, виконуємо в ньому програму:
QuantumExecutionEnvironment qee = new SimpleQuantumExecutionEnvironment();
Result result = qee.runProgram(program);
Конвертуємо результат в кубіти, проводимо вимірювання кожного, виводимо результат. Вимірювання перетворює кубіт у звичайний біт.
Qubit[] qubits = result.getQubits();
for (Qubit qubit:qubits){
System.out.println(qubit.measure());
}
Кожен із кубітів спочатку знаходиться в стані |0>.
Візуалізація
Для візуалізації потрібно додати залежність:
Для нових версій Java (Java 9+) також потрібно підключити JavaFX:
Для виведення візуалізації достатньо додати рядок коду:
Renderer.renderProgram(program);
Коментарі
Дописати коментар