최고 점수 합계를 찾기 위해 최소 및 최대를 최적화하는 방법

LuddeLudd

이 문제는 데이터 세트에서 최고 점수 합계를 생성하기 위해 두 개의 최소-최대 기준 필터를 찾는 것과 관련이 있습니다.

3 개의 열이있는 데이터 세트가 있습니다. x, y, score, 100 만 개 이상의 행.

엑스 점수
3.6 1.2 -5
4.2 1.2 -4
1.2 30.2 1
2.9 6.8 6
3.1 5.8 7
0.1 15.8 7

데이터에는 상관 관계가있을 수도 있고 없을 수도 있습니다.

가능한 가장 높은 점수 합계를 제공하는 x 및 y에 대한 최소 / 최대 기준 필터를 찾고 싶습니다.

이것이 SQL에서 쿼리가 어떻게 보이는지입니다.

SELECT SUM(score) 
FROM mytable
WHERE
x > xmin AND x < xmax AND
y > ymin AND y < ymax

내가 찾고있는 것은 xmin, xmax, ymin och ymax에 대한 최적의 값입니다.

이 문제를 해결하려면 어떤 종류의 최적화 방법이 필요합니까? 그리고 구현은 정확히 어떻게 생겼을까 요?

(가급적이면 Java 또는 postgres SQL을 사용하여 구현됩니다.)

어윈 칼 벨라 겐

그렇게 쉽지는 않습니다. 내 MIP 모델은 다음과 같습니다.

minimize sum(i, selected(i)*score(i))
x(i) <= xmin + M*(xBetween(i)+xAbove(i))
x(i) >= xmax - M*(xBetween(i)+xBelow(i))
x(i) >= xmin - M*xBelow(i)
x(i) <= xmax + M*xAbove(i)
y(i) <= ymin + M*(yBetween(i)+yAbove(i))
y(i) >= ymax - M*(yBetween(i)+yBelow(i))
y(i) >= ymin - M*yBelow(i)
y(i) <= ymax + M*yAbove(i)
xBetween(i)+xAbove(i)+xBelow(i)=1
yBetween(i)+yAbove(i)+yBelow(i)=1
selected(i) <= xBetween(i)
selected(i) <= yBetween(i)
selected(i) >= xBetween(i)+yBetween(i)-1
xmin <= xmax
ymin <= ymax
xBetween(i),xAbove(i),xBelow(i) ∈ {0,1}
yBetween(i),yAbove(i),yBelow(i) ∈ {0,1}
selected(i) ∈ {0,1}

상수 M은 충분히 큰 숫자입니다 (나는 x 또는 y 데이터의 범위를 사용했습니다).

난수로 다음을 얻었습니다.

----     37 VARIABLE z.L                   =       30.940  objective

----     44 PARAMETER data  data + results

                      x           y       score      x.betw      y.betw    selected

i1                1.717       6.611      -8.972
i2                8.433       7.558      -9.880
i3                5.504       6.274      -1.975
i4                3.011       2.839       0.398       1.000       1.000       1.000
i5                2.922       0.864       2.578       1.000       1.000       1.000
i6                2.241       1.025      -5.485                   1.000
i7                3.498       6.413      -2.078       1.000
i8                8.563       5.453      -4.480                   1.000
i9                0.671       0.315      -6.953
i10               5.002       7.924       8.726
i11               9.981       0.728      -1.547                   1.000
i12               5.787       1.757      -7.307                   1.000
i13               9.911       5.256      -2.279                   1.000
i14               7.623       7.502      -2.507
i15               1.307       1.781      -4.630                   1.000
i16               6.397       0.341       8.967
i17               1.595       5.851      -6.221                   1.000
i18               2.501       6.212      -4.050       1.000
i19               6.689       3.894      -8.509                   1.000
i20               4.354       3.587      -1.973                   1.000
i21               3.597       2.430      -7.966                   1.000
i22               3.514       2.464      -2.322                   1.000
i23               1.315       1.305      -3.518                   1.000
i24               1.501       9.334      -6.157
i25               5.891       3.799      -7.753                   1.000
i26               8.309       7.834       1.931
i27               2.308       3.000       0.229       1.000       1.000       1.000
i28               6.657       1.255      -9.099                   1.000
i29               7.759       7.489       5.662
i30               3.037       0.692       8.915       1.000       1.000       1.000
i31               1.105       2.020       1.929                   1.000
i32               5.024       0.051       2.147
i33               1.602       2.696      -2.750                   1.000
i34               8.725       4.999       1.881                   1.000
i35               2.651       1.513       3.597       1.000       1.000       1.000
i36               2.858       1.742       0.132       1.000       1.000       1.000
i37               5.940       3.306      -6.815                   1.000
i38               7.227       3.169       3.138                   1.000
i39               6.282       3.221       0.478                   1.000
i40               4.638       9.640      -7.512
i41               4.133       9.936       9.734
i42               1.177       3.699      -5.438                   1.000
i43               3.142       3.729       3.513       1.000       1.000       1.000
i44               0.466       7.720       5.536
i45               3.386       3.967       8.649       1.000       1.000       1.000
i46               1.821       9.131      -5.975
i47               6.457       1.196      -4.057                   1.000
i48               5.607       7.355      -6.055
i49               7.700       0.554      -5.073
i50               2.978       5.763       2.930       1.000       1.000       1.000
range(data)       9.516       9.885      19.614
min(solution)     2.241       0.554
max(solution)     3.498       5.851

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

최소 및 최대 요소를 찾기위한 함수 최적화

분류에서Dev

사용자가 연도 숫자를 입력하고 해당 목록에서 평균, 최소 및 최대 기대 수명을 가져 오는 방법

분류에서Dev

파이썬 파일에서 최대 및 최소 수를 찾는 방법

분류에서Dev

사전 배열의 최대 및 최소를 찾는 Pythonic 방법

분류에서Dev

각 고유 항목에 대한 최대 및 최소를 계산하는 방법

분류에서Dev

(Java) 최소 및 최대 결정을 위해 사용자가 입력 한 숫자를 추적하는 방법

분류에서Dev

매개 변수가있는 함수를 최대화하거나 최소화하기 위해 GridSearchCV (python)를 사용하는 방법은 무엇입니까?

분류에서Dev

MATE에서 최대화, 최소화 및 닫기를 위해 창 제목 표시 줄 아이콘을 이동하는 방법은 무엇입니까?

분류에서Dev

GREP는 최소 및 최대 수를 찾습니다.

분류에서Dev

VBA 및 Chromedriver를 사용하여 대기 방법을 최적화하는 방법

분류에서Dev

최소값과 최대 값 사이의 난수를 얻는 방법은 무엇입니까? 최소 및 최대도 무작위

분류에서Dev

findKth를 사용하여 최저, 최고, 중앙 및 평균 점수 찾기

분류에서Dev

날짜 선택기 대화 상자에서 최대 날짜 및 최소 날짜를 설정하는 방법

분류에서Dev

mysql에서 최대 합계를 얻기 위해 쿼리를 수행하는 방법은 무엇입니까?

분류에서Dev

mysql에서 최대 합계를 얻기 위해 쿼리를 수행하는 방법은 무엇입니까?

분류에서Dev

각 사용자에 대해 최소 및 최대로 고유 한 레코드를 얻는 방법

분류에서Dev

제공된 범위 최소 및 최대 문자를 기반으로 Javascript에서 난수를 생성하는 방법

분류에서Dev

학생 ID 및 점수에 대한 적절한 출력을 생성하고 최대 및 최소를 찾으십니까?

분류에서Dev

Pandas Dataframe의 모든 값에 최소 및 최대를 반올림하고 적용하는 방법

분류에서Dev

새 SSD를 처리하는 방법-최적화 및 수명

분류에서Dev

정점 제약으로 최단 경로를 찾기 위해 Dijkstra의 알고리즘을 사용하는 방법

분류에서Dev

파이썬 목록에서 모든, 최대 및 최소 차이를 찾으십시오. 더 최적의 방법

분류에서Dev

최대 정수 값을 저장하기 위해 최소 numpy dtype을 찾는 방법은 무엇입니까?

분류에서Dev

최적화를 위해 값을 초기화하고 구문 분석하는 올바른 방법 인 Java

분류에서Dev

Python에서 회문 소수를 찾기위한 알고리즘 최적화

분류에서Dev

합계의 차이를 최소화하기 위해 정수 목록 분할

분류에서Dev

복사를 방지하기 위해 rvalue 매개 변수의 반환 값을 최적화하는 방법

분류에서Dev

R에서 수백만 개의 조합에 대해 가능한 가장 높은 Pearson 상관 관계를 계산하는 최적의 방법 찾기

분류에서Dev

numpy 배열의 sub_arrays 합계를 찾기 위해 코드를 최소화하려고합니다.

Related 관련 기사

  1. 1

    최소 및 최대 요소를 찾기위한 함수 최적화

  2. 2

    사용자가 연도 숫자를 입력하고 해당 목록에서 평균, 최소 및 최대 기대 수명을 가져 오는 방법

  3. 3

    파이썬 파일에서 최대 및 최소 수를 찾는 방법

  4. 4

    사전 배열의 최대 및 최소를 찾는 Pythonic 방법

  5. 5

    각 고유 항목에 대한 최대 및 최소를 계산하는 방법

  6. 6

    (Java) 최소 및 최대 결정을 위해 사용자가 입력 한 숫자를 추적하는 방법

  7. 7

    매개 변수가있는 함수를 최대화하거나 최소화하기 위해 GridSearchCV (python)를 사용하는 방법은 무엇입니까?

  8. 8

    MATE에서 최대화, 최소화 및 닫기를 위해 창 제목 표시 줄 아이콘을 이동하는 방법은 무엇입니까?

  9. 9

    GREP는 최소 및 최대 수를 찾습니다.

  10. 10

    VBA 및 Chromedriver를 사용하여 대기 방법을 최적화하는 방법

  11. 11

    최소값과 최대 값 사이의 난수를 얻는 방법은 무엇입니까? 최소 및 최대도 무작위

  12. 12

    findKth를 사용하여 최저, 최고, 중앙 및 평균 점수 찾기

  13. 13

    날짜 선택기 대화 상자에서 최대 날짜 및 최소 날짜를 설정하는 방법

  14. 14

    mysql에서 최대 합계를 얻기 위해 쿼리를 수행하는 방법은 무엇입니까?

  15. 15

    mysql에서 최대 합계를 얻기 위해 쿼리를 수행하는 방법은 무엇입니까?

  16. 16

    각 사용자에 대해 최소 및 최대로 고유 한 레코드를 얻는 방법

  17. 17

    제공된 범위 최소 및 최대 문자를 기반으로 Javascript에서 난수를 생성하는 방법

  18. 18

    학생 ID 및 점수에 대한 적절한 출력을 생성하고 최대 및 최소를 찾으십니까?

  19. 19

    Pandas Dataframe의 모든 값에 최소 및 최대를 반올림하고 적용하는 방법

  20. 20

    새 SSD를 처리하는 방법-최적화 및 수명

  21. 21

    정점 제약으로 최단 경로를 찾기 위해 Dijkstra의 알고리즘을 사용하는 방법

  22. 22

    파이썬 목록에서 모든, 최대 및 최소 차이를 찾으십시오. 더 최적의 방법

  23. 23

    최대 정수 값을 저장하기 위해 최소 numpy dtype을 찾는 방법은 무엇입니까?

  24. 24

    최적화를 위해 값을 초기화하고 구문 분석하는 올바른 방법 인 Java

  25. 25

    Python에서 회문 소수를 찾기위한 알고리즘 최적화

  26. 26

    합계의 차이를 최소화하기 위해 정수 목록 분할

  27. 27

    복사를 방지하기 위해 rvalue 매개 변수의 반환 값을 최적화하는 방법

  28. 28

    R에서 수백만 개의 조합에 대해 가능한 가장 높은 Pearson 상관 관계를 계산하는 최적의 방법 찾기

  29. 29

    numpy 배열의 sub_arrays 합계를 찾기 위해 코드를 최소화하려고합니다.

뜨겁다태그

보관