From cd84f23b29688957002bdef5e597be60e9a8cbdd Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:26:06 -0700 Subject: [PATCH 01/17] add readthedocs configuration file --- .readthedocs.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .readthedocs.yaml diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..8a8d931 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,18 @@ +# Read the Docs configuration file for MkDocs projects +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + + # Set the version of Python and other tools you might need +build: os: ubuntu-22.04 + tools: + python: "3.10" + +mkdocs: + configuration: mkdocs.yml + +# # Optionally declare the Python requirements required to build your docs +# python: +# install: +# - requirements: docs/requirements.txt From b9a3bee2a26d267b6eba9cf42780634b05d0fd91 Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:32:08 -0700 Subject: [PATCH 02/17] add readthedocs configuration file --- .readthedocs.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 8a8d931..bdb2a5d 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -4,15 +4,16 @@ # Required version: 2 - # Set the version of Python and other tools you might need -build: os: ubuntu-22.04 +# Set the version of Python and other tools you might need +build: + os: ubuntu-22.04 tools: - python: "3.10" + python: "3.12" mkdocs: configuration: mkdocs.yml -# # Optionally declare the Python requirements required to build your docs +# Optionally declare the Python requirements required to build your docs # python: # install: # - requirements: docs/requirements.txt From 09f964249c1b9daa45d501963007667b542110e1 Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:37:08 -0700 Subject: [PATCH 03/17] update material theme --- .readthedocs.yaml | 6 +++--- docs/requirements.txt | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 docs/requirements.txt diff --git a/.readthedocs.yaml b/.readthedocs.yaml index bdb2a5d..015eb5d 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -14,6 +14,6 @@ mkdocs: configuration: mkdocs.yml # Optionally declare the Python requirements required to build your docs -# python: -# install: -# - requirements: docs/requirements.txt +python: + install: + - requirements: docs/requirements.txt diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..4c8f017 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1 @@ +mkdocs-material From 4d33b133aea787c65c5575c987ef428fbe43918b Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:38:58 -0700 Subject: [PATCH 04/17] add mkdocstrings --- docs/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/requirements.txt b/docs/requirements.txt index 4c8f017..9283a65 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1 +1,2 @@ mkdocs-material +mkdocstrings-python From 116a15af0c2d1b4b200fad95c86fa33d70027751 Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:43:32 -0700 Subject: [PATCH 05/17] update installation instructions --- docs/contributing.md | 11 ++++++++--- docs/installing.md | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/contributing.md b/docs/contributing.md index 5668ea0..32049a1 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -3,17 +3,22 @@ If you want to modify FLORAS or contribute, you can also install it directly from source. We are using pdm to manage the dependencies. ``` pip install pdm -git clone url +git clone https://github.com/tulip-control/flowsynth ``` Navigate to the repo and run to install the FLORAS and all required dependencies: ``` pdm install ``` -Next, enter the virtual environment created by pdm: +Next, install spot by running +``` +pdm run python get_spot.py +``` +To enter the virtual environment created by pdm: ``` $(pdm venv activate) ``` -New dependencies can be added by running: + +If you need to add dependencies you can do that by running: ``` pdm add your_dependency_here ``` diff --git a/docs/installing.md b/docs/installing.md index 03fe616..8ac9ec9 100644 --- a/docs/installing.md +++ b/docs/installing.md @@ -3,13 +3,13 @@ FLORAS requires `Python>=3.10` and a C++17-compliant compiler (for example `g++>=7.0` or `clang++>=5.0`). You can check the versions by running `python --version` and `gcc --version`. -### From Pypi + ### From Source -If you want to modify FLORAS or contribute, you can also install it directly from source (see [here](contributing.md)). +If you want to modify FLORAS or contribute, you can install it directly from source (see [here](contributing.md)). ### Troubleshooting Here are common errors we encountered and what we learned to fix the problem. From 6a6ed7b9e8eed8773cd9b2dbf55f803e86d66faa Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:49:42 -0700 Subject: [PATCH 06/17] add graphviz --- pdm.lock | 34 +++++++++++++++++----------------- pyproject.toml | 5 ++++- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/pdm.lock b/pdm.lock index 2d793f8..cf8d512 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,17 +5,17 @@ groups = ["default"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:fe4ac9b8495cac5eaff1b6fd13c077ca0dd971ee3d13273299be9709b82befc5" +content_hash = "sha256:49837d73e6af3b303b328025645b7b986bf3c372683613e8274c69984b4695b2" [[metadata.targets]] -requires_python = ">=3.10" +requires_python = "==3.10" [[package]] name = "asttokens" version = "2.4.1" summary = "Annotate AST trees with source code positions" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" dependencies = [ "six>=1.12.0", "typing; python_version < \"3.5\"", @@ -306,7 +306,7 @@ version = "5.1.1" requires_python = ">=3.5" summary = "Decorators for Humans" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" files = [ {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, @@ -330,7 +330,7 @@ version = "2.1.0" requires_python = ">=3.8" summary = "Get the currently executing AST node of a frame, and other information" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" files = [ {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, @@ -517,7 +517,7 @@ version = "8.27.0" requires_python = ">=3.10" summary = "IPython: Productive Interactive Computing" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" dependencies = [ "colorama; sys_platform == \"win32\"", "decorator", @@ -542,7 +542,7 @@ version = "0.19.1" requires_python = ">=3.6" summary = "An autocompletion tool for Python that can be used for text editors." groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" dependencies = [ "parso<0.9.0,>=0.8.3", ] @@ -756,7 +756,7 @@ version = "0.1.7" requires_python = ">=3.8" summary = "Inline Matplotlib backend for Jupyter" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" dependencies = [ "traitlets", ] @@ -1039,7 +1039,7 @@ version = "0.8.4" requires_python = ">=3.6" summary = "A Python Parser" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" files = [ {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, @@ -1061,7 +1061,7 @@ name = "pexpect" version = "4.9.0" summary = "Pexpect allows easy control of interactive console applications." groups = ["default"] -marker = "(sys_platform != \"win32\" and sys_platform != \"emscripten\") and python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\" and (sys_platform != \"win32\" and sys_platform != \"emscripten\")" dependencies = [ "ptyprocess>=0.5", ] @@ -1183,7 +1183,7 @@ version = "3.0.48" requires_python = ">=3.7.0" summary = "Library for building powerful interactive command lines in Python" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" dependencies = [ "wcwidth", ] @@ -1214,7 +1214,7 @@ name = "ptyprocess" version = "0.7.0" summary = "Run a subprocess in a pseudo terminal" groups = ["default"] -marker = "(sys_platform != \"win32\" and sys_platform != \"emscripten\") and python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\" and (sys_platform != \"win32\" and sys_platform != \"emscripten\")" files = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, @@ -1225,7 +1225,7 @@ name = "pure-eval" version = "0.2.3" summary = "Safely evaluate AST nodes without side effects" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" files = [ {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, @@ -1545,7 +1545,7 @@ name = "stack-data" version = "0.6.3" summary = "Extract data from python stack frames and tracebacks for informative displays" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" dependencies = [ "asttokens>=2.1.0", "executing>=1.2.0", @@ -1574,7 +1574,7 @@ version = "5.14.3" requires_python = ">=3.8" summary = "Traitlets Python configuration system" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" files = [ {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, @@ -1605,7 +1605,7 @@ version = "4.12.2" requires_python = ">=3.8" summary = "Backported and Experimental Type Hints for Python 3.8+" groups = ["default"] -marker = "python_version < \"3.12\" and python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, @@ -1661,7 +1661,7 @@ name = "wcwidth" version = "0.2.13" summary = "Measures the displayed width of unicode strings in a terminal" groups = ["default"] -marker = "python_version > \"3.6\"" +marker = "python_version > \"3.6\" and python_version < \"3.11\"" dependencies = [ "backports-functools-lru-cache>=1.2.1; python_version < \"3.2\"", ] diff --git a/pyproject.toml b/pyproject.toml index 3b3073c..3e707e5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,10 +30,13 @@ dependencies = [ "pytest>=8.3.3", "coverage>=7.6.1", "pygraphviz>=1.13", + "graphviz>=0.20.3", ] -requires-python = ">=3.10" +requires-python = "==3.10" version = "0.0.0" readme = "README.md" [project.scripts] from_json = "flowsynth.main:main" + +[tool.pdm] From 7e0cdd9068869d78c3732fcc3b92ec8b24edbee3 Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:54:05 -0700 Subject: [PATCH 07/17] update installation instructions --- docs/installing.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/docs/installing.md b/docs/installing.md index 8ac9ec9..f6be9b6 100644 --- a/docs/installing.md +++ b/docs/installing.md @@ -1,13 +1,8 @@ # Installing FLORAS ### Requirements -FLORAS requires `Python>=3.10` and a C++17-compliant compiler (for example `g++>=7.0` or `clang++>=5.0`). +FLORAS requires `Python==3.10` and a C++17-compliant compiler (for example `g++>=7.0` or `clang++>=5.0`). You can check the versions by running `python --version` and `gcc --version`. - ### From Source If you want to modify FLORAS or contribute, you can install it directly from source (see [here](contributing.md)). From 08dd521e42d746f0897532df944b4dc5a85562d2 Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:58:15 -0700 Subject: [PATCH 08/17] update index --- docs/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/index.md b/docs/index.md index 9ed5698..ba2c319 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,5 +2,7 @@ FLORAS is an open-source Python package for reactive test synthesis for autonomous systems using network flows. +Installation instructions can be found [here](contributing.md). + If you use FLORAS for research purposes, please acknowledge it by citing [Josefine B. Graebener\*, Apurva S. Badithela\*, Denizalp Goktas, Wyatt Ubellacker, Eric V. Mazumdar, Aaron D. Ames, and Richard M. Murray. "Flow-Based Synthesis of Reactive Tests for Discrete Decision-Making Systems with Temporal Logic Specifications." ArXiv abs/2404.09888 (2024).](https://arxiv.org/abs/2404.09888) From 4829c682750136ff55fc3006e9c7315ae94f01bf Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 19:48:25 -0700 Subject: [PATCH 09/17] rename --- .../components/automata.py | 2 +- .../components/product.py | 4 +- .../components/transition_system.py | 0 src/{flowsynth => floras}/components/utils.py | 0 src/{flowsynth => floras}/main.py | 10 +- .../optimization/optimization.py | 2 +- .../optimization/optimize.py | 4 +- .../optimization/utils.py | 0 src/flowsynth/optimization/milp_static.py | 229 ------------------ src/flowsynth/optimization/setup_graphs.py | 78 ------ tests/test_1.py | 63 ----- tests/test_reactive_1.py | 8 +- tests/test_static_1.py | 36 +++ 13 files changed, 51 insertions(+), 385 deletions(-) rename src/{flowsynth => floras}/components/automata.py (99%) rename src/{flowsynth => floras}/components/product.py (98%) rename src/{flowsynth => floras}/components/transition_system.py (100%) rename src/{flowsynth => floras}/components/utils.py (100%) rename src/{flowsynth => floras}/main.py (87%) rename src/{flowsynth => floras}/optimization/optimization.py (99%) rename src/{flowsynth => floras}/optimization/optimize.py (72%) rename src/{flowsynth => floras}/optimization/utils.py (100%) delete mode 100644 src/flowsynth/optimization/milp_static.py delete mode 100644 src/flowsynth/optimization/setup_graphs.py delete mode 100644 tests/test_1.py create mode 100644 tests/test_static_1.py diff --git a/src/flowsynth/components/automata.py b/src/floras/components/automata.py similarity index 99% rename from src/flowsynth/components/automata.py rename to src/floras/components/automata.py index e9203ea..672ecf2 100644 --- a/src/flowsynth/components/automata.py +++ b/src/floras/components/automata.py @@ -8,7 +8,7 @@ from collections import OrderedDict as od import re import os -from flowsynth.components.utils import powerset, neg, conjunction, disjunction +from floras.components.utils import powerset, neg, conjunction, disjunction class Automaton: diff --git a/src/flowsynth/components/product.py b/src/floras/components/product.py similarity index 98% rename from src/flowsynth/components/product.py rename to src/floras/components/product.py index 7f7ca34..5e31b8a 100644 --- a/src/flowsynth/components/product.py +++ b/src/floras/components/product.py @@ -8,8 +8,8 @@ import os import networkx as nx from itertools import product -from flowsynth.components.transition_system import TranSys -from flowsynth.components.automata import Automaton +from floras.components.transition_system import TranSys +from floras.components.automata import Automaton spot.setup(show_default='.tvb') diff --git a/src/flowsynth/components/transition_system.py b/src/floras/components/transition_system.py similarity index 100% rename from src/flowsynth/components/transition_system.py rename to src/floras/components/transition_system.py diff --git a/src/flowsynth/components/utils.py b/src/floras/components/utils.py similarity index 100% rename from src/flowsynth/components/utils.py rename to src/floras/components/utils.py diff --git a/src/flowsynth/main.py b/src/floras/main.py similarity index 87% rename from src/flowsynth/main.py rename to src/floras/main.py index 5e61a62..04946f8 100644 --- a/src/flowsynth/main.py +++ b/src/floras/main.py @@ -2,11 +2,11 @@ import ast import argparse -from flowsynth.optimization.optimize import solve -from flowsynth.components.automata import get_system_automaton, get_tester_automaton, get_product_automaton -from flowsynth.components.transition_system import TranSys, TransitionSystemInput -from flowsynth.components.product import sync_prod -from flowsynth.components.utils import get_states_and_transitions_from_file +from floras.optimization.optimize import solve +from floras.components.automata import get_system_automaton, get_tester_automaton, get_product_automaton +from floras.components.transition_system import TranSys, TransitionSystemInput +from floras.components.product import sync_prod +from floras.components.utils import get_states_and_transitions_from_file from ipdb import set_trace as st diff --git a/src/flowsynth/optimization/optimization.py b/src/floras/optimization/optimization.py similarity index 99% rename from src/flowsynth/optimization/optimization.py rename to src/floras/optimization/optimization.py index a431151..889424f 100644 --- a/src/flowsynth/optimization/optimization.py +++ b/src/floras/optimization/optimization.py @@ -5,7 +5,7 @@ import time import numpy as np import networkx as nx -from flowsynth.optimization.utils import find_map_G_S +from floras.optimization.utils import find_map_G_S from gurobipy import * from copy import deepcopy import os diff --git a/src/flowsynth/optimization/optimize.py b/src/floras/optimization/optimize.py similarity index 72% rename from src/flowsynth/optimization/optimize.py rename to src/floras/optimization/optimize.py index 843ed27..7478b16 100644 --- a/src/flowsynth/optimization/optimize.py +++ b/src/floras/optimization/optimize.py @@ -1,5 +1,5 @@ -from flowsynth.optimization.setup_graphs import setup_nodes_and_edges -from flowsynth.optimization.optimization import MILP +from floras.optimization.setup_graphs import setup_nodes_and_edges +from floras.optimization.optimization import MILP from ipdb import set_trace as st diff --git a/src/flowsynth/optimization/utils.py b/src/floras/optimization/utils.py similarity index 100% rename from src/flowsynth/optimization/utils.py rename to src/floras/optimization/utils.py diff --git a/src/flowsynth/optimization/milp_static.py b/src/flowsynth/optimization/milp_static.py deleted file mode 100644 index 2924395..0000000 --- a/src/flowsynth/optimization/milp_static.py +++ /dev/null @@ -1,229 +0,0 @@ -''' -Gurobipy implementation of the MILP for static obstacles. -''' -from gurobipy import GRB -import time -import numpy as np -from ipdb import set_trace as st -import networkx as nx -from src.flowsynth.optimization.utils import find_map_G_S -from gurobipy import * -from copy import deepcopy -import os -import json - -# Callback function -def cb(model, where): - if where == GRB.Callback.MIPNODE: - # Get model objective - obj = model.cbGet(GRB.Callback.MIPNODE_OBJBST) # Current best objective - sol_count = model.cbGet(GRB.Callback.MIPNODE_SOLCNT) # No. of feasible solns found. - - # Has objective changed? - if abs(obj - model._cur_obj) > 1e-8: - # If so, update incumbent - model._cur_obj = obj - - # Terminate if objective has not improved in 60s - # Current objective is less than infinity. - - if sol_count >= 1: - if time.time() - model._time > 60: - model._data["term_condition"] = "Obj not changing" - model.terminate() - else: - # Total termination time if the optimizer has not found anything in 5 min: - if time.time() - model._time > 600: - model._data["term_condition"] = "Timeout" - model.terminate() - -# Gurobi implementation -def solve_opt_static(GD, SD, callback="cb", logger=None, logger_runtime_dict=None): - cleaned_intermed = [x for x in GD.acc_test if x not in GD.acc_sys] - # create G and remove self-loops - G = GD.graph - to_remove = [] - for i, j in G.edges: - if i == j: - to_remove.append((i,j)) - G.remove_edges_from(to_remove) - - # remove intermediate nodes - G_minus_I = deepcopy(G) - G_minus_I.remove_nodes_from(cleaned_intermed) - - # create S and remove self-loops - S = SD.graph - to_remove = [] - for i, j in S.edges: - if i == j: - to_remove.append((i,j)) - S.remove_edges_from(to_remove) - - model_edges = list(G.edges) - model_nodes = list(G.nodes) - model_edges_without_I = list(G_minus_I.edges) - model_nodes_without_I = list(G_minus_I.nodes) - - src = GD.init - sink = GD.sink - inter = cleaned_intermed - - # for the flow on S - map_G_to_S = find_map_G_S(GD,SD) - - s_sink = SD.acc_sys - s_src = SD.init[0] - - - model_s_edges = list(S.edges) - model_s_nodes = list(S.nodes) - - model = Model() - # Define variables - f = model.addVars(model_edges, name="flow") - m = model.addVars(model_nodes_without_I, name="m") - d = model.addVars(model_edges, vtype=GRB.BINARY, name="d") - - # Define Objective - term = sum(f[i,j] for (i, j) in model_edges if i in src) - ncuts = sum(d[i,j] for (i, j) in model_edges) - reg = 1/len(model_edges) - model.setObjective(term - reg*ncuts, GRB.MAXIMIZE) - - # Define constraints - # Nonnegativity - lower bounds - model.addConstrs((d[i, j] >= 0 for (i,j) in model_edges), name='d_nonneg') - model.addConstrs((m[i] >= 0 for i in model_nodes_without_I), name='mu_nonneg') - model.addConstrs((f[i, j] >= 0 for (i,j) in model_edges), name='f_nonneg') - - # upper bounds - model.addConstrs((d[i, j] <= 1 for (i,j) in model_edges), name='d_upper_b') - model.addConstrs((m[i] <= 1 for i in model_nodes_without_I), name='mu_upper_b') - # capacity (upper bound for f) - model.addConstrs((f[i, j] <= 1 for (i,j) in model_edges), name='capacity') - - # preserve flow of at least 1 - model.addConstr((1 <= sum(f[i,j] for (i, j) in model_edges if i in src)), name='conserve_F') - - # conservation - model.addConstrs((sum(f[i,j] for (i,j) in model_edges if j == l) == sum(f[i,j] for (i,j) in model_edges if i == l) for l in model_nodes if l not in src and l not in sink), name='conservation') - - # no flow into source or out of sink - model.addConstrs((f[i,j] == 0 for (i,j) in model_edges if j in src or i in sink), name="no_out_sink_in_src") - - # cut constraint (cut edges have zero flow) - model.addConstrs((f[i,j] + d[i,j] <= 1 for (i,j) in model_edges), name='cut_cons') - - # source sink partitions - for i in model_nodes_without_I: - for j in model_nodes_without_I: - if i in src and j in sink: - model.addConstr(m[i] - m[j] >= 1) - - # max flow cut constraint (cut variable d partitions the groups) - model.addConstrs((d[i,j] - m[i] + m[j] >= 0 for (i,j) in model_edges_without_I)) - - # --------- map static obstacles to other edges in G - for count, (i,j) in enumerate(model_edges): - out_state = GD.node_dict[i][0] - in_state = GD.node_dict[j][0] - for (imap,jmap) in model_edges[count+1:]: - if out_state == GD.node_dict[imap][0] and in_state == GD.node_dict[jmap][0]: - model.addConstr(d[i, j] == d[imap, jmap]) - - - # --------- add bidirectional cuts on G - for count, (i,j) in enumerate(model_edges): - out_state = GD.node_dict[i][0] - in_state = GD.node_dict[j][0] - for (imap,jmap) in model_edges[count+1:]: - if in_state == GD.node_dict[imap][0] and out_state == GD.node_dict[jmap][0]: - model.addConstr(d[i, j] == d[imap, jmap]) - - # --------- set parameters - # Last updated objective and time (for callback function) - model._cur_obj = float('inf') - model._time = time.time() - model.Params.Seed = np.random.randint(0,100) - - # store model data for logging - model._data = dict() - model._data["term_condition"] = None - - # optimize - if callback=="cb": - t0 = time.time() - model.optimize(callback=cb) - tf = time.time() - delt = tf - t0 - else: - t0 = time.time() - model.optimize() - tf = time.time() - delt = tf - t0 - - model._data["runtime"] = model.Runtime - model._data["flow"] = None - model._data["ncuts"] = None - - # Storing problem variables: - model._data["n_bin_vars"] = model.NumBinVars - model._data["n_cont_vars"] = model.NumVars - model.NumBinVars - model._data["n_constrs"] = model.NumConstrs - - f_vals = [] - d_vals = [] - flow = None - exit_status = None - - if model.status == 4: - model.Params.DualReductions = 0 - exit_status = 'inf' - model._data["status"] = "inf/unbounded" - return 0,0,exit_status - elif model.status == 11 and model.SolCount < 1: - exit_status = 'not solved' - model._data["status"] = "not_solved" - model._data["exit_status"] = exit_status - elif model.status == 2 or (model.status == 11 and model.SolCount >= 1): - if model.status == 2: - model._data["status"] = "optimal" - model._data["term_condition"] = "optimal found" - else: - # feasible. maybe be optimal. - model._data["status"] = "feasible" - - # --------- parse output - d_vals = dict() - f_vals = dict() - - for (i,j) in model_edges: - f_vals.update({(i,j): f[i,j].X}) - for (i,j) in model_edges: - d_vals.update({(i,j): d[i,j].X}) - - flow = sum(f[i,j].X for (i,j) in model_edges if i in src) - model._data["flow"] = flow - ncuts = 0 - - for key in d_vals.keys(): - if d_vals[key] > 0.9: - ncuts+=1 - print('{0} to {1} at {2}'.format(GD.node_dict[key[0]], GD.node_dict[key[1]],d_vals[key])) - - model._data["ncuts"] = ncuts - exit_status = 'opt' - model._data["exit_status"] = exit_status - elif model.status == 3: - exit_status = 'inf' - model._data["status"] = "inf" - else: - st() - - if not os.path.exists("log"): - os.makedirs("log") - with open('log/opt_data.json', 'w') as fp: - json.dump(model._data, fp) - - return d_vals, flow, exit_status diff --git a/src/flowsynth/optimization/setup_graphs.py b/src/flowsynth/optimization/setup_graphs.py deleted file mode 100644 index e9bec4e..0000000 --- a/src/flowsynth/optimization/setup_graphs.py +++ /dev/null @@ -1,78 +0,0 @@ -"""Contains GraphData class for optimization and parses the virtual graphs into the required form.""" -import networkx as nx - -class GraphData: - def __init__(self, nodes, edges, node_dict, inv_node_dict, acc_sys, acc_test, init): - self.nodes = nodes - self.edges = edges - self.node_dict = node_dict - self.inv_node_dict = inv_node_dict - self.acc_sys = acc_sys - self.acc_test = acc_test - self.init = init - self.graph = self.setup_graph(nodes, edges) - self.int = self.acc_test - self.sink = self.acc_sys - - def setup_graph(self, nodes, edges): - G = nx.DiGraph() - G.add_nodes_from(nodes) - G.add_edges_from(edges) - return G - - -def setup_nodes_and_edges(virtual_game_graph, virtual_sys, b_pi): - # setup nodes and map - nodes = [] - node_dict = {} - inv_node_dict = {} - for i, node in enumerate(virtual_game_graph.G_initial.nodes): - nodes.append(i) - node_dict.update({i: virtual_game_graph.reverse_Sdict[node]}) - inv_node_dict.update({virtual_game_graph.reverse_Sdict[node]: i}) - # find initial state - init = [] - for initial in virtual_game_graph.I: - init.append(inv_node_dict[initial]) - # find accepting states for system and tester - acc_sys = [] - acc_test = [] - for node in nodes: - if node_dict[node] in virtual_game_graph.sink: - acc_sys.append(node) - if node_dict[node] in virtual_game_graph.int: - acc_test.append(node) - # setup edges - edges = [] - for edge in virtual_game_graph.G_initial.edges: - out_node = virtual_game_graph.reverse_Sdict[edge[0]] - in_node = virtual_game_graph.reverse_Sdict[edge[1]] - edges.append((inv_node_dict[out_node],inv_node_dict[in_node])) - - # setup system graph - S_nodes = [] - S_node_dict = {} - S_inv_node_dict = {} - for i, node in enumerate(virtual_sys.G_initial.nodes): - S_nodes.append(i) - S_node_dict.update({i: virtual_sys.reverse_Sdict[node]}) - S_inv_node_dict.update({virtual_sys.reverse_Sdict[node]: i}) - # find initial state - S_init = [] - for initial in virtual_sys.I: - S_init.append(S_inv_node_dict[initial]) - # find accepting states for system - S_acc_sys = [] - for node in S_nodes: - if S_node_dict[node] in virtual_sys.sink: - S_acc_sys.append(node) - # setup edges - S_edges = [] - for edge in virtual_sys.G_initial.edges: - out_node = virtual_sys.reverse_Sdict[edge[0]] - in_node = virtual_sys.reverse_Sdict[edge[1]] - S_edges.append((S_inv_node_dict[out_node],S_inv_node_dict[in_node])) - - GD = GraphData(nodes, edges, node_dict, inv_node_dict, acc_sys, acc_test, init) - S = GraphData(S_nodes, S_edges, S_node_dict, S_inv_node_dict, S_acc_sys, [], S_init) - return GD, S diff --git a/tests/test_1.py b/tests/test_1.py deleted file mode 100644 index a82a438..0000000 --- a/tests/test_1.py +++ /dev/null @@ -1,63 +0,0 @@ -"""Testing current code.""" -import pytest - -import sys -sys.path.append('../') -from flowsynth.components.automata import get_system_automaton, get_tester_automaton, get_product_automaton -from flowsynth.components.transition_system import TransitionSystemInput, TranSys -from flowsynth.components.product import sync_prod -from flowsynth.optimization.optimize import solve - -def test_sample(): - states_list = [0,1,2,3,4,5] - transitions_dict = {0: [1,2,3], 1: [2,3,4], 2: [3,4,5], 3: [4], 4: [5,0], 5: [5]} - labels_dict = {0 : ['a'], 5: ['goal'], 3: ['int']} - init_list = [0] - - transition_system_input = TransitionSystemInput(states_list, transitions_dict, labels_dict, init_list) - - sys_formula = 'F(goal)' - test_formula = 'F(int)' - - # get automata - sys_aut, spot_aut_sys = get_system_automaton(sys_formula) - test_aut, spot_aut_test = get_tester_automaton(test_formula) - prod_aut = get_product_automaton(spot_aut_sys, spot_aut_test) - - # get transition system - transys = TranSys(transition_system_input) - - # get virtual graphs - virtual_sys = sync_prod(transys, sys_aut) - virtual = sync_prod(transys, prod_aut) - - d, flow = solve(virtual, transys, prod_aut, virtual_sys, case = 'static') - - assert flow >= 1.0 - -if __name__=='__main__': - states_list = [0,1,2,3,4,5] - transitions_dict = {0: [1,2,3], 1: [2,3,4], 2: [3,4,5], 3: [4], 4: [5,0], 5: [5]} - labels_dict = {0 : ['a'], 5: ['goal'], 3: ['int']} - init_list = [0] - - transition_system_input = TransitionSystemInput(states_list, transitions_dict, labels_dict, init_list) - - sys_formula = 'F(goal)' - test_formula = 'F(int)' - - # get automata - sys_aut, spot_aut_sys = get_system_automaton(sys_formula) - test_aut, spot_aut_test = get_tester_automaton(test_formula) - prod_aut = get_product_automaton(spot_aut_sys, spot_aut_test) - - # get transition system - transys = TranSys(transition_system_input) - - # get virtual graphs - virtual_sys = sync_prod(transys, sys_aut) - virtual = sync_prod(transys, prod_aut) - - d, flow = solve(virtual, transys, prod_aut, virtual_sys, case = 'static') - - assert flow >= 1.0 diff --git a/tests/test_reactive_1.py b/tests/test_reactive_1.py index 1be1f68..3cc2640 100644 --- a/tests/test_reactive_1.py +++ b/tests/test_reactive_1.py @@ -3,10 +3,10 @@ import sys sys.path.append('../') -from flowsynth.components.automata import get_system_automaton, get_tester_automaton, get_product_automaton -from flowsynth.components.transition_system import TransitionSystemInput, TranSys -from flowsynth.components.product import sync_prod -from flowsynth.optimization.optimize import solve +from floras.components.automata import get_system_automaton, get_tester_automaton, get_product_automaton +from floras.components.transition_system import TransitionSystemInput, TranSys +from floras.components.product import sync_prod +from floras.optimization.optimize import solve def test_reactive(): states_list = ['init', 'd1', 'd2', 'int_goal', 'p1', 'p2', 'goal'] diff --git a/tests/test_static_1.py b/tests/test_static_1.py new file mode 100644 index 0000000..90af25c --- /dev/null +++ b/tests/test_static_1.py @@ -0,0 +1,36 @@ +"""Testing current code in static setup.""" +import pytest + +import sys +sys.path.append('../') +from floras.components.automata import get_system_automaton, get_tester_automaton, get_product_automaton +from floras.components.transition_system import TransitionSystemInput, TranSys +from floras.components.product import sync_prod +from floras.optimization.optimize import solve + +def test_static(): + states_list = [0,1,2,3,4,5] + transitions_dict = {0: [1,2,3], 1: [2,3,4], 2: [3,4,5], 3: [4], 4: [5,0], 5: [5]} + labels_dict = {0 : ['a'], 5: ['goal'], 3: ['int']} + init_list = [0] + + transition_system_input = TransitionSystemInput(states_list, transitions_dict, labels_dict, init_list) + + sys_formula = 'F(goal)' + test_formula = 'F(int)' + + # get automata + sys_aut, spot_aut_sys = get_system_automaton(sys_formula) + test_aut, spot_aut_test = get_tester_automaton(test_formula) + prod_aut = get_product_automaton(spot_aut_sys, spot_aut_test) + + # get transition system + transys = TranSys(transition_system_input) + + # get virtual graphs + virtual_sys = sync_prod(transys, sys_aut) + virtual = sync_prod(transys, prod_aut) + + d, flow = solve(virtual, transys, prod_aut, virtual_sys, case = 'static') + + assert flow >= 1.0 From 3570f9ef042c930101402e5784326e024ea1c23d Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 19:49:00 -0700 Subject: [PATCH 10/17] add missing file --- src/floras/optimization/setup_graphs.py | 78 +++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/floras/optimization/setup_graphs.py diff --git a/src/floras/optimization/setup_graphs.py b/src/floras/optimization/setup_graphs.py new file mode 100644 index 0000000..e9bec4e --- /dev/null +++ b/src/floras/optimization/setup_graphs.py @@ -0,0 +1,78 @@ +"""Contains GraphData class for optimization and parses the virtual graphs into the required form.""" +import networkx as nx + +class GraphData: + def __init__(self, nodes, edges, node_dict, inv_node_dict, acc_sys, acc_test, init): + self.nodes = nodes + self.edges = edges + self.node_dict = node_dict + self.inv_node_dict = inv_node_dict + self.acc_sys = acc_sys + self.acc_test = acc_test + self.init = init + self.graph = self.setup_graph(nodes, edges) + self.int = self.acc_test + self.sink = self.acc_sys + + def setup_graph(self, nodes, edges): + G = nx.DiGraph() + G.add_nodes_from(nodes) + G.add_edges_from(edges) + return G + + +def setup_nodes_and_edges(virtual_game_graph, virtual_sys, b_pi): + # setup nodes and map + nodes = [] + node_dict = {} + inv_node_dict = {} + for i, node in enumerate(virtual_game_graph.G_initial.nodes): + nodes.append(i) + node_dict.update({i: virtual_game_graph.reverse_Sdict[node]}) + inv_node_dict.update({virtual_game_graph.reverse_Sdict[node]: i}) + # find initial state + init = [] + for initial in virtual_game_graph.I: + init.append(inv_node_dict[initial]) + # find accepting states for system and tester + acc_sys = [] + acc_test = [] + for node in nodes: + if node_dict[node] in virtual_game_graph.sink: + acc_sys.append(node) + if node_dict[node] in virtual_game_graph.int: + acc_test.append(node) + # setup edges + edges = [] + for edge in virtual_game_graph.G_initial.edges: + out_node = virtual_game_graph.reverse_Sdict[edge[0]] + in_node = virtual_game_graph.reverse_Sdict[edge[1]] + edges.append((inv_node_dict[out_node],inv_node_dict[in_node])) + + # setup system graph + S_nodes = [] + S_node_dict = {} + S_inv_node_dict = {} + for i, node in enumerate(virtual_sys.G_initial.nodes): + S_nodes.append(i) + S_node_dict.update({i: virtual_sys.reverse_Sdict[node]}) + S_inv_node_dict.update({virtual_sys.reverse_Sdict[node]: i}) + # find initial state + S_init = [] + for initial in virtual_sys.I: + S_init.append(S_inv_node_dict[initial]) + # find accepting states for system + S_acc_sys = [] + for node in S_nodes: + if S_node_dict[node] in virtual_sys.sink: + S_acc_sys.append(node) + # setup edges + S_edges = [] + for edge in virtual_sys.G_initial.edges: + out_node = virtual_sys.reverse_Sdict[edge[0]] + in_node = virtual_sys.reverse_Sdict[edge[1]] + S_edges.append((S_inv_node_dict[out_node],S_inv_node_dict[in_node])) + + GD = GraphData(nodes, edges, node_dict, inv_node_dict, acc_sys, acc_test, init) + S = GraphData(S_nodes, S_edges, S_node_dict, S_inv_node_dict, S_acc_sys, [], S_init) + return GD, S From 67c07600c7926bfd7d9d402456b6213a8074caf4 Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 20:01:05 -0700 Subject: [PATCH 11/17] update docs --- README.md | 8 +++++--- docs/automata.md | 2 +- docs/index.md | 5 +++++ docs/optimization.md | 2 +- docs/product.md | 2 +- docs/transition_system.md | 2 +- mkdocs.yml | 3 +++ pyproject.toml | 6 +++--- 8 files changed, 20 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3040ad8..eee1473 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ -# flowsynth +# Floras: Flow-Based Reactive Test Synthesis for Autonomous Systems -The flowsynth repository contains implementations of the algorithms developed in the following paper: +![logo](docs/logo.png "floras logo") -[Josefine B. Graebener*, Apurva S. Badithela*, Denizalp Goktas, Wyatt Ubellacker, Eric V. Mazumdar, Aaron D. Ames, and Richard M. Murray. "Flow-Based Synthesis of Reactive Tests for Discrete Decision-Making Systems with Temporal Logic Specifications." ArXiv abs/2404.09888 (2024).](https://arxiv.org/abs/2404.09888) \ No newline at end of file +The floras repository contains implementations of the algorithms developed in the following paper: + +[Josefine B. Graebener*, Apurva S. Badithela*, Denizalp Goktas, Wyatt Ubellacker, Eric V. Mazumdar, Aaron D. Ames, and Richard M. Murray. "Flow-Based Synthesis of Reactive Tests for Discrete Decision-Making Systems with Temporal Logic Specifications." ArXiv abs/2404.09888 (2024).](https://arxiv.org/abs/2404.09888) diff --git a/docs/automata.md b/docs/automata.md index 399c26b..7dd5c79 100644 --- a/docs/automata.md +++ b/docs/automata.md @@ -1 +1 @@ -::: flowsynth.components.automata +::: floras.components.automata diff --git a/docs/index.md b/docs/index.md index ba2c319..11feccd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,10 @@ # FLORAS - Flow-based Reactive Test Synthesis for Autonomous Systems +
+ ![floras logo](logo.png "floras logo"){ width="300" } +
Welcome to FLORAS!
+
+ FLORAS is an open-source Python package for reactive test synthesis for autonomous systems using network flows. Installation instructions can be found [here](contributing.md). diff --git a/docs/optimization.md b/docs/optimization.md index a9b812e..46b741b 100644 --- a/docs/optimization.md +++ b/docs/optimization.md @@ -1 +1 @@ -::: flowsynth.optimization.optimization +::: floras.optimization.optimization diff --git a/docs/product.md b/docs/product.md index 58352e4..d08d333 100644 --- a/docs/product.md +++ b/docs/product.md @@ -1 +1 @@ -::: flowsynth.components.product +::: floras.components.product diff --git a/docs/transition_system.md b/docs/transition_system.md index 11f9450..0a6b266 100644 --- a/docs/transition_system.md +++ b/docs/transition_system.md @@ -1 +1 @@ -::: flowsynth.components.transition_system +::: floras.components.transition_system diff --git a/mkdocs.yml b/mkdocs.yml index 9d30351..cb35491 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -23,6 +23,9 @@ plugins: python: paths: [src] # search packages in the src folder +markdown_extensions: + - attr_list + - md_in_html copyright: > Copyright © 2024 - Caltech diff --git a/pyproject.toml b/pyproject.toml index 3e707e5..f1c43c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,10 +3,10 @@ requires = ["pdm-backend"] build-backend = "pdm.backend" [project] -name = "flowsynth" +name = "floras" description = "A package for network flow-based test synthesis." authors = [ - {name = "flowsynth developers", email = "tbd"}, + {name = "floras developers", email = "tbd"}, ] license = {text = "BSD-3-Clause"} classifiers = [ @@ -37,6 +37,6 @@ version = "0.0.0" readme = "README.md" [project.scripts] -from_json = "flowsynth.main:main" +from_json = "floras.main:main" [tool.pdm] From ff0bd6371a0c7497f8ffbcca0006cae75ce7dec0 Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 20:03:20 -0700 Subject: [PATCH 12/17] add license --- LICENSE.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 LICENSE.txt diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..3d6a5e4 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,28 @@ +BSD 3-Clause License + +Copyright (c) 2024, California Institute of Technology + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 395df0863a6d4b2c491007ffe54346be1a5faa7d Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 20:05:17 -0700 Subject: [PATCH 13/17] add logo --- docs/logo.png | Bin 0 -> 159293 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/logo.png diff --git a/docs/logo.png b/docs/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1e9a6acec3bce8d042b93d9b008c38673a8858a8 GIT binary patch literal 159293 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%0AN&wo>{SxJu1GS7r9%P2h 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]EH}i^&o-bySIX?dVD-%s7Zd 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 MQbD3p%rNMG0Iw#WT>t<8 literal 0 HcmV?d00001 From 3076fe219abcb4f6751d95e111d1b1aef426ca02 Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 20:10:55 -0700 Subject: [PATCH 14/17] update readme --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index eee1473..aeda4fb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # Floras: Flow-Based Reactive Test Synthesis for Autonomous Systems -![logo](docs/logo.png "floras logo") +picture> + Logo. + + +Floras documentation can be found [here](https://floras.readthedocs.io). For installation instructions, please visit [this page](https://floras.readthedocs.io/en/latest/contributing/). The floras repository contains implementations of the algorithms developed in the following paper: From e5e8b45dea4fe54838c89becf4e61a91cce34095 Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 20:12:12 -0700 Subject: [PATCH 15/17] update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aeda4fb..d95d15e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Floras: Flow-Based Reactive Test Synthesis for Autonomous Systems -picture> + Logo. From b130bcd0d1398ea86117c17025f6c67569b0917c Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 20:15:08 -0700 Subject: [PATCH 16/17] update readme --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index d95d15e..50603d8 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ # Floras: Flow-Based Reactive Test Synthesis for Autonomous Systems - - Logo. - + Floras documentation can be found [here](https://floras.readthedocs.io). For installation instructions, please visit [this page](https://floras.readthedocs.io/en/latest/contributing/). From 79a3589027e1d49a46b69658af9ac9acf1db4940 Mon Sep 17 00:00:00 2001 From: Josefine G <51681591+jgraeb@users.noreply.github.com> Date: Tue, 1 Oct 2024 20:17:22 -0700 Subject: [PATCH 17/17] update readme --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 50603d8..3b58304 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # Floras: Flow-Based Reactive Test Synthesis for Autonomous Systems - +

+ +

Floras documentation can be found [here](https://floras.readthedocs.io). For installation instructions, please visit [this page](https://floras.readthedocs.io/en/latest/contributing/).