paths edges jacobians, graphs, combinatorics faceskolleg/bilder/ad_naumann.pdf · jacobians,...

31
Jacobians, Graphs, Combinatorics Uwe Naumann F G G F 0 Paths Vertices Edges Faces Algorithms Complexity Consequences Conclusion Jacobians, Graphs, Combinatorics Uwe Naumann LuFG Software and Tools for Computational Engineering Dept. of Computer Science, RWTH Aachen University, Germany

Upload: others

Post on 19-Oct-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Jacobians, Graphs, Combinatorics

    Uwe Naumann

    LuFG Software and Tools for Computational EngineeringDept. of Computer Science, RWTH Aachen University, Germany

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Content

    1 F → G

    2 G → F ′

    PathsVerticesEdgesFaces

    3 Algorithms

    4 Complexity

    5 Consequences

    6 Conclusion

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    (Linearized) Computational Graph

    t = x0 · sin(x0 · x1)x0 = cos(t)x1 = t/x1

    v−1 = x0v0 = x1v1 = v−1 · v0 c1,−1 = v0; c1,0 = . . .v2 = sin(v1) c2,1 = cos(v1)v3 = v−1 · v2 c3,−1 = v2; c3,2 = . . .v4 = cos(v3) c4,3 = − sin(v3)v5 = v3/v0 c5,3 = 1/v0; c5,0 = . . .x0 = v4x1 = v5

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ������������

    ������������

    ��������

    ��

    ��

    ��

    ��

    �������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ���������������������������������������������������������������������������������������������������

    ������������������������������������������������

    ���������������������������������������������������������������

    ���������������

    ���������

    ���������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    PSfrag replacements

    −1 0

    1

    2

    3

    4 5

    c1,−1

    c1,0

    c2,1

    c3,2

    c3,−1

    c4,3c5,3

    c5,0

    G = (V ,E )

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Elimination of Paths

    ∂vk∂vl

    ≡ f ′k,l =∑

    [l→k]

    (i ,j)∈[l→k]

    cj ,i

    For example,

    f ′(4,−1) = c3,−1·c4,3+c1,−1·c2,1·c3,2·c4,3

    = (c3,−1 + c1,−1 · c2,1 · c3,2) · c4,3

    Objective ...

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ������������

    ������������

    ��������

    ��

    ��

    ��

    ��

    �������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ���������������������������������������������������������������������������������������������������

    ������������������������������������������������

    ���������������������������������������������������������������

    ���������������

    ���������

    ���������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    PSfrag replacements

    −1 0

    1

    2

    3

    4 5

    c1,−1

    c1,0

    c2,1

    c3,2

    c3,−1

    c4,3c5,3

    c5,0

    I W. Baur and V. Strassen: The complexity of partial derivatives. 1983

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Bipartite Computational Graph

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ������

    ����������

    ������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������

    ���������

    ���������

    ���������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    PSfrag replacements

    −1 0

    1

    2

    3

    4 5

    c1,−1

    c1,0

    c2,1

    c3,2

    c3,−1

    c4,3c5,3

    c5,0=⇒

    ���������������

    ���������������

    ���������������

    ���������

    ���������������

    � � �

    !�!�!!�!�!!�!�!

    "�"�""�"�""�"�"

    ###############################################

    $�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$

    %�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%

    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

    '''''''''''''''''''''''''''''''''''''''''''''''

    (�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�((�(�(�(�(�(�(�(�(

    )�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�))�)�)�)�)�)�)�)�)

    PSfrag replacements

    −1 0

    4 5

    f ′4,−1

    f ′5,−1

    f ′4,0

    f ′5,0

    G G ′

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Elimination of VerticesPSfrag replacements

    −1 0

    1

    2 3

    a b

    c

    de

    PSfrag replacements

    −1 0

    1

    2 3

    c + ad be

    bd

    ae

    Cost(j) = |Pj | · |Sj | (Cost(1) = |P1| · |S1| = 2 · 2 = 4)

    I A. Griewank and S. Reese: On the calculation of Jacobian Matrices by

    the Markovitz rule. Proceedings of AD1991, SIAM (1991)

    I K. Herley: On minimal fill-in Jacobian accumulation. ANL, 1992

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Search Space (Mv)

    For example, |V | = 3 :

    → |V |! elimination sequences

    → shortest path problem incost-enhanced metagraphMv

    → size of Mv is exponentialin size of G

    PSfrag replacements

    G

    G ′

    1 2 3

    1, 2 1, 3 2, 3

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Lion Graph

    ������������������

    ������������������

    ������������

    ������������

    ������������������

    ������

    ��

    ��

    ��

    ������������������������������

    ��

    ��

    �����������

    ������������������������

    ������������������������������������������������������������������������������������������������������������������

    ������������������������������������������������������������������������������������������������������

    ���������������������������������������������

    ��������������������������������������������� ������������������

    ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

    PSfrag replacements

    −1

    0

    1 2

    3

    4

    5

    6f ′3,−1 = c1,−1 · c2,1 · c3,2

    . . .

    f ′6,−1 = c1,−1 · c2,1 · c6,2 + c1,−1 · c6,1 = c1,−1 · (c2,1 · c6,2 + c6,1)

    f ′6,0 = c1,0 · c2,1 · c6,2 + c1,0 · c6,1 = c1,0 · (c2,1 · c6,2 + c6,1)

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    (Front-)Elimination of EdgesPSfrag replacements

    −1 0

    1

    2 3

    a b

    c

    de

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ����������������������������

    ����������������������������

    PSfrag replacements

    −1 0

    1

    2 3

    c + ad

    aeb

    d

    e

    Cost((i , j)) = |Sj | (Cost((−1, 1)) = |S1| = 2)

    I U. Naumann: Elimination Techniques for Cheap Jacobians. Proceedings

    of AD2000, Springer (2000)

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    (Back-)Elimination of Edges

    PSfrag replacements

    −1 0

    1

    2 3

    a b

    c

    de

    PSfrag replacements

    −1 0

    1

    2 3

    b

    d

    c

    a

    ae

    be

    Cost((i , j)) = |Pi | (Cost((1, 3)) = |P1| = 2)

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Search Space (Me)

    ����

    ����

    ����

    ����

    ��

    ��

    ��

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    !!

    ""##

    $$%%

    &&''

    (())

    **++

    ,,--

    ..//

    0011

    2233

    4455

    6677

    8899

    ::;;

    ??

    @@AA

    BBCC

    DDEE

    FFGG

    HHII

    JJKK

    LLMM

    NONNONNONPOPPOPPOPQOQQOQQOQRORRORROR

    SOSSOSSOSTOTTOTTOT

    UOUUOUUOUVOVVOVVOVWOWWOWWOWXOXXOXXOX

    YOYYOYYOYZOZZOZZOZ

    [O[[O[[O[\O\\O\\O\]O]]O]]O]^O^^O^^O^

    _O__O__O_`O``O``O`aOaaOaaOabObbObbOb

    cOcOccOcOccOcOcdOdOddOdOddOdOd

    eOeeOeeOefOffOffOfgOggOggOghOhhOhhOh

    iOiiOiiOijOjjOjjOj

    kOkkOkkOklOllOllOlmOmmOmmOmnOnnOnnOn

    oOooOooOopOppOppOp

    qOqqOqqOqrOrrOrrOr

    sOssOssOstOttOttOt

    uOuuOuuOuvOvvOvvOv

    22

    2

    2

    2 2

    2

    11 1

    1

    2

    1 1

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Rerouting

    PSfrag replacements

    → ∞

    i

    j

    j ′PSfrag replacements

    → ∞

    i

    j

    j ′

    I A. Griewank and O. Vogel: Analysis and exploitation of Jacobian

    scarcity. Proceedings of HPSC (2003)

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Bat Graph

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ������

    ���������������

    ���������������

    ���������

    ������������

    ������������

    ������������

    ������������

    ���������������������������������

    ������������������������������

    ���������������������������������

    ������������������������������

    �������������������������������������������������������������������������������������������������������������������������

    �������������������������������������������������������������������������������������������������������������������������

    �������������������������������������������������������������������������������������������������������������������������

    �������������������������������������������������������������������������������������������������������������������������

    �����������������������������������������������������������������������������

    �����������������������������������������������������������������������������

    �����������������������������������������������������������������������������

    �����������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

    !�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!!�!�!�!�!�!�!�!

    "�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�""�"�"�"�"�"�"�"

    #�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�##�#�#�#�#�#�#�#�#�#�#�#�#�#

    $�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$�$�$�$�$�$�$

    %�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%

    &�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&

    '�'�''�'�''�'�''�'�'

    (�((�((�((�(

    )�))�))�))�))�))�))�))�))�))�))�)

    *�**�**�**�**�**�**�**�**�**�*

    +�++�++�++�++�++�++�++�++�++�++�+

    ,�,,�,,�,,�,,�,,�,,�,,�,,�,,�,

    PSfrag replacements

    −3−2−10

    1 2

    3

    4

    56

    7

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Dual Computational GraphPSfrag replacements

    a b

    c

    de

    PSfrag replacements

    a b

    c

    d e

    I U. Naumann: Optimal Accumulation of Jacobian matrices by elimination

    methods on the dual computational graph. Math. Prog., Springer (2004)

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Elimination of Faces

    PSfrag replacements

    a b

    c

    d e

    ���������������

    ���������

    PSfrag replacements

    a b

    c

    d e

    eb

    Cost((i , j)) = 1

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Search Space (Mf )����

    ����

    ����

    ����

    ��

    ��

    ��

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    ����

    !!

    ""##

    $%$$%$$%$$%$$%$$%$$%$

    &%&&%&&%&&%&&%&&%&&%&'%''%''%''%''%''%''%'

    (%((%((%((%((%((%((%(

    )%)%))%)%))%)%))%)%)*%*%**%*%**%*%**%*%*+%+%++%+%++%+%++%+%+,%,%,,%,%,,%,%,,%,%, -%-

    -%--%--%--%--%--%-

    .%..%..%..%..%..%..%.

    /%//%//%//%//%//%//%/

    0%00%00%00%00%00%00%0

    1122

    3344

    5566

    7788

    99::

    ;;<<

    ==>>

    ??@@

    AABB

    CCDD

    EEFF

    GGHH

    IIJJ

    KKLL

    MMNN

    OOPP

    QQRR

    SSTT

    UUVV

    WWXX

    YYZZ

    [[\\

    ]]^^

    __``

    aabb

    ccdd

    eeff

    gghh

    iijj

    kkll

    mmnn

    oopp

    qqrr

    sstt

    uuvv

    wwxx

    yyzz

    {{||

    }}~~

      

    ¡¡¢¢

    ££¤¤

    ¥¥¦¦

    §§¨¨

    ©©ªª

    ««¬¬

    ®®

    ¯¯°°

    ±±²²

    ³³´´

    µµ¶¶

    ··¸¸

    ¹¹ºº

    »»¼¼

    ½½¾¾

    ¿¿ÀÀ

    ÁÁÂÂ

    ÃÃÄÄ

    ÅÅÆÆ

    ÇÇÈÈ

    ÉÉÊÊ

    ËËÌÌ

    ÍÍÎÎ

    ÏÏÐÐ

    ÑÑÒÒ

    ÓÓÔÔ

    ÕÕÖÖ

    ××ØØ

    ÙÙÚÚ

    ÛÛÜÜ

    ÝÝÞÞ

    ßßàà

    ááââ

    ããää

    ååææ

    ççèè

    ééêê

    ëëìì

    ííîî ïïð

    ð

    ññòò

    óóôô

    õõöö ÷÷ø

    ø

    ùùúú

    ûûüü

    ýýþþ

    ÿÿ��

    ����

    ����

    ����

    ����

    ����

    ���

    ��� ����

    ����

    �����

    ��� ����

    �����

    ��� ��

    !!"" ##$

    $

    %%&&

    ''(()

    )**

    ++,,

    -.--.--.--.--.--.--.-

    /.//.//.//.//.//.//./

    0.0.00.0.00.0.00.0.01.1.11.1.11.1.11.1.1

    2.22.22.22.22.22.22.22.22.2

    3.33.33.33.33.33.33.33.33.3

    4.4.44.4.44.4.44.4.45.5.55.5.55.5.55.5.566667777

    8.88.88.88.88.88.88.8

    9.99.99.99.99.99.99.9

    :.::.::.::.::.::.::.:

    ;.;;.;;.;;.;;.;;.;;.;

    >.>>.>>.>>.>

    ?.??.??.??.??.??.??.??.??.?

    @.@@.@@.@@[email protected]

    B.BB.BB.BB.BB.BB.BB.B

    C.CC.CC.CC.CC.CC.CC.CD.D.DD.D.D

    D.D.DD.D.DE.E.EE.E.EE.E.EE.E.EF.F.FF.F.FF.F.FF.F.FG.G.GG.G.GG.G.GG.G.G H.H

    H.HH.HH.HH.HH.HH.H

    I.II.II.II.II.II.II.I

    J.JJ.JJ.JJ.JJ.JJ.JJ.JJ.JJ.J

    K.KK.KK.KK.KK.KK.KK.KK.KK.K

    L.L.LL.L.LL.L.LL.L.LM.M.MM.M.MM.M.MM.M.MN.NN.NN.NN.NO.OO.OO.OO.O

    P.PP.PP.PP.PQ.QQ.QQ.QQ.QR.R.RR.R.RR.R.RR.R.RS.S.SS.S.SS.S.SS.S.ST.TT.TT.TT.TT.TT.TT.TT.TT.T

    U.UU.UU.UU.UU.UU.UU.UU.UU.U

    V.V.VV.V.VV.V.VV.V.VW.W.WW.W.WW.W.WW.W.WX.X.XX.X.XX.X.XX.X.XY.Y.YY.Y.YY.Y.YY.Y.Y

    Z.ZZ.ZZ.ZZ.ZZ.ZZ.ZZ.Z

    [.[[.[[.[[.[[.[[.[[.[\.\\.\\.\\.\\.\\.\\.\

    ].]].]].]].]].]].]].]

    ^.^.^^.^.^^.^.^^.^.^_._.__._.__._.__._._`.`.``.`.``.`.``.`.`a.a.aa.a.aa.a.aa.a.a

    b.b.bb.b.bb.b.bb.b.bc.c.cc.c.cc.c.cc.c.c d.d

    d.dd.dd.dd.dd.dd.d

    e.ee.ee.ee.ee.ee.ee.e

    f.ff.ff.ff.ff.ff.ff.f

    g.gg.gg.gg.gg.gg.gg.g

    h.hh.hh.hh.hi.ii.ii.ii.i

    j.jj.jj.jj.jj.jj.jj.jj.jj.j

    k.kk.kk.kk.kk.kk.kk.kk.kk.kl.l.ll.l.ll.l.ll.l.lm.m.mm.m.mm.m.mm.m.m n.n

    n.nn.nn.nn.nn.nn.n

    o.oo.oo.oo.oo.oo.oo.o

    p.pp.pp.pp.pp.pp.pp.p

    q.qq.qq.qq.qq.qq.qq.q

    r.rr.rr.rr.rs.ss.ss.ss.s

    t.tt.tt.tt.tt.tt.tt.tt.tt.t

    u.uu.uu.uu.uu.uu.uu.uu.uu.u

    v.v.vv.v.vv.v.vv.v.vw.w.ww.w.ww.w.ww.w.w

    x.xx.xx.xx.xy.yy.yy.yy.y

    z.zz.zz.zz.zz.zz.zz.zz.zz.z

    {.{{.{{.{{.{{.{{.{{.{{.{{.{|.||.||.||.|}.}}.}}.}}.}

    ~.~~.~~.~~.~~.~~.~~.~~.~~.~

    .........

    .......

    .......

    .......

    .......

    .......

    .......

    .......

    ...........

    ............

    .........

    .........

    ........

    ..............

    .......

    ..............

    .......

    .......

    .......

    .......

    .......

    .........

    .................

    ................

    ........

    .........

    ......... .  .  .  . ¡.¡¡.¡¡.¡¡.¡

    ¢.¢¢.¢¢.¢¢.¢¢.¢¢.¢¢.¢¢.¢¢.¢

    £.££.££.££.££.££.££.££.££.£¤.¤¤.¤

    ¤.¤¤.¤¤.¤¤.¤¤.¤

    ¥.¥¥.¥¥.¥¥.¥¥.¥¥.¥¥.¥

    ¦.¦¦.¦¦.¦¦.¦¦.¦¦.¦¦.¦

    §.§§.§§.§§.§§.§§.§§.§

    ¨.¨¨.¨¨.¨¨.¨¨.¨¨.¨¨.¨

    ©.©©.©©.©©.©©.©©.©©.©

    ª.ªª.ªª.ªª.ªª.ªª.ªª.ª

    «.««.««.««.««.««.««.«

    ¬.¬¬.¬¬.¬¬.¬....

    ®.®®.®®.®®.®®.®®.®®.®®.®®.®

    ¯.¯¯.¯¯.¯¯.¯¯.¯¯.¯¯.¯¯.¯¯.¯°.°°.°°.°°.°±.±±.±±.±±.±

    ².²².²².²².²².²².²².²².²².²

    ³.³³.³³.³³.³³.³³.³³.³³.³³.³

    ´.´´.´´.´´.´´.´´.´´.´

    µ.µµ.µµ.µµ.µµ.µµ.µµ.µ

    ¶.¶¶.¶¶.¶¶.¶¶.¶¶.¶¶.¶

    ·.··.··.··.··.··.··.·

    ¸.¸¸.¸¸.¸¸.¸¸.¸¸.¸¸.¸

    ¹.¹¹.¹¹.¹¹.¹¹.¹¹.¹¹.¹

    º.ºº.ºº.ºº.ºº.ºº.ºº.º

    ».»».»».»».»».»».»».»

    ¼.¼¼.¼¼.¼¼.¼½.½½.½½.½½.½

    ¾.¾¾.¾¾.¾¾.¾¾.¾¾.¾¾.¾¾.¾¾.¾

    ¿.¿¿.¿¿.¿¿.¿¿.¿¿.¿¿.¿¿.¿¿.¿À.ÀÀ.ÀÀ.ÀÀ.ÀÁ.ÁÁ.ÁÁ.ÁÁ.Á

    Â.ÂÂ.ÂÂ.ÂÂ.ÂÂ.ÂÂ.ÂÂ.ÂÂ.ÂÂ.Â

    Ã.ÃÃ.ÃÃ.ÃÃ.ÃÃ.ÃÃ.ÃÃ.ÃÃ.ÃÃ.Ã

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Compile-time Elimination

    t = x0 + (x0 · x1) · 3.14x0 = cos(t)x1 = t/x1

    ���������

    ���������

    ���������

    ���������

    ������������

    ������������

    ��������������������

    ������������

    �������������������������������������������������������

    �����

    �����

    �����

    �����

    �����

    �����

    �����

    �����

    �����

    �����

    �����

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ��������������������

    ������������

    ������������

    ������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ������������������������������������������������

    ������������������������������������������������

    PSfrag replacements

    −1 0

    1

    2

    3

    4 5

    c1,−1

    c1,0

    3.14

    c3,2

    c3,−1

    c4,3

    c4,3

    c5,3

    c5,3

    c5,0

    I U. Naumann and J. Utke: Optimality-preserving elimination of linearities

    in Jacobian accumulation. Electronic Transactions on Numerical Analysis,

    KSU (2005).

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Heuristics

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������

    �����������������������������������������������������������������������������������������������������������������������������������������������������������������

    �����������������������������������������������������������������������������������������������������������������������������������������������������������������

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    �����������������������������������������������������������������������������������������������������������������������������������������������������������������

    ����������������������������������������������������������������������������������������������������������������������������������

    ����������������������������������������������������������������������������������������������������������������������������������

    ����������������������������������������������������������������������������������������������������������������������������������

    � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

    !�!�!�!!�!�!�!!�!�!�!!�!�!�!!�!�!�!!�!�!�!!�!�!�!!�!�!�!!�!�!�!!�!�!�!

    "�"�"�""�"�"�""�"�"�""�"�"�""�"�"�""�"�"�""�"�"�""�"�"�""�"�"�""�"�"�"

    #�#�#�#�#�#�#�##�#�#�#�#�#�#�##�#�#�#�#�#�#�##�#�#�#�#�#�#�##�#�#�#�#�#�#�##�#�#�#�#�#�#�##�#�#�#�#�#�#�##�#�#�#�#�#�#�##�#�#�#�#�#�#�##�#�#�#�#�#�#�#

    $�$�$�$�$�$�$�$$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$$�$�$�$�$�$�$�$

    %�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%

    &�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&

    '�'�'�'�''�'�'�'�''�'�'�'�''�'�'�'�''�'�'�'�''�'�'�'�''�'�'�'�''�'�'�'�''�'�'�'�''�'�'�'�'

    (�(�(�(�((�(�(�(�((�(�(�(�((�(�(�(�((�(�(�(�((�(�(�(�((�(�(�(�((�(�(�(�((�(�(�(�((�(�(�(�(

    )�)�)�)�)�)�))�)�)�)�)�)�))�)�)�)�)�)�))�)�)�)�)�)�))�)�)�)�)�)�))�)�)�)�)�)�))�)�)�)�)�)�))�)�)�)�)�)�))�)�)�)�)�)�))�)�)�)�)�)�)

    *�*�*�*�*�*�**�*�*�*�*�*�**�*�*�*�*�*�**�*�*�*�*�*�**�*�*�*�*�*�**�*�*�*�*�*�**�*�*�*�*�*�**�*�*�*�*�*�**�*�*�*�*�*�**�*�*�*�*�*�*

    +�+�+�+�+�+�+�+�+�+�+�+�+�+�+�++�+�+�+�+�+�+�+�+�+�+�+�+�+�+�++�+�+�+�+�+�+�+�+�+�+�+�+�+�+�++�+�+�+�+�+�+�+�+�+�+�+�+�+�+�++�+�+�+�+�+�+�+�+�+�+�+�+�+�+�++�+�+�+�+�+�+�+�+�+�+�+�+�+�+�++�+�+�+�+�+�+�+�+�+�+�+�+�+�+�++�+�+�+�+�+�+�+�+�+�+�+�+�+�+�++�+�+�+�+�+�+�+�+�+�+�+�+�+�+�++�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+

    ,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,

    I U. Naumann: An Enhanced Markovitz Rule for Accumulating Jacobians

    Efficiently. Proceedings of 15th Conference on Scientific Computing

    (ALGORITHMY 2000).

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Dynamic Programming

    F ′(x) = Qm

    l+m∏

    j=1

    i≺j

    Cji

    PTn ∈ IRm×n

    where

    Pn ≡[

    In, 0]

    ∈ IRn×q and Qm ≡[

    0, Im]

    ∈ IRm×q

    I A. Griewank and U. Naumann: Accumulating Jacobians as Chained

    Sparse Matrix Products. Math. Prog., Springer (2003).

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Simulated Annealing

    • start sequence, start temperature

    • (logarithmic) cooling schedule

    • acceptance of worse sequence with Metropolis probability

    • run for as long as you like ...

    0

    200

    400

    600

    800

    1000

    1200

    0 10 20 30 40 50 60 70

    -40

    -20

    0

    20

    40

    0 1000 2000 3000 4000 5000

    I U. Naumann: Cheaper Jacobians by Simulated Annealing. SIAM J.

    Opt., SIAM (2002).

  • Jacobians,Graphs,

    Combinatorics

    Uwe Naumann

    F → G

    G → F ′

    Paths

    Vertices

    Edges

    Faces

    Algorithms

    Complexity

    Consequences

    Conclusion

    Single-Expression-Use Graphs

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���������

    ���

    ���������

    ���������

    ���������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������

    ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ����������������������������������������������������������������������������������������������������������������������������������

    ����������������������������������������������������������������������������������������������������������������������������������

    ������������������������������������������������������������������������������������