------
## 最终结论
```python
def is_subset_sum(arr, n, sum):
    dp = [[False for _ in range(sum + 1)] for _ in range(n + 1)]
    
    # Initialize dp[i][0] to True
    for i in range(n + 1):
        dp[i][0] = True

    # Fill the dp table
    for i in range(1, n + 1):
        for j in range(1, sum + 1):
            if arr[i - 1] <= j:
                dp[i][j] = dp[i - 1][j] or dp[i - 1][j - arr[i - 1]]
            else:
                dp[i][j] = dp[i - 1][j]

    return dp[n][sum]

# Test cases
assert is_subset_sum([3, 34, 4, 12, 5, 2], 6, 9) == True
assert is_subset_sum([3, 34, 4, 12, 5, 2], 6, 30) == False
assert is_subset_sum([3, 34, 4, 12, 5, 2], 6, 15) == True
```