Skip to content

Commit

Permalink
Add constraints.
Browse files Browse the repository at this point in the history
  • Loading branch information
fire committed Dec 28, 2023
1 parent ae5fe95 commit ebb851a
Showing 1 changed file with 29 additions and 10 deletions.
39 changes: 29 additions & 10 deletions apartment_design_asisstant.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
- Only primitives (actions) can change the state.
- Tasks are a combination of [goals, other tasks, primitives].
- Goals represent the desired target state.
- Simple Temporal Networks (STNs) are used to arrange the order of design operations temporally.
- Simple Temporal Networks (STNs) are used for scheduling primitives and avoiding physical overlaps.

## State Variables

Expand All @@ -15,17 +15,33 @@
- `room_list`: Dictionary of rooms, each with properties like size, style, and function.
- `furniture_positions`: Dictionary detailing the positions and orientations of furniture items.

## Using STNs for Temporal Arrangement
## Avoiding Physical Overlaps

- STNs are employed to schedule and sequence the design tasks.
- The order of design operations (room creation, furniture placement, etc.) is managed temporally to optimize the workflow.
- Constraints are set to ensure that certain tasks are completed before others, respecting dependencies and logical sequences in the design process.
- Constraints are implemented to ensure no two objects occupy the same physical space.
- When placing furniture (`place_furniture`), checks are performed against `furniture_positions` to avoid overlap.
- If an overlap is detected, the planner will re-evaluate the placement, adjusting positions or suggesting alternative items.

## Temporal Arrangement of Primitives using STNs

- STNs define the specific times or order in which primitives are executed.
- Temporal constraints ensure that:
- The `create_room` action occurs before `place_furniture`.
- The `change_layout` action, if needed, precedes both `create_room` and `place_furniture`.
- This temporal structuring aids in logical progression and efficiency in the design process.

## Primitives (Actions)

- `create_room(apartment_state, room_name, size, style, function)`
- `place_furniture(apartment_state, item, room_name, position, orientation)`
- `change_layout(apartment_state, new_layout)`
### `create_room(apartment_state, room_name, size, style, function)`

- **Scheduled Time**: Early in the design phase, after finalizing the layout.

### `place_furniture(apartment_state, item, room_name, position, orientation)`

- **Scheduled Time**: After room creation, before final design review.

### `change_layout(apartment_state, new_layout)`

- **Scheduled Time**: At the very beginning of the redesign process.

## Tasks

Expand All @@ -35,6 +51,9 @@
## Goals

- Goal1: Design a Complete Apartment
- Sequential tasks: Layout creation, room designing, furniture placement.
- Goal2: Redesign an Existing Apartment
- Temporal constraints: Adjust layout before room redesign, update furniture post-room modifications.

## Implementation of STNs

- STNs are dynamically updated as the design process progresses, adapting to changes in the project timeline.
- The planner checks STN consistency regularly to ensure feasible scheduling of all tasks and adherence to spatial constraints.

0 comments on commit ebb851a

Please sign in to comment.