diff --git a/.gitignore b/.gitignore index 1194e840c30c505d3318ff676940b33979b1af7b..dbfa150b32df0e1bec7b14d97317606f3241cb17 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ map_package/ **/output.json docs/build/ docs/source/_autosummary/ +**.whl +**.tar.gz \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 1692433b00f12f7a5e3a91091167447cb7dc5e98..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Verse Core Library - -Verse is a library for creating, simulating, and verifying uni*verses* or scenarios with intelligent and interacting autonomous agents. - -## Installation -The package requires python 3.8+. The package can be installed using pip - -``` -python3 -m pip install -e . -``` -To update the dependencies, setup.py or requirement.txt can be used. - -``` -python3 setup.py install -``` -or -``` -pip install -r requirements.txt -``` - -## Demos -The package comes with several examples in the ```demo/``` folder. Run these as: - -``` -python3 demo/vehicle/demo2.py -``` - -Read the comments in ```demo/ball/ball_bounces.py``` to learn how to create new agents and scenarios. More detailed tutorials will be provided later. - -## Library structure - -The source code of the package is contained in the verse folder, which contains the following sub-directories. - -- **verse**, which contains building blocks for creating and analyzing scenarios. - - - **verse/scenario** contains code for the scenario base class. A scenario is constructed by several **agents** with continuous dynamics and controller, a **map** and a **sensor** defining how different agents interact with each other. - - **verse/agents** contains code for the agent base class in the scenario. - - **verse/map** contains code for the lane map base class and corresponding utilities in the scenario. - - **verse/code_parser** contains code for converting the controller code to ASTs. - - **verse/automaton** contains code implementing components in hybrid-automaton - - **verse/analysis** contains the **Simulator** and **Verifier** and related utilities for doing analysis of the scenario - - **verse/dryvr** dryvr for computing reachable sets - - -- **example** contains example map, sensor and agents that we provided - - -- **plotter** contains code for visualizing the computed results diff --git a/README.txt b/README.txt index f929fe8bc310f10fa5ce1537a0391c74ee8d4801..d299889a7439a6defe1d052232c6e1c06e79bf9a 100644 --- a/README.txt +++ b/README.txt @@ -18,7 +18,10 @@ The run-time for regenerating data in Reach section of Table 2 in the paper is a ########################### -The first step for replicating the experiments in the paper is to install Verse. Verse can be installed using command +The first step for replicating the experiments in the paper is to install Verse and its dependencies. +The dependencies for Verse can be installed using following command in the root directory of artifact + python3 -m pip install -r requirements_local.txt +Verse can be installed using following command in the root directory of artifact python3 -m pip install -e . To replicate our experiments from the paper, please run following commands from the root directory of the artifact. diff --git a/inc-expr.py b/inc-expr.py index 16a7c68ff8f8441d17f0c22724f813783784cb92..915b3fe7618a6f48619acb141d5417636ca758fc 100644 --- a/inc-expr.py +++ b/inc-expr.py @@ -27,7 +27,7 @@ else: rslts = [] for xprm in xprms: - cmd = Popen(f"/usr/bin/time -v -- python3.8 demo/tacas2023/exp11/inc-expr.py {xprm}", stdout=PIPE, stderr=PIPE, shell=True) + cmd = Popen(f"/usr/bin/time -v -- python3 demo/tacas2023/exp11/inc-expr.py {xprm}", stdout=PIPE, stderr=PIPE, shell=True) print(f"run '{xprm}', pid={cmd.pid}") ret = cmd.wait() stderr = cmd.stderr.readlines() @@ -62,4 +62,4 @@ for i in range(0, len(rslts), 2): cache_hit_rate = inc.cache_hits[0] / (inc.cache_hits[0] + inc.cache_hits[1]) if "v" not in var else (inc.cache_hits[0][0] + inc.cache_hits[1][0]) / (inc.cache_hits[0][0] + inc.cache_hits[0][1] + inc.cache_hits[1][0] + inc.cache_hits[1][1]) print(" & " + " & ".join([name] + [str(i) for i in [inc.node_count[1], round(no.duration, 2), round(no.max_mem), round(inc.duration, 2), round(inc.max_mem), round(inc.cache_size, 2), round(cache_hit_rate * 100, 2)]]) + " \\\\") -print(">>>>>>>>>", time.time()-start_time) \ No newline at end of file +print(">>>>>>>>>", time.time()-start_time) diff --git a/requirements.txt b/requirements.txt index ce3c43f8365968edeee1ba51151bf10c8532b4f2..4fef8f4a24ef29dc9c8288bdc5bc79e64bfd7d48 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,17 +1,17 @@ -numpy~=1.22.1 -scipy~=1.8.1 -matplotlib~=3.4.2 -polytope~=0.2.3 -pyvista~=0.32.1 -networkx~=2.2 -sympy~=1.6.2 -six~=1.14.0 -astunparse~=1.6.3 -treelib~=1.6.1 -z3-solver~=4.8.17.0 -igraph~=0.9.10 -plotly~=5.8.0 -beautifulsoup4~=4.11.1 -lxml~=4.9.1 +numpy +scipy +matplotlib +polytope +pyvista +networkx +sympy +six +astunparse +z3-solver +plotly +beautifulsoup4 +lxml torch -tqdm \ No newline at end of file +tqdm +intervaltree +Pympler diff --git a/requirements_local.txt b/requirements_local.txt new file mode 100644 index 0000000000000000000000000000000000000000..4ad808c3bb3d9fef3df9081d37e385aa90c43c06 --- /dev/null +++ b/requirements_local.txt @@ -0,0 +1,48 @@ +requirements/tqdm-4.64.1-py2.py3-none-any.whl +requirements/wheel-0.37.1-py2.py3-none-any.whl +requirements/z3_solver-4.11.2.0-py2.py3-none-manylinux1_x86_64.whl +requirements/vtk-9.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +requirements/treelib-1.6.1.tar.gz +requirements/soupsieve-2.3.2.post1-py3-none-any.whl +requirements/cycler-0.11.0-py3-none-any.whl +requirements/imageio-2.22.2-py3-none-any.whl +requirements/packaging-21.3-py3-none-any.whl +requirements/frozenlist-1.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl +requirements/sortedcontainers-2.4.0-py2.py3-none-any.whl +requirements/six-1.16.0-py2.py3-none-any.whl +requirements/scipy-1.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +requirements/kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl +requirements/charset_normalizer-2.1.1-py3-none-any.whl +requirements/networkx-2.8.7-py3-none-any.whl +requirements/aiosignal-1.2.0-py3-none-any.whl +requirements/idna-3.4-py3-none-any.whl +requirements/astunparse-1.6.3-py2.py3-none-any.whl +requirements/plotly-5.10.0-py2.py3-none-any.whl +requirements/sympy-1.11.1-py3-none-any.whl +requirements/future-0.18.2.tar.gz +requirements/typing_extensions-4.4.0-py3-none-any.whl +requirements/beautifulsoup4-4.11.1-py3-none-any.whl +requirements/python_dateutil-2.8.2-py2.py3-none-any.whl +requirements/contourpy-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +requirements/tenacity-8.1.0-py3-none-any.whl +requirements/Pympler-1.0.1-py3-none-any.whl +requirements/pyparsing-3.0.9-py3-none-any.whl +requirements/scooby-0.6.0-py3-none-any.whl +requirements/attrs-22.1.0-py2.py3-none-any.whl +requirements/torch-1.12.1-cp310-cp310-manylinux1_x86_64.whl +requirements/lxml-4.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl +requirements/multidict-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +requirements/fonttools-4.38.0-py3-none-any.whl +requirements/aiohttp-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +requirements/intervaltree-3.1.0.tar.gz +requirements/wslink-1.9.0-py3-none-any.whl +requirements/pyvista-0.36.1-py3-none-any.whl +requirements/async_timeout-4.0.2-py3-none-any.whl +requirements/yarl-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +requirements/polytope-0.2.3.tar.gz +requirements/appdirs-1.4.4-py2.py3-none-any.whl +requirements/mpmath-1.2.1-py3-none-any.whl +requirements/Pillow-9.2.0-cp310-cp310-manylinux_2_28_x86_64.whl +requirements/matplotlib-3.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +requirements/numpy-1.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + diff --git a/setup.py b/setup.py index 652e341d0d1758d5909c1a68915179949b8f4f4f..21951e07b52eee88e06e541f34231686280a63a0 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,6 @@ setup( "sympy", "six", "astunparse", - "treelib", "z3-solver", "plotly", "beautifulsoup4", @@ -29,6 +28,7 @@ setup( "torch", "tqdm", "intervaltree", + "Pympler", ], classifiers=[ 'Development Status :: 2 - Pre-Alpha',