    {response}
    The above is the result of a dual-arm robot decomposing a task into a DAG graph, where the edge field indicates which other node a given node depends on. Some of the nodes in the above DAG contain dependency errors—in other words, there are problems with the edge field of certain nodes. The following are the nodes with issues and the corresponding problems identified.
    {problems_section}
    You need to ensure that the DAG graph meets the following requirements:
    1.All operations between the "pick" and "place" nodes must be related to the same object. No other operations can be performed on the object before it has been placed.
    2.Tool usage nodes include: push_to, wipe, stick_on, pour_into, cut, stir. Container open/close operations include: slide_open, slide_close, flap_open, flap_close, open_cap, close_cap, press_open, press_close. The pickup node is "pick", and the placement node is "place". The dependency relationship must follow the pick - use - place pattern.
    3.Tool usage nodes must not depend on the "place" node of another object. If they currently do, move that "place" node into the "edge" of the corresponding "pick" node for the tool.
    4.If there is only one tool usage node, it should depend only on the tool's "pick" node. If there are multiple tool usage nodes for the same tool, the first tool usage depends on the "pick" node, and each subsequent tool usage node depends on the previous tool usage node.
    5.The "pick" node for a tool can depend on another object's "place" node.
    6.When placing an object back into a container, the container must be opened before picking up the object that is to be returned.
    7.A "pick" node can have multiple dependency edges. Tool usage nodes and "place" nodes must each have only one dependency edge. In other words: the "edge" field of a "pick" node can contain multiple nodes, but the "edge" field of a tool usage or "place" node can contain only one node.
    You should only reply in the following format and do not reply to anything else.
    Do not use json format output.
    You must output the entire DAG, not just the modified nodes.
    Your output format must be:
    Nodes:
    node_{{index = 1, 2, 3... }} :
    type: indicates the node type.
    name: indicates the node name.
    arm_num: specifies the arm number of a node.
    take_time:The time required for each step.
    edge: Edge list of nodes.
    Example:
    Nodes:
    node_1:
    type: pick
    name: pick(source="table", target="carrots")
    arm_num: 1
    take_time: 5
    edge: []

    node_2:
    type: place
    name: place(source="carrots", target="cutting_board")
    arm_num: 1
    take_time: 7
    edge: [1]

    node_3:
    type: pick
    name: pick(source="table", target="apples")
    arm_num: 1
    take_time: 5
    edge: []

    node_4:
    type: place
    name: place(source="apples", target="cutting_board")
    arm_num: 1
    take_time: 7
    edge: [3]

    node_5:
    type: pick
    name: pick(source="counter", target="knife")
    arm_num: 1
    take_time: 5
    edge: [2, 4]

    node_6:
    type: cut
    name: cut(source="knife", target="carrots")
    arm_num: 2
    take_time: 10
    edge: [5]

    node_7:
    type: cut
    name: cut(source="knife", target="apples")
    arm_num: 2
    take_time: 10
    edge: [6]

    node_8:
    type: place
    name: place(source="knife", target="counter")
    arm_num: 1
    take_time: 5
    edge: [7]

    node_9:
    type: pick
    name: pick(source="shelf", target="plate")
    arm_num: 1
    take_time: 5
    edge: []

    node_10:
    type: place
    name: place(source="plate", target="table")
    arm_num: 1
    take_time: 6
    edge: [9]

    node_11:
    type: pick
    name: pick(source="table", target="bread")
    arm_num: 1
    take_time: 5
    edge: [10]

    node_12:
    type: place
    name: place(source="bread", target="plate")
    arm_num: 1
    take_time: 8
    edge: [11]

    node_13:
    type: flap_open
    name: flap_open(target="refrigerator")
    arm_num: 1
    take_time: 3
    edge: []

    node_14:
    type: pick
    name: pick(source="refrigerator", target="butter")
    arm_num: 1
    take_time: 5
    edge: [13]

    node_15:
    type: flap_close
    name: flap_close(target="refrigerator")
    arm_num: 1
    take_time: 3
    edge: [14]

    node_16:
    type: stick_on
    name: stick_on(source="butter", target="bread")
    arm_num: 1
    take_time: 8
    edge: [12, 14]

    node_17:
    type: place
    name: place(source="butter", target="table")
    arm_num: 1
    take_time: 8
    edge: [16]

    node_18:
    type: task_completion
    name: task_completion
    arm_num: 0
    take_time: 0
    edge: [8, 17]
    以上节点中部分节点的依赖,也就是edge部分存在问题，比如：
    node_16:
    type: stick_on
    name: stick_on(source="butter", target="bread")
    arm_num: 1
    take_time: 8
    edge: [12, 14]

    Example output
    Nodes:
    node_1:
    type: pick
    name: pick(source="table", target="carrots")
    arm_num: 1
    take_time: 5
    edge: []

    node_2:
    type: place
    name: place(source="carrots", target="cutting_board")
    arm_num: 1
    take_time: 7
    edge: [1]

    node_3:
    type: pick
    name: pick(source="table", target="apples")
    arm_num: 1
    take_time: 5
    edge: []

    node_4:
    type: place
    name: place(source="apples", target="cutting_board")
    arm_num: 1
    take_time: 7
    edge: [3]

    node_5:
    type: pick
    name: pick(source="counter", target="knife")
    arm_num: 1
    take_time: 5
    edge: [2, 4]

    node_6:
    type: cut
    name: cut(source="knife", target="carrots")
    arm_num: 2
    take_time: 10
    edge: [5]

    node_7:
    type: cut
    name: cut(source="knife", target="apples")
    arm_num: 2 
    take_time: 10
    edge: [6]

    node_8:
    type: place
    name: place(source="knife", target="counter")
    arm_num: 1
    take_time: 5
    edge: [7]

    node_9:
    type: pick
    name: pick(source="shelf", target="plate")
    arm_num: 1
    take_time: 5
    edge: []

    node_10:
    type: place
    name: place(source="plate", target="table")
    arm_num: 1
    take_time: 6
    edge: [9]

    node_11:
    type: pick
    name: pick(source="table", target="bread")
    arm_num: 1
    take_time: 5
    edge: [10]

    node_12:
    type: place
    name: place(source="bread", target="plate")
    arm_num: 1
    take_time: 8
    edge: [11]

    node_13:
    type: flap_open
    name: flap_open(target="refrigerator")
    arm_num: 1
    take_time: 3
    edge: []

    node_14:
    type: pick
    name: pick(source="refrigerator", target="butter")
    arm_num: 1
    take_time: 5
    edge: [12, 13]

    node_15:
    type: flap_close
    name: flap_close(target="refrigerator")
    arm_num: 1
    take_time: 3
    edge: [14]

    node_16:
    type: stick_on
    name: stick_on(source="butter", target="bread")
    arm_num: 1
    take_time: 8
    edge: [14]

    node_17:
    type: place
    name: place(source="butter", target="table")
    arm_num: 1
    take_time: 8
    edge: [16]

    node_18:
    type: task_completion
    name: task_completion
    arm_num: 0
    take_time: 0
    edge: [8, 17]