معرفی شرکت ها


ccvm-simulators-0.1.2


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Solve continuous non-convex optimization problems with CCVM architectures and simulators
ویژگی مقدار
سیستم عامل -
نام فایل ccvm-simulators-0.1.2
نام ccvm-simulators
نسخه کتابخانه 0.1.2
نگهدارنده []
ایمیل نگهدارنده []
نویسنده 1QBit
ایمیل نویسنده support@1qbit.com
آدرس صفحه اصلی https://github.com/1QB-Information-Technologies/ccvm
آدرس اینترنتی https://pypi.org/project/ccvm-simulators/
مجوز GNU Affero General Public License v3.0
# Coherent Continous-Variable Machine Simulators [![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-green.svg)](https://www.gnu.org/licenses/agpl-3.0) [![Maintainer](https://img.shields.io/badge/Maintainer-1QBit-blue)](http://1qbit.com/) [![Paper](https://img.shields.io/badge/Paper-arxiv-red)](https://arxiv.org/abs/2209.04415) [![Docs](https://img.shields.io/badge/Docs-Link-yellow)](https://urban-chainsaw-9k39nm4.pages.github.io/index.html) This software package includes solvers for continuous optimization problems. The solvers are simulators of coherent continuous-variable machines (CCVM), which are novel coherent network computing architectures based on NTT Research’s coherent Ising machines (CIM). In CCVMs, the physical properties of optical pulses (e.g., mean-field quadrature amplitudes and phase) represent the continuous variables of a given optimization problem. Various features of CCVMs can be used along with programming techniques to implement the constraints imposed by such an optimization problem. Included are methods for solving box-constrained quadratic programming (BoxQP) problems using CCVM simulators by mapping the variables of the problems into the random variables of CCVMs. ## Table of Contents 0. [Requirements](#requirements) 1. [Quickstart](#quickstart) 2. [Usage](#usage) 3. [Documentation](#docs) - [BoxQP Problem Definition](ccvm/problem_classes/README.md) - [ccvmplotlib](ccvm/ccvmplotlib/README.md) 4. [Contributing](#contributing) 5. [References](#references) 6. [License](#license) ## Requirements - Python (supported version: 3.10) ### Supported operating systems - macOS (Monterey, Big Sur) - Ubuntu (20.04) ## Quickstart 1. Once you have cloned the repository, install the package using `pip`. ``` pip install ccvm-simulators ``` 2. Go into `examples/` and run the demo scripts. - `ccvm_boxqp.py`: Solve a BoxQP problem using a CCVM simulator, w/o plotting - `ccvm_boxqp_plot.py`: Solve a BoxQP problem using a CCVM simulator, w/ time-to-solution (TTS) plotting 3. View the generated plot. - The `ccvm_boxqp_plot.py` script solves a single problem instance, and will create an image of the resulting TTS plot in a `plots/` directory. The resulting output image, `DL-CCVM_TTS_cpu_plot.png`, will look something like this: <p align="center"> <img src="ccvm/ccvmplotlib/images/single_instance_TTS_plot.png" width="250" > </p> ### Extending the Example 4. Plotting larger datasets - The `ccvm_boxqp_plot.py` script is a toy example that plots the TTS for only a single problem instance. - It can be extended to solve multiple problems over a range of problem sizes. - When solution metadata is saved for multiple problems, the graph becomes more informative, for example: <p align="center"> <img src="ccvm/ccvmplotlib/images/tts_plot_example.png" width="250" > </p> 5. Other types of plots - `ccvmplotlib` can also plot the success probability data, for example: <p align="center"> <img src="ccvm/ccvmplotlib/images/success_prob_plot_example.png" width="250"> </p> ## Usage ### Solving a BoxQP Problem ##### 1. Import Modules ```python from ccvm_simulators.problem_classes.boxqp import ProblemInstance from ccvm_simulators.solvers import DLSolver ``` ##### 2. Define a Solver ```python solver = DLSolver(device="cpu", batch_size=100) # or "cuda" solver.parameter_key = { 20: {"pump": 2.0, "lr": 0.005, "iterations": 15000, "noise_ratio": 10}, } ``` ##### 3. Load a Problem Instance ```python boxqp_instance = ProblemInstance( instance_type="test", file_path="./examples/test_instances/test020-100-10.in", device=solver.device, ) ``` ##### 4. Scale the Coefficients The BoxQP problem matrix Q and vector V are normalized to obtain a uniform performance across different problem sizes and densities. The ideal range depends on the solver. For best results, Q should be passed to the solver's `get_scaling_factor()` method to determine the best scaling value for the problem–solver combination. ```python boxqp_instance.scale_coefs(solver.get_scaling_factor(boxqp_instance.q_matrix)) ``` ##### 5. Solve the Problem Instance ```python solution = solver.solve( instance=boxqp_instance, post_processor=None, ) print(f"The best known solution to this problem is {solution.optimal_value}") # The best known solution to this problem is 799.560976 print(f"The best objective value found by the solver was {solution.best_objective_value}") # The best objective value found by the solver was 798.1630859375 print(f"The solving process took {solution.solve_time} seconds") # The solving process took 8.949262142181396 seconds ``` ## Documentation The package documentation can be found [here](https://urban-chainsaw-9k39nm4.pages.github.io/index.html). * TODO: Update with public link Additional links: - Problem definition: [BoxQP problem class](ccvm/problem_classes/README.md) - Plotting library: [ccvmplotlib](ccvm/ccvmplotlib/README.md) ## Contributing We appreciate your pull requests and welcome opportunities to discuss new ideas. Check out our [contribution guide](CONTRIBUTING.md) and feel free to improve the `ccvm_simulators` package. For major changes, please open an issue first to discuss any suggestions for changes you might have. Thank you for considering making a contribution to our project! We appreciate your help and support. ## References This repository contains architectures and simulators presented in the paper ["Non-convex Quadratic Programming Using Coherent Optical Networks"](https://arxiv.org/abs/2209.04415) by Farhad Khosravi, Ugur Yildiz, Artur Scherer, and Pooya Ronagh. ## License [APGLv3](https://github.com/1QB-Information-Technologies/ccvm/blob/main/LICENSE)


نیازمندی

مقدار نام
==66.0.0 setuptools
==0.18.3 future
==3.6.3 matplotlib
==1.24.1 numpy
==1.5.2 pandas
==7.2.0 pytest
==1.10.0 scipy
==1.13.1 torch
==1.5.2 json-stream
==4.64.1 tqdm
==1.7.7 xmlrunner


نحوه نصب


نصب پکیج whl ccvm-simulators-0.1.2:

    pip install ccvm-simulators-0.1.2.whl


نصب پکیج tar.gz ccvm-simulators-0.1.2:

    pip install ccvm-simulators-0.1.2.tar.gz